Sisukord:

Rongikoha kättesaadavuse infosüsteem - FGC: 8 sammu
Rongikoha kättesaadavuse infosüsteem - FGC: 8 sammu

Video: Rongikoha kättesaadavuse infosüsteem - FGC: 8 sammu

Video: Rongikoha kättesaadavuse infosüsteem - FGC: 8 sammu
Video: Демидовы (1 серия) (1983) фильм 2024, November
Anonim
Rongikoha kättesaadavuse infosüsteem - FGC
Rongikoha kättesaadavuse infosüsteem - FGC

See projekt põhineb mastaabis rongi rakendamisel, mis võimaldab jaamas viibivatel inimestel teada saada, millised kohad on vabad. Prototüübi teostamiseks kasutatakse Arduino UNO tarkvara koos graafilise osa töötlemisega.

See kontseptsioon võimaldaks muuta ühistranspordi maailma murranguliseks, kuna see optimeeriks maksimaalselt kõiki rongi istekohti, tagades kõigi vagunite kasutamise, samuti võimaluse koguda andmeid ja teha hiljem täpseid uuringuid. peal.

Samm: kujundage 3D -mudel

Disain 3D mudel
Disain 3D mudel

Esiteks oleme teinud rongimudelite kohta põhjaliku uurimistöö. Kogu kogutud teabe põhjal on valitud FGC -l (Ferrocarrils de la Generalitat de Catalunya) kasutatav GTW rong (tootja Stadler Rail).

Hiljem kujundati see 3D tarkvara PTC Creo abil järgnevaks 3D printimiseks.

2. samm: 3D -mudeli ja viimistluse printimine

3D -mudeli ja viimistluse printimine
3D -mudeli ja viimistluse printimine

Kui rong on projekteeritud, antakse see üle 3D -printimisele. Kui tükk on trükitud, tuleb see sileda pinna saamiseks poleerida.

Seda projekti saab teha ka olemasolevate rongimudelitega.

Pärast printimist antakse lõplik viimistlus.

3. samm: komponendid

Komponendid
Komponendid

Selle projekti arendamiseks on vaja järgmisi komponente:

- FSR 0,04-4,5 LBS (rõhuandur).

- 1.1K oomi takistid

Samm: kodeerimine (Arduino ja töötlemine)

Kodeerimine (Arduino ja töötlemine)
Kodeerimine (Arduino ja töötlemine)
Kodeerimine (Arduino ja töötlemine)
Kodeerimine (Arduino ja töötlemine)
Kodeerimine (Arduino ja töötlemine)
Kodeerimine (Arduino ja töötlemine)

Nüüd on aeg kirjutada Arduino kood, mis laseb anduritel saata töötlustarkvarale märgi, mis edastab teabe graafiliselt.

Anduritena on meil arduino jaoks 4 rõhuandurit, mis muudavad selle takistust vastavalt neile rakendatavale jõule. Seega on eesmärk ära kasutada andurite saadetud signaali (kui reisijad istuvad), et muuta töötlemise graafilisi ekraane.

Seejärel loome graafilise osa, milles oleme võtnud arvesse Ferrocarrils de la Generalitat de Catalunya graafilist kujundust, et parimal viisil jäljendada tegelikkust.

Töötlemisel on kirjutatud kood, mis on otseselt ühendatud arduino tarkvaraga; sel viisil muudab see iga kord, kui keegi istmele istub, värvi, mis võimaldab rongiplatvormil oleval kasutajal reaalajas teada saada, kui palju rongi kohti on..

Siin näete kodeerimist

ARDUINO:

int pot = A0; // Ühenda poti keskmine tihvt selle pinint potti2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // muutuja poti väärtuste salvestamiseks;

int lectura2; int lectura3; int lectura4;

void setup () {// jadaühenduse initsialiseerimine 9600 baudikiirusega Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura analoogväärtus if (lectura1> 10) {s = "1"; viivitus (100); } muu {s = "0"; viivitus (100); } Serial.println (s);

}

TÖÖTLEMINE:

impordi töötlemine.seriaalne.*; // see raamatukogu tegeleb jadajutuga String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Seeria myPort; // Loo objekt seeria klassist

void setup () // see töötab ainult üks kord {täisekraan (); taust (0); // taustavärvi seadmine mustaks myPort = uus jada (see, "COM5", 9600); // andes seeriaklassi objektile parameetrid, pange kompuuter, millega teie arduino on ühendatud, ja edastuskiirus

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")) {pilt (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")) {pilt (s1010, 0, 0); } else if (val.equals ("1011")) {pilt (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 {pilt (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // iga kord, kui juhtub jada, see jookseb {val = myPort.readStringUntil ('\ n'); // enne jätkamist veenduge, et meie andmed ei oleks tühjad, kui (val! = null) {// kärbib tühikuid ja vormindamismärke (nt käru tagasitulek) val = trim (val); println (val); }}

Samm: vooluring

Vooluring
Vooluring

Pärast kogu programmeerimist on aeg ühendada kõik andurid Arduino UNO plaadiga.

Andurid asetatakse 4 istmele (mis hiljem kaetakse lapiga) ja keevitatakse kaablite külge, mis lähevad otse Arduino UNO emaplaadile. Tahvlil saadud signaal saadetakse USB kaudu ühendatud arvutisse, mis saadab teabe reaalajas töötlemisse, muutes istme värvi.

Näete ühenduste skeemi.

6. samm: prototüübi test

Kui kood on arduino tahvlile üles laaditud ning töötlemise ja arduino programm sisse lülitatud, testitakse andureid. Ekraanil näete istmete muutusi, mis on tingitud ekraanil olevate piltide muutumisest, mis teavitavad hõivatud istmetest ja nr.

Samm 7: tõeline makett

Tõeline makett
Tõeline makett
Tõeline makett
Tõeline makett
Tõeline makett
Tõeline makett
Tõeline makett
Tõeline makett

Tegelik rakendus prooviks seda reisijate teenindamiseks installida FGC võrgu rongidesse ja platvormidele.

8. samm: nautige

NAUTI!
NAUTI!
NAUTI!
NAUTI!

Olete lõpuks teinud jõuandurrongi (prototüübi), mis võimaldab rongiplatvormi kasutajal teada, milline iste on reaalajas saadaval.

TERE TULEMAST TULEVIKU!

Projekti tegid Marc Godayol ja Federico Domenech

Soovitan: