Inhaltsverzeichnis:

Verfügbarkeitsinformationssystem für Zugsitze - FGC - Gunook
Verfügbarkeitsinformationssystem für Zugsitze - FGC - Gunook

Video: Verfügbarkeitsinformationssystem für Zugsitze - FGC - Gunook

Video: Verfügbarkeitsinformationssystem für Zugsitze - FGC - Gunook
Video: Cremallera de Núria / Zahnradbahn von Nuria - Zeitraffer 2024, Juli
Anonim
Informationssystem zur Verfügbarkeit von Zugsitzen - FGC
Informationssystem zur Verfügbarkeit von Zugsitzen - FGC

Dieses Projekt basiert auf der maßstabsgetreuen Umsetzung eines Zuges, der es den Personen im Bahnhof ermöglicht, zu wissen, welche Plätze frei sind. Um den Prototypen durchzuführen, wird die Arduino UNO Software zusammen mit dem Processing für den grafischen Teil verwendet.

Dieses Konzept würde es ermöglichen, die Welt des öffentlichen Verkehrs zu revolutionieren, da es alle Sitzplätze des Zuges maximal optimiert, die Nutzung aller Waggons sicherstellt und die Möglichkeit bietet, später Daten zu sammeln und genaue Studien durchzuführen An.

Schritt 1: 3D-Modell entwerfen

3D-Modell entwerfen
3D-Modell entwerfen

Zunächst haben wir eine umfassende Recherche zu Zugmodellen durchgeführt. Mit allen gesammelten Informationen wurde der GTW-Zug (hergestellt von Stadler Rail) ausgewählt, der auf FGC (Ferrocarrils de la Generalitat de Catalunya) verwendet wird.

Später wurde mit der 3D-Software PTC Creo das Modell für den anschließenden 3D-Druck entworfen.

Schritt 2: 3D-Modell und Oberflächen drucken

Drucken von 3D-Modellen und Oberflächen
Drucken von 3D-Modellen und Oberflächen

Sobald der Zug konstruiert ist, wird er an den 3D-Druck übergeben. Sobald das Stück gedruckt ist, muss es poliert werden, um eine glatte Oberfläche zu erzielen.

Dieses Projekt kann auch mit bestehenden Zugmodellen durchgeführt werden.

Nach dem Druck werden die endgültigen Oberflächen gegeben.

Schritt 3: Komponenten

Komponenten
Komponenten

Für die Entwicklung dieses Projekts werden folgende Komponenten benötigt:

- FSR 0.04-4.5LBS (Drucksensor).

- 1.1K Ohm Widerstände

Schritt 4: Codierung (Arduino & Verarbeitung)

Codierung (Arduino & Verarbeitung)
Codierung (Arduino & Verarbeitung)
Codierung (Arduino & Verarbeitung)
Codierung (Arduino & Verarbeitung)
Codierung (Arduino & Verarbeitung)
Codierung (Arduino & Verarbeitung)

Jetzt ist es an der Zeit, den Arduino-Code zu schreiben, der es den Sensoren ermöglicht, ein Zeichen an die Verarbeitungssoftware zu senden, die die Informationen grafisch überträgt.

Als Sensoren haben wir 4 Drucksensoren für Arduino, die ihren Widerstand entsprechend der auf sie ausgeübten Kraft variieren. Ziel ist es also, das von den Sensoren gesendete Signal (wenn die Passagiere Platz nehmen) zu nutzen, um die Grafikbildschirme in Processing zu ändern.

Dann erstellen wir den grafischen Teil, bei dem wir das grafische Design der Ferrocarrils de la Generalitat de Catalunya berücksichtigt haben, um die Realität bestmöglich nachzuahmen.

Bei der Verarbeitung wurde ein Code geschrieben, der direkt mit der Arduino-Software verbunden ist. Auf diese Weise ändert sich jedes Mal, wenn jemand auf einem Sitzplatz sitzt, die Farbe, sodass der Benutzer am Bahnsteig in Echtzeit die Verfügbarkeit der Sitzplätze im Zug erfahren kann.

Hier seht ihr die Codierung

ARDUINO:

int-Pot = A0; // Verbinden Sie den mittleren Pin des Potis mit diesem Pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // Variable zum Speichern der Pot-Werte;

int lectura2;int lectura3; int lectura4;

Void setup () {// serielle Kommunikation mit einer Baudrate von 9600 initialisieren Serial.begin (9600); }

Void Schleife () { String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura der analoge Wert if (lectura1 > 10) { s = "1"; Verzögerung (100); aufrechtzuerhalten. Sonst { s = "0"; Verzögerung (100); } Serial.println (s);

}

WIRD BEARBEITET:

Importabwicklung.seriell.*; // diese Bibliothek verarbeitet das serielle Gespräch String val=""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Serieller myPort; // Objekt aus Serial-Klasse erstellen

void setup () // dies wird nur einmal ausgeführt { fullScreen (); background(0);// Hintergrundfarbe auf schwarz setzen myPort = new Serial(this, "COM5", 9600); // Parameter für das Objekt der seriellen Klasse geben, die com angeben, mit der Ihr Arduino verbunden ist, und die Baudrate

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")) {Bild(s0001, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("0010")) {Bild(s0010, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("0011")) {Bild(s0011, 0, 0); aufrechtzuerhalten. Sonst wenn (val.equals("0100")) {Bild (s0100, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("0101")) {Bild(s0101, 0, 0); aufrechtzuerhalten. Sonst wenn (val.equals ("0110")) { Bild (s0110, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("0111")) {Bild(s0111, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1000")) {Bild(s1000, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1001")) {Bild(s1001, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1010")) {Bild(s1010, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1011")) {Bild(s1011, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1100")) {Bild (s1100, 0, 0); aufrechtzuerhalten. Sonst if (val.equals ("1101")) { Bild (s1101, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1110")) {Bild (s1110, 0, 0); aufrechtzuerhalten. Sonst if (val.equals("1111")) {Bild(s1111, 0, 0); aufrechtzuerhalten. Sonst { Bild (s0000, 0, 0); } } }

void serialEvent(Serial myPort) // wann immer ein serielles Ereignis auftritt, wird es ausgeführt { val = myPort.readStringUntil('\n'); //Stellen Sie sicher, dass unsere Daten nicht leer sind, bevor Sie fortfahren if (val != null) { // Leerraum und Formatierungszeichen trimmen (wie Wagenrücklauf) val = trim(val); println(val); } }

Schritt 5: Schaltung

Schaltkreis
Schaltkreis

Nach der Programmierung ist es an der Zeit, alle Sensoren mit dem Arduino UNO-Board zu verbinden.

Die Sensoren werden auf 4 Sitzen (die später mit einem Tuch bedeckt werden) platziert und mit Kabeln verschweißt, die direkt zum Motherboard des Arduino UNO führen. Das auf dem Board empfangene Signal wird an einen über USB angeschlossenen Computer gesendet, der die Informationen in Echtzeit an Processing sendet und die Farbe des Sitzes ändert.

Sie können ein Schema der Verbindungen sehen.

Schritt 6: Prototypentest

Sobald der Code auf das Arduino-Board hochgeladen und das Verarbeitungs- und Arduino-Programm eingeschaltet wurde, werden die Sensoren getestet. Auf dem Bildschirm sehen Sie die Änderungen der Sitzplätze aufgrund der Änderung der Bilder auf dem Display, die über die belegten Sitzplätze und die Anzahl der Sitzplätze informieren.

Schritt 7: Echtes Mock-up

Echtes Modell
Echtes Modell
Echtes Modell
Echtes Modell
Echtes Modell
Echtes Modell
Echtes Modell
Echtes Modell

Die eigentliche Anwendung würde versuchen, sie in Zügen und Bahnsteigen des FGC-Netzwerks zu installieren, um Reisende zu bedienen.

Schritt 8: GENIESSEN

VIEL SPASS!
VIEL SPASS!
VIEL SPASS!
VIEL SPASS!

Sie haben endlich einen Force Sensor Train (Prototyp) erstellt, der es dem Benutzer am Bahnsteig ermöglicht, in Echtzeit zu wissen, welcher Sitzplatz verfügbar ist.

WILLKOMMEN IN DER ZUKUNFT!

Projekt von Marc Godayol & Federico Domenech

Empfohlen: