Съдържание:

Информационна система за наличност на влакови седалки - FGC: 8 стъпки
Информационна система за наличност на влакови седалки - FGC: 8 стъпки

Видео: Информационна система за наличност на влакови седалки - FGC: 8 стъпки

Видео: Информационна система за наличност на влакови седалки - FGC: 8 стъпки
Видео: planeTALK | Prof Jürgen RAPS 2/2 „Strengthening confidence in flying“ (Със субтитри) 2024, Ноември
Anonim
Информационна система за наличност на влакови седалки - FGC
Информационна система за наличност на влакови седалки - FGC

Този проект се основава на изпълнението, в мащаб, на влак, който позволява на хората, които са на гарата, да знаят кои места са свободни. За да се изпълни прототипът, софтуерът Arduino UNO се използва заедно с Processing за графичната част.

Тази концепция ще направи възможно революцията в света на обществения транспорт, тъй като ще оптимизира максимално всички седалки на влака, като гарантира използването на всички вагони, заедно с възможността за събиране на данни и извършване на точни изследвания, по -късно На.

Стъпка 1: Проектирайте 3D модел

Проектиране на 3D модел
Проектиране на 3D модел

Преди всичко направихме цялостно проучване на моделите на влаковете. С цялата събрана информация е избран GTW влакът (произведен от Stadler Rail), използван за FGC (Ferrocarrils de la Generalitat de Catalunya).

По -късно той е проектиран с 3D софтуера PTC Creo като модел за последващия 3D печат.

Стъпка 2: Отпечатване на 3D модел и завършване

Отпечатване на 3D модел и завършване
Отпечатване на 3D модел и завършване

След като влакът е проектиран, той се предава на 3D печат. След като парчето е отпечатано, то трябва да се полира, за да се постигне гладка повърхност.

Този проект може да се осъществи и със съществуващи модели влакове.

След като бъдат отпечатани, се дава окончателното завършване.

Стъпка 3: Компоненти

Компоненти
Компоненти

За разработването на този проект са необходими следните компоненти:

- FSR 0.04-4.5LBS (сензор за налягане).

- 1.1K ома резистори

Стъпка 4: Кодиране (Arduino и обработка)

Кодиране (Arduino и обработка)
Кодиране (Arduino и обработка)
Кодиране (Arduino и обработка)
Кодиране (Arduino и обработка)
Кодиране (Arduino и обработка)
Кодиране (Arduino и обработка)

Сега е време да напишем кода на Arduino, който ще позволи на сензорите да изпратят знак към софтуера за обработка, който ще предава информацията графично.

Като сензори имаме 4 сензора за налягане за arduino, които променят съпротивлението си според силата, която се прилага към тях. Така че целта е да се възползвате от сигнала, изпратен от сензорите (когато пътниците седнат), за да смените графичните екрани в Processing.

След това създаваме графичната част, в която сме взели предвид графичния дизайн на Ferrocarrils de la Generalitat de Catalunya, за да подражаваме на реалността по възможно най -добрия начин.

При обработката е написан код, който е директно свързан със софтуера arduino, по този начин всеки път, когато някой седне на седалка, той променя цвета си, позволявайки на потребителя на пероната на влака да знае в реално време наличните места на влака.

Тук можете да видите кодирането

ARDUINO:

int pot = A0; // Свържете средния щифт на саксията към този пинтинг2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // променлива за съхраняване на стойностите на пота;

int lectura2; int lectura3; int lectura4;

void setup () {// инициализира серийните комуникации със скорост 9600 бода Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura аналоговата стойност if (lectura1> 10) {s = "1"; забавяне (100); } else {s = "0"; забавяне (100); } Serial.println (s);

}

ОБРАБОТКА:

обработка на внос.serial.*; // тази библиотека обработва серийния разговор String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Сериен myPort; // Създаване на обект от сериен клас

void setup () // това се изпълнява само веднъж {fullScreen (); background (0); // задаване на цвят на фона на черен myPort = new Serial (this, "COM5", 9600); // даване на параметри на обект от сериен клас, поставяне на com, към който е свързан вашият arduino, и скорост на предаване

s0000 = loadImage ("0000.jpg"); s0001 = loadImage ("0001.jpg"); s0010 = loadImage ("0010.jpg"); s0011 = loadImage ("0011.jpg"); s0100 = loadImage ("0100.jpg"); s0101 = loadImage ("0101.jpg"); s0110 = loadImage ("0110.jpg"); s0111 = loadImage ("0111.jpg"); s1000 = loadImage ("1000.jpg"); s1001 = loadImage ("1001.jpg"); s1010 = loadImage ("1010.jpg"); s1011 = loadImage ("1011.jpg"); s1100 = loadImage ("1100.jpg"); s1101 = loadImage ("1101.jpg"); s1110 = loadImage ("1110.jpg"); s1111 = loadImage ("1111.jpg");

s0000.resize (displayWidth, displayHeight); s0001.resize (displayWidth, displayHeight); s0010.resize (displayWidth, displayHeight); s0011.resize (displayWidth, displayHeight); s0100.resize (displayWidth, displayHeight); s0101.resize (displayWidth, displayHeight); s0110.resize (displayWidth, displayHeight); s0111.resize (displayWidth, displayHeight); s1000.resize (displayWidth, displayHeight); s1001.resize (displayWidth, displayHeight); s1010.resize (displayWidth, displayHeight); s1011.resize (displayWidth, displayHeight); s1100.resize (displayWidth, displayHeight); s1101.resize (displayWidth, displayHeight); s1110.resize (displayWidth, displayHeight); s1111.resize (displayWidth, displayHeight);

val = trim (val);} void draw () {if (val! = null) {

if (val.equals ("0001")) {изображение (s0001, 0, 0); } иначе ако (val.equals ("0010")) {изображение (s0010, 0, 0); } иначе ако (val.equals ("0011")) {изображение (s0011, 0, 0); } иначе ако (val.equals ("0100")) {изображение (s0100, 0, 0); } иначе ако (val.equals ("0101")) {изображение (s0101, 0, 0); } иначе ако (val.equals ("0110")) {изображение (s0110, 0, 0); } иначе ако (val.equals ("0111")) {изображение (s0111, 0, 0); } иначе ако (val.equals ("1000")) {изображение (s1000, 0, 0); } иначе ако (val.equals ("1001")) {изображение (s1001, 0, 0); } иначе ако (val.equals ("1010")) {изображение (s1010, 0, 0); } иначе ако (val.equals ("1011")) {изображение (s1011, 0, 0); } иначе ако (val.equals ("1100")) {изображение (s1100, 0, 0); } иначе ако (val.equals ("1101")) {изображение (s1101, 0, 0); } иначе ако (val.equals ("1110")) {изображение (s1110, 0, 0); } иначе ако (val.equals ("1111")) {изображение (s1111, 0, 0); } else {изображение (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // когато се случи серийно събитие, то се изпълнява {val = myPort.readStringUntil ('\ n'); // уверете се, че данните ни не са празни, преди да продължите if (val! = null) {// изрязване на празни пространства и форматиращи символи (като връщане на каретка) val = trim (val); println (val); }}

Стъпка 5: Схема

Верига
Верига

След цялото програмиране е време да свържете всички сензори с платката Arduino UNO.

Сензорите са поставени на 4 места (които по -късно ще бъдат покрити с плат) и са заварени към кабели, които отиват директно към дънната платка на Arduino UNO. Сигналът, получен на дъската, се изпраща към компютър, свързан чрез USB, който изпраща информацията до Processing в реално време, променяйки цвета на седалката.

Можете да видите схема на връзките.

Стъпка 6: Тест на прототип

След като кодът бъде качен на платката arduino и програмата за обработка и arduino е включена, сензорите се тестват. На екрана ще видите промените в седалките поради промяната на изображенията на дисплея, информиращи за заетите места и не.

Стъпка 7: Истински макет

Истински макет
Истински макет
Истински макет
Истински макет
Истински макет
Истински макет
Истински макет
Истински макет

Истинското приложение би се опитало да го инсталира във влакове и платформи на мрежата на FGC, за да обслужва пътуващите.

Стъпка 8: Насладете се

НАСЛАДИ СЕ!
НАСЛАДИ СЕ!
НАСЛАДИ СЕ!
НАСЛАДИ СЕ!

Най -накрая сте направили влак със сензор за сила (прототип), който позволява на потребителя на платформата на влака да знае коя седалка е налична в реално време.

ДОБРЕ ДОШЛИ В БЪДЕЩЕТО!

Проектът е направен от Марк Годайол и Федерико Доменех

Препоръчано: