Taula de continguts:
- Pas 1: dissenyar el model 3D
- Pas 2: Impressió de models i acabats 3D
- Pas 3: components
- Pas 4: Codificació (Arduino i processament)
- Pas 5: Circuit
- Pas 6: Prova de prototipus
- Pas 7: maqueta real
- Pas 8: GAUDEIX
Vídeo: Sistema d’informació de disponibilitat de seients de trens - FGC: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
Aquest projecte es basa en la implementació, a escala, d’un tren que permet a les persones que estan a l’estació saber quines places són lliures. Per dur a terme el prototip, s’utilitza el programari Arduino UNO juntament amb el processament de la part gràfica.
Aquest concepte permetria revolucionar el món del transport públic, ja que optimitzaria al màxim totes les places del tren, garantint l’ús de tots els vagons, juntament amb la possibilitat de recollir dades i realitzar estudis que siguin precisos, posteriorment. encès.
Pas 1: dissenyar el model 3D
Primer de tot, hem fet una investigació completa sobre models de trens. Amb tota la informació recollida, s’ha escollit el tren GTW (produït per Stadler Rail) utilitzat a FGC (Ferrocarrils de la Generalitat de Catalunya).
Posteriorment es va dissenyar amb el programari 3D PTC Creo el model per a la impressió 3D posterior.
Pas 2: Impressió de models i acabats 3D
Un cop dissenyat el tren, es passa a la impressió 3D. Un cop impresa la peça, s’ha de polir per aconseguir una superfície llisa.
Aquest projecte també es pot fer amb models de tren existents.
Un cop imprès, es donen els acabats finals.
Pas 3: components
Per al desenvolupament d’aquest projecte són necessaris els components següents:
- FSR 0,04-4,5 LBS (sensor de pressió).
- Resistències d’1,1K ohms
Pas 4: Codificació (Arduino i processament)
Ara és hora d’escriure el codi Arduino que permetrà als sensors enviar un signe al programari Processing que transmetrà la informació gràficament.
Com a sensors tenim 4 sensors de pressió per a arduino que varien la seva resistència segons la força que se'ls aplica. Per tant, l’objectiu és aprofitar el senyal enviat pels sensors (quan els passatgers s’asseuen) per canviar les pantalles gràfiques de Processament.
A continuació, creem la part gràfica en què hem tingut en compte el disseny gràfic dels Ferrocarrils de la Generalitat de Catalunya, per emular la realitat de la millor manera possible.
En processar s’ha escrit un codi que està directament connectat al programari arduino, d’aquesta manera, cada vegada que algú s’asseu en un seient, canvia de color, cosa que permet a l’usuari de l’andana del tren conèixer en temps real la disponibilitat de seients del tren.
Aquí podeu veure la codificació
ARDUINO:
int pot = A0; // Connecteu el passador central del pot a aquest pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // variable per emmagatzemar els valors del pot;
int lectura2; int lectura3; int lectura4;
void setup () {// inicialitza les comunicacions en sèrie a una velocitat de transmissió de 9600 Serial.begin (9600); }
bucle buit () {Cadena s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura del valor analògic if (lectura1> 10) {s = "1"; retard (100); } else {s = "0"; retard (100); } Serial.println (s);
}
TRACTAMENT:
processament de la importació. sèrie. *; // aquesta biblioteca gestiona la conversa en sèrie String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; MyPort en sèrie; // Crea un objecte a partir de la classe Serial
void setup () // només s'executa una vegada {fullScreen (); background (0); // configuració del color de fons a negre myPort = new Serial (this, "COM5", 9600); // donant paràmetres a l'objecte de classe serial, poseu la com a la qual està connectat el vostre arduino i la velocitat en bauds
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 = retallar (val);} void draw () {if (val! = nul) {
if (val.equals ("0001"))) {imatge (s0001, 0, 0); } else if (val.equals ("0010")) {imatge (s0010, 0, 0); } else if (val.equals ("0011")) {imatge (s0011, 0, 0); } else if (val.equals ("0100")) {imatge (s0100, 0, 0); } else if (val.equals ("0101")) {imatge (s0101, 0, 0); } else if (val.equals ("0110")) {imatge (s0110, 0, 0); } else if (val.equals ("0111")) {image (s0111, 0, 0); } else if (val.equals ("1000")) {imatge (s1000, 0, 0); } else if (val.equals ("1001")) {imatge (s1001, 0, 0); } else if (val.equals ("1010")) {imatge (s1010, 0, 0); } else if (val.equals ("1011")) {imatge (s1011, 0, 0); } else if (val.equals ("1100")) {imatge (s1100, 0, 0); } else if (val.equals ("1101")) {imatge (s1101, 0, 0); } else if (val.equals ("1110")) {imatge (s1110, 0, 0); } else if (val.equals ("1111")) {imatge (s1111, 0, 0); } else {imatge (s0000, 0, 0); }}}
void serialEvent (Serial myPort) // sempre que succeeix un esdeveniment en sèrie, s'executa {val = myPort.readStringUntil ('\ n'); // assegureu-vos que les nostres dades no estiguin buides abans de continuar si (val! = nul) {// retalla l'espai en blanc i els caràcters de format (com ara retorn de carro) val = retalla (val); println (val); }}
Pas 5: Circuit
Després de tota la programació, és hora de connectar tots els sensors amb la placa Arduino UNO.
Els sensors es col·loquen en 4 seients (que posteriorment seran coberts per un drap) i soldats a cables que van directament a la placa base d'Arduino UNO. El senyal rebut al tauler s’envia a un ordinador connectat mitjançant USB que envia la informació a Processing en temps real, canviant el color del seient.
Podeu veure un esquema de les connexions.
Pas 6: Prova de prototipus
Un cop s'ha carregat el codi a la placa arduino i s'ha activat el programa de processament i arduino, es proven els sensors. A la pantalla veureu els canvis als seients a causa del canvi d’imatges a la pantalla que informen sobre els seients ocupats i el núm.
Pas 7: maqueta real
L’aplicació real intentaria instal·lar-la als trens i andanes de la xarxa FGC per atendre els viatgers.
Pas 8: GAUDEIX
Finalment heu creat un tren de sensor de força (prototip) que permet a l’usuari a l’andana del tren saber quin seient està disponible en temps real.
BENVINGUTS AL FUTUR
Projecte realitzat per Marc Godayol i Federico Domenech
Recomanat:
Disseny automàtic de ferrocarrils amb dos trens (V2.0) - Basat en Arduino: 15 passos (amb imatges)
Disseny automàtic de ferrocarrils amb dos trens (V2.0) | Basat en Arduino: automatitzar els dissenys de models de ferrocarril mitjançant microcontroladors Arduino és una manera excel·lent de combinar microcontroladors, programació i model de ferrocarril en un sol hobby. Hi ha un munt de projectes disponibles per fer circular un tren de forma autònoma en un model railroa
Enviament d'informació amb àtom d'heli: 3 passos
Enviament d’informació amb Helium Atom: Helium és una plataforma sense fils completa per a Internet de les coses, que subministra maquinari integrat, interfícies de programari i una infraestructura construïda per connectar objectes a Internet de manera fàcil, eficient i segura. Hi ha dos components de maquinari
Pla de seients RFID: 7 passos
Pla de seients RFID: volia fer alguna cosa especial per a les taules del meu casament i vaig pensar que era una bona manera de fer-lo personal, ja que reflecteix el meu amor (addicció) als projectes electrònics. Per tant, el pla era fer una fusta gran tauler amb el pla de la sala a
Sistema de monitor de creuament de trens: 5 passos (amb imatges)
Sistema de control de travessia de trens: aquest instructiu us ensenyarà a utilitzar MatLab per codificar un Arduino per controlar una part d'un sistema ferroviari
Sistema de seients de tren: 4 passos (amb imatges)
Sistema de seients de tren: Avui hem creat un sistema que es pot implementar en seients de tren. Vam haver de trobar una molèstia i donar-hi solució. Vam decidir que faríem un sistema que us indiqués si hi ha un seient disponible al carretó del tren on esteu. No hi ha res