Sadržaj:

Informacijski sustav o dostupnosti sjedala za vlak - FGC: 8 koraka
Informacijski sustav o dostupnosti sjedala za vlak - FGC: 8 koraka

Video: Informacijski sustav o dostupnosti sjedala za vlak - FGC: 8 koraka

Video: Informacijski sustav o dostupnosti sjedala za vlak - FGC: 8 koraka
Video: La Moto 125 Mas BARATA Doble Propósito 🔥Así Es La TTR 125 de AKT 2024 2024, Srpanj
Anonim
Informacijski sustav o dostupnosti sjedala za vlakove - FGC
Informacijski sustav o dostupnosti sjedala za vlakove - FGC

Ovaj se projekt temelji na implementaciji, u opsegu, vlaka koji omogućuje ljudima koji se nalaze u kolodvoru da znaju koja su mjesta slobodna. Kako bi se izradio prototip, softver Arduino UNO koristi se zajedno s obradom za grafički dio.

Taj bi koncept omogućio revoluciju u svijetu javnog prijevoza jer bi maksimalno optimizirao sva sjedala vlaka, osiguravajući upotrebu svih vagona, uz mogućnost prikupljanja podataka i provođenja točnih studija, kasnije na.

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 vlak GTW (proizvodnje Stadler Rail) koji se koristi na FGC -u (Ferrocarrils de la Generalitat de Catalunya).

Kasnije je s 3D softverom PTC Creo dizajniran model za kasniji 3D ispis.

Korak 2: Ispis 3D modela i završetak

Ispis 3D modela i završetak
Ispis 3D modela i završetak

Nakon što je vlak projektiran, on se prenosi na 3D ispis. Nakon što je komad ispisan, mora se polirati kako bi se postigla glatka površina.

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

Nakon ispisa 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 (osjetnik tlaka).

- 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)

Vrijeme je 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 (kad putnici sjednu) za promjenu grafičkih zaslona 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 izravno povezan sa arduino softverom, na ovaj način, svaki put kad netko sjedne na sjedište, on mijenja boju, dopuštajući korisniku na peronu vlaka da u stvarnom vremenu zna dostupnost vlaka u vlaku.

Ovdje možete vidjeti kodiranje

ARDUINO:

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

int lectura2; int lectura3; int lectura4;

void setup () {// inicijalizirati 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:

uvoz obrada.serial.*; // ova knjižnica 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; // Stvaranje objekta iz Serijske klase

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

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'); // provjerite jesu li naši podaci prazni prije nego nastavite if (val! = null) {// obrežite razmake i znakove za oblikovanje (poput povratka nosača) val = trim (val); println (val); }}

Korak 5: Krug

Krug
Krug

Nakon svih 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 izravno na matičnu ploču Arduino UNO. Signal primljen na ploči šalje se na računalo povezano putem USB -a koje u stvarnom vremenu šalje informacije Processingu, mijenjajući boju sjedala.

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 zaslonu koje informiraju o zauzetim mjestima i br.

Korak 7: Prava maketa

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

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

Korak 8: UŽIVAJTE

UŽIVATI!
UŽIVATI!
UŽIVATI!
UŽIVATI!

Konačno ste napravili vlak senzora sile (prototip) koji omogućuje korisniku na platformi vlaka da zna koje je sjedalo dostupno u stvarnom vremenu.

DOBRODOŠLI U BUDUĆNOST!

Projekt su napravili Marc Godayol i Federico Domenech

Preporučeni: