
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11

Detta projekt är baserat på implementering, i skala, av ett tåg som gör det möjligt för personerna på stationen att veta vilka platser som är lediga. För att utföra prototypen används Arduino UNO -programvaran tillsammans med bearbetningen för den grafiska delen.
Detta koncept skulle göra det möjligt att revolutionera kollektivtrafikvärlden, eftersom det skulle optimera alla säten i tåget till det maximala, säkerställa användningen av alla vagnar, tillsammans med möjligheten att samla in data och utföra studier som är korrekta, senare på.
Steg 1: Designa 3D -modell

Först och främst har vi gjort en omfattande forskning om tågmodeller. Med all information som samlats in har GTW -tåget (producerat av Stadler Rail) som används på FGC (Ferrocarrils de la Generalitat de Catalunya) valts.
Den designades senare med 3D -programvaran PTC Creo, modellen för efterföljande 3D -utskrift.
Steg 2: Skriva ut 3D -modell och finish

När tåget är konstruerat överförs det till 3D -utskrift. När biten är tryckt måste den poleras för att få en slät yta.
Detta projekt kan också göras med befintliga tågmodeller.
När de har skrivits ut ges de slutliga finisherna.
Steg 3: Komponenter

Följande komponenter behövs för utvecklingen av detta projekt:
- FSR 0.04-4.5LBS (trycksensor).
- 1.1K ohm motstånd
Steg 4: Kodning (Arduino och bearbetning)



Nu är det dags att skriva Arduino -koden som låter sensorerna skicka ett tecken till bearbetningsprogramvaran som överför informationen grafiskt.
Som sensorer har vi 4 trycksensorer för arduino som varierar dess motstånd beroende på kraften som appliceras på dem. Så målet är att dra nytta av signalen som skickas av sensorerna (när passagerarna sitter) för att ändra de grafiska skärmarna i Processing.
Sedan skapar vi den grafiska delen där vi har tagit hänsyn till den grafiska utformningen av Ferrocarrils de la Generalitat de Catalunya, för att efterlikna verkligheten på bästa möjliga sätt.
Vid bearbetningen har det skrivits en kod som är direkt ansluten till arduino-programvaran, på detta sätt, varje gång någon sätter sig på ett säte, ändrar det färg, så att användaren på tågplattformen kan veta i realtid hur tåget är tillgängligt.
Här kan du se kodningen
ARDUINO:
int pot = A0; // Anslut potten i mitten till denna pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // variabel för lagring av krukvärdena;
int lectura2; int lectura3; int lectura4;
void setup () {// initiera seriell kommunikation med en 9600 baudhastighet Serial.begin (9600); }
void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura det analoga värdet if (lectura1> 10) {s = "1"; fördröjning (100); } annat {s = "0"; fördröjning (100); } Serial.println (s);
}
BEHANDLING:
import bearbetning. serie.*; // detta bibliotek hanterar det seriella samtalet String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Seriell myPort; // Skapa objekt från serieklass
void setup () // detta körs bara en gång {fullScreen (); bakgrund (0); // inställning av bakgrundsfärg till svart myPort = new Serial (detta, "COM5", 9600); // ge parametrar till objekt i seriell klass, lägg den kom till vilken din arduino är ansluten och överföringshastigheten
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")) {image (s0001, 0, 0); } annars if (val.equals ("0010")) {image (s0010, 0, 0); } annars if (val.equals ("0011")) {image (s0011, 0, 0); } annars if (val.equals ("0100")) {image (s0100, 0, 0); } annars if (val.equals ("0101")) {image (s0101, 0, 0); } annars if (val.equals ("0110")) {image (s0110, 0, 0); } annars if (val.equals ("0111")) {image (s0111, 0, 0); } annars if (val.equals ("1000")) {image (s1000, 0, 0); } annars if (val.equals ("1001")) {image (s1001, 0, 0); } annars if (val.equals ("1010")) {image (s1010, 0, 0); } annars if (val.equals ("1011")) {image (s1011, 0, 0); } annars if (val.equals ("1100")) {image (s1100, 0, 0); } annars if (val.equals ("1101")) {image (s1101, 0, 0); } annars if (val.equals ("1110")) {image (s1110, 0, 0); } annars if (val.equals ("1111")) {image (s1111, 0, 0); } annat {bild (s0000, 0, 0); }}}
void serialEvent (Serial myPort) // när seriell händelse inträffar körs {val = myPort.readStringUntil ('\ n'); // se till att våra data inte är tomma innan du fortsätter om (val! = null) {// trimar blanksteg och formateringstecken (som vagnretur) val = trim (val); println (val); }}
Steg 5: Krets

Efter all programmering är det dags att ansluta alla sensorer med Arduino UNO -kortet.
Sensorerna är placerade på 4 säten (som senare kommer att täckas av en trasa) och svetsas till kablar som går direkt till moderkortet till Arduino UNO. Signalen som tas emot på kortet skickas till en dator som är ansluten via USB som skickar informationen till Processing i realtid och ändrar färg på sätet.
Du kan se ett schema över anslutningarna.
Steg 6: Prototyptest
När koden har laddats upp till arduino -kortet och bearbetnings- och arduino -programmet aktiverats testas sensorerna. På skärmen ser du förändringarna i sätena på grund av att bilderna på displayen informerar om de upptagna platserna och nr.
Steg 7: Real Mock-up




Den riktiga applikationen skulle försöka installera den på tåg och plattformar i FGC -nätverket för att betjäna resenärer.
Steg 8: NJUTA


Du har äntligen gjort ett Force Sensor Train (prototyp) som låter användaren på tågplattformen veta vilket säte som är tillgängligt i realtid.
VÄLKOMMEN TILL FRAMTIDEN!
Projekt gjord av Marc Godayol & Federico Domenech
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg

Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg

Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg

Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg

Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg

Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)