Sadržaj:

Informacijski sistem o dostupnosti sjedala za vozove - FGC: 8 koraka
Informacijski sistem o dostupnosti sjedala za vozove - FGC: 8 koraka

Video: Informacijski sistem o dostupnosti sjedala za vozove - FGC: 8 koraka

Video: Informacijski sistem o dostupnosti sjedala za vozove - FGC: 8 koraka
Video: This is the new generation of Korean high-speed trains 2024, Novembar
Anonim
Informacijski sistem o dostupnosti sjedala za vozove - FGC
Informacijski sistem o dostupnosti sjedala za vozove - FGC

Ovaj projekat se zasniva na implementaciji, u velikoj mjeri, voza koji omogućava ljudima koji se nalaze na stanici da znaju koja su mjesta slobodna. Za izradu prototipa koristi se Arduino UNO softver zajedno s obradom za grafički dio.

Ovaj koncept omogućio bi revoluciju u svijetu javnog prijevoza jer bi maksimalno optimizirao sva sjedišta vlaka, osiguravajući upotrebu svih vagona, uz mogućnost prikupljanja podataka i izvođenja tačnih studija, kasnije uključeno.

Korak 1: Dizajnirajte 3D model

Dizajn 3D modela
Dizajn 3D modela

Prije svega, izvršili smo opsežno istraživanje modela vlakova. Uz sve prikupljene podatke, odabran je voz GTW (proizvodnje Stadler Rail) koji se koristi na FGC -u (Ferrocarrils de la Generalitat de Catalunya).

Kasnije je dizajniran sa 3D softverom PTC Creo kao model za kasnije 3D štampanje.

Korak 2: Štampanje 3D modela i završetak

Štampanje 3D modela i završetak
Štampanje 3D modela i završetak

Nakon što je vlak dizajniran, on se prenosi na 3D štampanje. Nakon što se komad odštampa, mora se polirati kako bi se postigla glatka površina.

Ovaj projekt se može izvesti i sa postojećim modelima vlakova.

Nakon što se odštampa, daju se konačne završne obrade.

Korak 3: Komponente

Komponente
Komponente

Za razvoj ovog projekta potrebne su sljedeće komponente:

- FSR 0,04-4,5LBS (senzor pritiska).

- Otpornici od 1,1K ohma

Korak 4: Kodiranje (Arduino i obrada)

Kodiranje (Arduino i obrada)
Kodiranje (Arduino i obrada)
Kodiranje (Arduino i obrada)
Kodiranje (Arduino i obrada)
Kodiranje (Arduino i obrada)
Kodiranje (Arduino i obrada)

Sada je vrijeme za pisanje Arduino koda koji će omogućiti senzorima da pošalju znak softveru za obradu koji će grafički prenositi informacije.

Kao senzori imamo 4 senzora pritiska za arduino koji mijenjaju njegov otpor prema sili koja se na njih primjenjuje. Stoga je cilj iskoristiti signal koji šalju senzori (kada putnici sjednu) za promjenu grafičkih ekrana u obradi.

Zatim stvaramo grafički dio u kojem smo uzeli u obzir grafički dizajn Ferrocarrils de la Generalitat de Catalunya kako bismo oponašali stvarnost na najbolji mogući način.

U obradi je napisan kôd koji je direktno povezan sa arduino softverom, na ovaj način, svaki put kada neko sjedne na sjedalo, on mijenja boju, omogućavajući korisniku na peronu da u stvarnom vremenu zna dostupnost vlaka u sjedištu.

Ovdje možete vidjeti kodiranje

ARDUINO:

int pot = A0; // Priključite srednji pin lonca na ovaj pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // varijabla za spremanje pot vrijednosti;

int lectura2; int lectura3; int lectura4;

void setup () {// inicijalizira serijsku komunikaciju brzinom prijenosa od 9600 Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura analogna vrijednost if (lectura1> 10) {s = "1"; kašnjenje (100); } else {s = "0"; kašnjenje (100); } Serial.println (s);

}

OBRADA:

import processing.serial.*; // ova biblioteka obrađuje serijski razgovor String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Serijski myPort; // Kreiranje objekta iz klase Serial

void setup () // ovo radi samo jednom {fullScreen (); background (0); // postavljanje boje pozadine na crnu myPort = new Serial (this, "COM5", 9600); // davanje parametara objektu serijske klase, stavljanje com -a na koji je vaš arduino povezan i brzinu prijenosa podataka

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

void serialEvent (Serial myPort) // kad god se dogodi serijski događaj pokreće se {val = myPort.readStringUntil ('\ n'); // uverite se da naši podaci nisu prazni pre nego što nastavite if (val! = null) {// skratite razmake i znakove za formatiranje (poput povratka karike) val = trim (val); println (val); }}

Korak 5: Krug

Krug
Krug

Nakon programiranja, vrijeme je za povezivanje svih senzora s Arduino UNO pločom.

Senzori su postavljeni na 4 sjedala (koja će kasnije biti prekrivena krpom) i zavareni su na kabele koji idu direktno na matičnu ploču Arduino UNO. Signal primljen na ploči šalje se računaru povezanom putem USB -a koji šalje informacije u Processing u stvarnom vremenu, mijenjajući boju sjedišta.

Možete vidjeti shemu veza.

Korak 6: Test prototipa

Nakon što je kôd postavljen na arduino ploču i uključen program za obradu i arduino, senzori se testiraju. Na ekranu ćete vidjeti promjene na sjedalima zbog promjene slika na ekranu koje obavještavaju o zauzetim mjestima i ne.

Korak 7: Prava maketa

Prava maketa
Prava maketa
Prava maketa
Prava maketa
Prava maketa
Prava maketa
Prava maketa
Prava maketa

Prava aplikacija pokušala bi je instalirati na vlakove i platforme mreže FGC kako bi služila putnicima.

Korak 8: UŽIVAJTE

UŽIVAJTE!
UŽIVAJTE!
UŽIVAJTE!
UŽIVAJTE!

Konačno ste napravili vlak senzora sile (prototip) koji omogućava korisniku na platformi voza da zna koje je sjedište dostupno u stvarnom vremenu.

DOBRODOŠLI U BUDUĆNOST!

Projekt su napravili Marc Godayol i Federico Domenech

Preporučuje se: