INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
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
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
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
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)
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
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
Die regte toepassing sou probeer om dit op treine en platforms van die FGC -netwerk te installeer om reisigers te bedien.
Stap 8: 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