Turinys:

Traukinio sėdynės prieinamumo informacinė sistema - FGC: 8 žingsniai
Traukinio sėdynės prieinamumo informacinė sistema - FGC: 8 žingsniai

Video: Traukinio sėdynės prieinamumo informacinė sistema - FGC: 8 žingsniai

Video: Traukinio sėdynės prieinamumo informacinė sistema - FGC: 8 žingsniai
Video: 12-часовая ночь в самом дешевом классе нового японского спального поезда | Джинга 2024, Liepa
Anonim
Traukinio sėdynės prieinamumo informacinė sistema - FGC
Traukinio sėdynės prieinamumo informacinė sistema - FGC

Šis projektas grindžiamas traukinio, kuris leidžia žmonėms, esantiems stotyje, mastelio įgyvendinimą, kad būtų galima sužinoti, kurios vietos yra laisvos. Norint atlikti prototipą, kartu su grafinės dalies apdorojimu naudojama „Arduino UNO“programinė įranga.

Ši koncepcija leistų padaryti revoliuciją viešojo transporto pasaulyje, nes ji maksimaliai optimizuotų visas traukinio vietas, užtikrintų visų vagonų naudojimą, taip pat galimybę rinkti duomenis ir atlikti tikslius tyrimus, vėliau ant.

1 žingsnis: suprojektuokite 3D modelį

3D modelio dizainas
3D modelio dizainas

Pirmiausia atlikome išsamų traukinių modelių tyrimą. Su visa surinkta informacija buvo pasirinktas GTG traukinys (pagamintas „Stadler Rail“), naudojamas FGC (Ferrocarrils de la Generalitat de Catalunya).

Vėliau jis buvo sukurtas naudojant 3D programinę įrangą „PTC Creo“- tolesnio 3D spausdinimo modelį.

2 veiksmas: 3D modelio ir apdailos spausdinimas

3D modelio ir apdailos spausdinimas
3D modelio ir apdailos spausdinimas

Sukūrus traukinį, jis perduodamas 3D spausdinimui. Kai gabalas yra atspausdintas, jis turi būti poliruotas, kad būtų gautas lygus paviršius.

Šį projektą taip pat galima atlikti naudojant esamus traukinių modelius.

Atspausdinus, pateikiama galutinė apdaila.

3 žingsnis: komponentai

Komponentai
Komponentai

Šiam projektui plėtoti reikalingi šie komponentai:

- FSR 0,04-4,5LBS (slėgio jutiklis).

- 1.1K omų rezistoriai

4 žingsnis: kodavimas („Arduino“ir apdorojimas)

Kodavimas („Arduino“ir apdorojimas)
Kodavimas („Arduino“ir apdorojimas)
Kodavimas („Arduino“ir apdorojimas)
Kodavimas („Arduino“ir apdorojimas)
Kodavimas („Arduino“ir apdorojimas)
Kodavimas („Arduino“ir apdorojimas)

Dabar atėjo laikas parašyti „Arduino“kodą, kuris leis jutikliams nusiųsti ženklą į apdorojimo programinę įrangą, kuri perduos informaciją grafiškai.

Kaip jutikliai, mes turime 4 arduino slėgio jutiklius, kurie keičia savo atsparumą pagal jiems taikomą jėgą. Taigi tikslas yra pasinaudoti jutiklių siunčiamu signalu (kai keleiviai atsisėda), kad pakeistų grafinius ekranus apdorojimo metu.

Tada sukuriame grafinę dalį, kurioje atsižvelgėme į „Ferrocarrils de la Generalitat de Catalunya“grafinį dizainą, kad kuo geriau imituotume tikrovę.

Apdorojant buvo parašytas kodas, tiesiogiai prijungtas prie „arduino“programinės įrangos, tokiu būdu, kiekvieną kartą, kai kas nors atsisėda ant kėdės, jis keičia spalvą, todėl traukinio perone esantis vartotojas realiu laiku gali sužinoti, ar traukinyje yra vietų..

Čia galite pamatyti kodavimą

ARDUINO:

int puodas = A0; // Prijunkite vidurinį puodo kaištį prie šio pinint puodo2 = A1; int puodas3 = A2; int puodas4 = A3; int lectura1; // kintamasis puodo vertėms saugoti;

int lectura2; int lectura3; int lectura4;

void setup () {// inicijuoti nuoseklųjį ryšį 9600 baudų greičiu Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (puodas); // lectura analoginė reikšmė if (lectura1> 10) {s = "1"; vėlavimas (100); } else {s = "0"; vėlavimas (100); } Serial.println (s);

}

APDOROJIMAS:

importo apdorojimas.serijinis.*; // ši biblioteka tvarko serijinį pokalbį String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Serijinis myPort; // Sukurti objektą iš serijos klasės

void setup () // tai veikia tik vieną kartą {fullScreen (); fonas (0); // nustatant fono spalvą į juodą myPort = new Serial (tai, "COM5", 9600); // suteikiant parametrus serijinės klasės objektui, įdėkite com, prie kurio prijungtas jūsų arduino, ir duomenų perdavimo spartą

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 = apdaila (val);} void draw () {if (val! = null) {

if (val.equals ("0001")) {vaizdas (s0001, 0, 0); } else if (val.equals ("0010")) {image (s0010, 0, 0); } else if (val.equals ("0011")) {image (s0011, 0, 0); } else if (val.equals ("0100")) {image (s0100, 0, 0); } else if (val.equals ("0101")) {image (s0101, 0, 0); } else if (val.equals ("0110")) {image (s0110, 0, 0); } else if (val.equals ("0111")) {image (s0111, 0, 0); } else if (val.equals ("1000")) {image (s1000, 0, 0); } else if (val.equals ("1001")) {image (s1001, 0, 0); } else if (val.equals ("1010")) {image (s1010, 0, 0); } else if (val.equals ("1011")) {image (s1011, 0, 0); } else if (val.equals ("1100")) {image (s1100, 0, 0); } else if (val.equals ("1101")) {image (s1101, 0, 0); } else if (val.equals ("1110")) {image (s1110, 0, 0); } else if (val.equals ("1111")) {image (s1111, 0, 0); } else {vaizdas (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // kai įvyksta serijinis įvykis, jis paleidžiamas {val = myPort.readStringUntil ('\ n'); // prieš tęsdami įsitikinkite, kad mūsų duomenys nėra tušti. println (val); }}

5 žingsnis: grandinė

Grandinė
Grandinė

Po visų programavimų atėjo laikas prijungti visus jutiklius prie „Arduino UNO“plokštės.

Jutikliai dedami ant 4 sėdynių (kurios vėliau bus uždengtos audiniu) ir suvirinamos prie kabelių, kurie tiesiogiai patenka į „Arduino UNO“pagrindinę plokštę. Lentoje gautas signalas siunčiamas į kompiuterį, prijungtą per USB, kuris realiu laiku siunčia informaciją į „Processing“, pakeisdamas sėdynės spalvą.

Galite pamatyti jungčių schemą.

6 žingsnis: prototipo testas

Kai kodas bus įkeltas į arduino plokštę ir įjungta apdorojimo bei arduino programa, jutikliai bus tikrinami. Ekrane matysite kėdžių pakeitimus, pasikeitusius vaizdus ekrane, informuojančius apie užimtas vietas ir Nr.

7 žingsnis: tikras maketas

Tikras maketas
Tikras maketas
Tikras maketas
Tikras maketas
Tikras maketas
Tikras maketas
Tikras maketas
Tikras maketas

Tikroji programa bandytų ją įdiegti traukiniuose ir FGC tinklo platformose, kad galėtų aptarnauti keliautojus.

8 žingsnis: Džiaukitės

MĖGAUTIS!
MĖGAUTIS!
MĖGAUTIS!
MĖGAUTIS!

Pagaliau sukūrėte jėgos jutiklį (prototipą), kuris leidžia traukinio platformos vartotojui žinoti, kuri sėdynė yra realiu laiku.

SVEIKINAME ATEITĮ!

Projektą sukūrė Marc Godayol ir Federico Domenech

Rekomenduojamas: