INHOUDSOPGAWE:
- Stap 1: Ontwerp 3D -model
- Stap 2: Druk 3D -model en afwerkings af
- Stap 3: Komponente
- Stap 4: Kodering (Arduino en verwerking)
- Stap 5: Kringloop
- Stap 6: prototipe toets
- Stap 7: Real Mock-up
- Stap 8: GENIET
Video: Inligtingstelsel vir treinsitplekke - FGC: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
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
Aanbeveel:
Arduino motorwaarskuwingstelsel vir omgekeerde parkering - Stap vir stap: 4 stappe
Arduino -waarskuwingstelsel vir omgekeerde parkeerterrein | Stap vir stap: In hierdie projek ontwerp ek 'n eenvoudige Arduino Car Reverse Parking Sensor Circuit met behulp van Arduino UNO en HC-SR04 Ultrasonic Sensor. Hierdie Arduino -gebaseerde motor -omkeerwaarskuwingstelsel kan gebruik word vir 'n outonome navigasie, robotafstand en ander reeks
Opstelling vir eksterne Bluetooth GPS -verskaffer vir Android -toestelle: 8 stappe
Opstelling vir eksterne Bluetooth GPS-verskaffer vir Android-toestelle: hierdie instruksies sal verduidelik hoe u u eie eksterne Bluetooth-gps vir u telefoon kan aanbring, maar dit kan slegs teen ongeveer $ 10 aanbring.Materiaal: NEO 6M U-blox GPSHC-05 bluetooth-moduleKennis van koppelvlak Blutooth lae energie modules Ardui
Maklike skyfomslag vir 'n skootrekenaar vir 'n skootrekenaar: 6 stappe
Maklike skootbedekking vir 'n skootrekenaar vir 'n skootrekenaar: MATERIAAL: Dik materiaal, byvoorbeeld sintetiese leer, isolasieband, 'n deksel van 'n boks koekies of sjokolade.GEREEDSKAPPE
Handleiding vir PCB vir lugversorger met sy werk en herstel: 6 stappe
Handleiding vir PCB vir lugversorger met sy werk en herstel: Hey, wat gaan aan, ouens! Akarsh hier van CETech. Het u al ooit gewonder wat aan die binnekant van u lugversorgers aangaan? As Ja, dan moet u hierdie artikel deurgaan, aangesien ek vandag 'n insig sal gee in die verband en die samestelling
HacKIT: 'n harde hardeware (dra) -stelsel vir privaatheid vir die inbraak van Alexa, Google en Siri: 4 stappe
HacKIT: 'n Civic Privacy Hard (dra) kit vir die inbraak van Alexa, Google en Siri: Moeg vir u " slim " toestelle wat u afluister? Dan is hierdie gereedskapstel vir toesig-inbraak vir u! HacKIT is 'n lae tot hoë tegnologie burgerlike privaatheidsdrag vir die herontwerp, inbraak en herwinning van die Amazon Echo, Google Home