INHOUDSOPGAWE:

Inligtingstelsel vir treinsitplekke - FGC: 8 stappe
Inligtingstelsel vir treinsitplekke - FGC: 8 stappe

Video: Inligtingstelsel vir treinsitplekke - FGC: 8 stappe

Video: Inligtingstelsel vir treinsitplekke - FGC: 8 stappe
Video: Nursing Student's Last Moments Recorded On Video - The Murder of Michelle Le | DEEP DIVE 2024, November
Anonim
Inligtingstelsel vir treinsitplekke - FGC
Inligtingstelsel vir treinsitplekke - FGC

Hierdie projek is gebaseer op die implementering op 'n skaal van 'n trein waarmee mense wat in die stasie is, kan weet watter sitplekke gratis is. Om die prototipe uit te voer, word die Arduino UNO -sagteware saam met die verwerking van die grafiese deel gebruik.

Hierdie konsep sou dit moontlik maak om 'n revolusie in die wêreld van openbare vervoer te maak, aangesien dit alle sitplekke van die trein tot die maksimum sou optimaliseer, wat die gebruik van alle waens verseker, tesame met die moontlikheid om data te versamel en later akkurate studies uit te voer op.

Stap 1: Ontwerp 3D -model

Ontwerp 'n 3D -model
Ontwerp 'n 3D -model

In die eerste plek het ons 'n uitgebreide ondersoek gedoen na treinmodelle. Met al die versamelde inligting, is die GTW -trein (vervaardig deur Stadler Rail) wat op FGC (Ferrocarrils de la Generalitat de Catalunya) gebruik is, gekies.

Dit is later ontwerp met die 3D -sagteware PTC Creo, die model vir die daaropvolgende 3D -drukwerk.

Stap 2: Druk 3D -model en afwerkings af

Druk 3D -model en afwerkings
Druk 3D -model en afwerkings

Sodra die trein ontwerp is, word dit oorgedra na 3D -druk. Sodra die stuk gedruk is, moet dit gepoleer word om 'n gladde oppervlak te verkry.

Hierdie projek kan ook met bestaande treinmodelle gedoen word.

Sodra dit gedruk is, word die finale afwerkings gegee.

Stap 3: Komponente

Komponente
Komponente

Vir die ontwikkeling van hierdie projek is die volgende komponente nodig:

- FSR 0.04-4.5LBS (druksensor).

- 1.1K ohm weerstande

Stap 4: Kodering (Arduino en verwerking)

Kodering (Arduino en verwerking)
Kodering (Arduino en verwerking)
Kodering (Arduino en verwerking)
Kodering (Arduino en verwerking)
Kodering (Arduino en verwerking)
Kodering (Arduino en verwerking)

Dit is nou tyd om die Arduino -kode te skryf waarmee die sensors 'n teken na die verwerkingsagteware kan stuur wat die inligting grafies sal stuur.

As sensors het ons 4 druksensors vir arduino wat die weerstand daarvan wissel volgens die krag wat daarop toegepas word. Die doel is dus om voordeel te trek uit die sein wat deur die sensors gestuur word (as die passasiers gaan sit) om die grafiese skerms in die verwerking te verander.

Dan skep ons die grafiese deel waarin ons die grafiese ontwerp van die Ferrocarrils de la Generalitat de Catalunya in ag geneem het, om die werklikheid op die beste manier na te boots.

By die verwerking is 'n kode geskryf wat direk gekoppel is aan die arduino-sagteware, op hierdie manier verander dit elke keer as iemand op 'n stoel sit, van kleur, sodat die gebruiker op die treinplatform intyds die trein se beskikbaarheid van sitplekke kan weet.

Hier kan u die kodering sien

ARDUINO:

int pot = A0; // Koppel die middelste pen van die pot aan hierdie pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // veranderlike vir die stoor van die potwaardes;

int lectura2; int lectura3; int lectura4;

leemte -opstelling () {// begin seriële kommunikasie teen 'n baudrate van 9600 Serial.begin (9600); }

leemte -lus () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura die analoog waarde as (lectura1> 10) {s = "1"; vertraging (100); } anders {s = "0"; vertraging (100); } Serial.println (s);

}

VERWERKING:

invoerverwerking.reeks.*; // hierdie biblioteek hanteer die reeksspraak String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Seriële myPort; // Skep voorwerp uit die reeksklas

leemte -opstelling () // dit loop net een keer {fullScreen (); background (0); // stel agtergrondkleur in op swart myPort = new Serial (hierdie, "COM5", 9600); // gee parameters aan die voorwerp van die seriële klas, plaas die com waarmee u arduino gekoppel is en die baud rate

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.grootte (displayWidth, displayHeight); s0001.resize (displayWidth, displayHeight); s0010.grootte (displayWidth, displayHeight); s0011.grootte (displayWidth, displayHeight); s0100.resize (displayWidth, displayHeight); s0101.grootte (displayWidth, displayHeight); s0110.grootte (displayWidth, displayHeight); s0111.grootte (displayWidth, displayHeight); s1000.resize (displayWidth, displayHeight); s1001.grootte (displayWidth, displayHeight); s1010.grootte (displayWidth, displayHeight); s1011.grootte (displayWidth, displayHeight); s1100.resize (displayWidth, displayHeight); s1101.grootte (displayWidth, displayHeight); s1110.grootte (displayWidth, displayHeight); s1111.grootte (displayWidth, displayHeight);

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

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

void serialEvent (Serial myPort) // wanneer 'n reekse gebeurtenis plaasvind, loop dit {val = myPort.readStringUntil ('\ n'); // maak seker dat ons data nie leeg is voordat u voortgaan as (val! = null) {// wit spasie en formatering van karakters (soos koetsopgawe) val = trim (val); println (val); }}

Stap 5: Kringloop

Kring
Kring

Na al die programmering is dit tyd om al die sensors aan te sluit met die Arduino UNO -bord.

Die sensors word op 4 sitplekke (wat later met 'n doek bedek sal word) geplaas en vasgemaak aan kabels wat direk na die moederbord van Arduino UNO gaan. Die sein wat op die bord ontvang word, word gestuur na 'n rekenaar wat via USB gekoppel is, wat die inligting intyds na Processing stuur en die kleur van die sitplek verander.

U kan 'n skema van die verbindings sien.

Stap 6: prototipe toets

Sodra die kode op die arduino -bord opgelaai is en die verwerkings- en arduino -program aangeskakel is, word die sensors getoets. Op die skerm sal u die veranderinge in die sitplekke sien as gevolg van die verandering van die beelde op die skerm wat inligting gee oor die sitplekke en nee.

Stap 7: Real Mock-up

Regte mock-up
Regte mock-up
Regte mock-up
Regte mock-up
Regte mock-up
Regte mock-up
Regte mock-up
Regte mock-up

Die regte toepassing sou probeer om dit op treine en platforms van die FGC -netwerk te installeer om reisigers te bedien.

Stap 8: GENIET

GENIET!
GENIET!
GENIET!
GENIET!

U het uiteindelik 'n Force Sensor Train (prototipe) gemaak waarmee die gebruiker op die treinplatform kan weet watter sitplek intyds beskikbaar is.

WELKOM BY DIE TOEKOMS!

Projek gemaak deur Marc Godayol & Federico Domenech

Aanbeveel: