Obsah:

Informačný systém dostupnosti vlaku - FGC: 8 krokov
Informačný systém dostupnosti vlaku - FGC: 8 krokov

Video: Informačný systém dostupnosti vlaku - FGC: 8 krokov

Video: Informačný systém dostupnosti vlaku - FGC: 8 krokov
Video: Nové slovenské hlášení - Informační systém VISL 2024, November
Anonim
Informačný systém dostupnosti vlakových miest - FGC
Informačný systém dostupnosti vlakových miest - FGC

Tento projekt je založený na implementácii vlaku, ktorý umožňuje ľuďom na stanici vedieť, ktoré miesta sú voľné. Na vykonanie prototypu sa používa softvér Arduino UNO spolu so spracovaním grafickej časti.

Tento koncept by umožnil revolúciu vo svete verejnej dopravy, pretože by maximálne optimalizoval všetky miesta vo vlaku, zaistil používanie všetkých vozňov spolu s možnosťou zberu údajov a vykonania štúdií, ktoré sú presné, neskôr na.

Krok 1: Navrhnite 3D model

Navrhnite 3D model
Navrhnite 3D model

Najprv sme urobili komplexný výskum modelov vlakov. Na základe všetkých zhromaždených informácií bol vybraný vlak GTW (vyrobený spoločnosťou Stadler Rail) používaný na FGC (Ferrocarrils de la Generalitat de Catalunya).

Neskôr bol navrhnutý s 3D softvérom PTC Creo ako model pre následnú 3D tlač.

Krok 2: Tlač 3D modelu a povrchových úprav

Tlač 3D modelu a povrchových úprav
Tlač 3D modelu a povrchových úprav

Akonáhle je vlak navrhnutý, prejde na 3D tlač. Akonáhle je kus vytlačený, musí byť leštený, aby sa dosiahol hladký povrch.

Tento projekt je možné vykonať aj s existujúcimi modelmi vlakov.

Po vytlačení sú uvedené konečné úpravy.

Krok 3: Komponenty

Komponenty
Komponenty

Na vývoj tohto projektu sú potrebné tieto komponenty:

- FSR 0,04-4,5LBS (snímač tlaku).

- 1,1K ohmové odpory

Krok 4: Kódovanie (Arduino a spracovanie)

Kódovanie (Arduino a spracovanie)
Kódovanie (Arduino a spracovanie)
Kódovanie (Arduino a spracovanie)
Kódovanie (Arduino a spracovanie)
Kódovanie (Arduino a spracovanie)
Kódovanie (Arduino a spracovanie)

Teraz je načase napísať kód Arduino, ktorý umožní senzorom odoslať znak do spracovateľského softvéru, ktorý bude informácie prenášať graficky.

Ako senzory máme 4 snímače tlaku pre arduino, ktoré menia svoj odpor podľa sily, ktorá na ne pôsobí. Cieľom je teda využiť signál odoslaný senzormi (keď si cestujúci sadnú) na zmenu grafických obrazoviek v programe Processing.

Potom vytvoríme grafickú časť, v ktorej sme vzali do úvahy grafický návrh Ferrocarrils de la Generalitat de Catalunya, aby sme čo najlepšie napodobnili realitu.

Pri spracovaní bol napísaný kód, ktorý je priamo prepojený so softvérom arduino. Týmto spôsobom, zakaždým, keď sa niekto posadí na miesto, zmení farbu, čo používateľovi na nástupišti umožní v reálnom čase poznať dostupnosť miest na sedenie vlaku.

Tu vidíte kódovanie

ARDUINO:

int pot = A0; // Pripojte stredný pin hrnca k tomuto pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // premenná na ukladanie hodnôt potu;

int lectura2; int lectura3; int lectura4;

void setup () {// inicializácia sériovej komunikácie pri prenosovej rýchlosti 9600 Serial.begin (9600); }

void loop () {String s = ""; // // Llegir senzor1 lectura1 = analogRead (pot); // lectura analógová hodnota if (lectura1> 10) {s = "1"; oneskorenie (100); } else {s = "0"; oneskorenie (100); } Serial.println (s);

}

SPRACOVANIE:

spracovanie importu.sériové.*; // táto knižnica zvláda sériové hovory String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Sériový myPort; // Vytvorenie objektu zo sériovej triedy

void setup () // toto sa spustí iba raz {fullScreen (); pozadie (0); // nastavenie farby pozadia na čierny myPort = nový sériový (tento, "COM5", 9600); // poskytnutie parametrov objektu sériovej triedy, zadajte kód, ku ktorému je pripojené vaše arduino, a prenosovú rýchlosť

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 (šírka displeja, výška displeja); s0001.resize (šírka displeja, výška displeja); s0010.resize (šírka displeja, výška displeja); s0011.resize (šírka displeja, výška displeja); s0100.resize (šírka displeja, výška displeja); s0101.resize (šírka displeja, výška displeja); s0110.resize (šírka displeja, výška displeja); s0111.resize (displayWidth, displayHeight); s1000.resize (šírka displeja, výška displeja); s1001.resize (šírka displeja, výška displeja); s1010.resize (šírka displeja, výška displeja); s1011.resize (šírka displeja, výška displeja); s1100.resize (šírka displeja, výška displeja); s1101.resize (šírka displeja, výška displeja); s1110.resize (šírka displeja, výška displeja); s1111.resize (displayWidth, displayHeight);

val = trim (val);} neplatné kreslenie () {if (val! = null) {

if (val.equals ("0001")) {image (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 {obrázok (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // kedykoľvek sa stane sériová udalosť, spustí sa {val = myPort.readStringUntil ('\ n'); // pred pokračovaním if (val! = null) {// uistite sa, že naše údaje nie sú prázdne {// orezanie medzier a formátovanie znakov (ako návrat vozíka) val = trim (val); println (val); }}

Krok 5: Okruh

Obvod
Obvod

Po všetkom programovaní je čas prepojiť všetky senzory s doskou Arduino UNO.

Senzory sú umiestnené na 4 sedadlách (ktoré budú neskôr zakryté látkou) a privarené ku káblom, ktoré smerujú priamo k základnej doske Arduino UNO. Signál prijatý na doske je odoslaný do počítača pripojeného cez USB, ktorý v reálnom čase odosiela informácie do Processing, pričom mení farbu sedadla.

Môžete vidieť schému prepojení.

Krok 6: Prototypový test

Po nahraní kódu na dosku arduino a zapnutí programu na spracovanie a arduino sa senzory testujú. Na obrazovke uvidíte zmeny na sedadlách v dôsledku zmeny obrázkov na displeji informujúcich o obsadených sedadlách a č.

Krok 7: Skutočná maketa

Skutočná maketa
Skutočná maketa
Skutočná maketa
Skutočná maketa
Skutočná maketa
Skutočná maketa
Skutočná maketa
Skutočná maketa

Skutočná aplikácia by sa ho pokúsila nainštalovať do vlakov a nástupíšť siete FGC, aby slúžila cestujúcim.

Krok 8: UŽÍVAJTE SI

UŽITE SI TO!
UŽITE SI TO!
UŽITE SI TO!
UŽITE SI TO!

Nakoniec ste vyrobili vlak snímača sily (prototyp), ktorý umožňuje používateľovi na nástupišti vedieť, ktoré sedadlo je k dispozícii v reálnom čase.

VITAJTE V BUDÚCNOSTI!

Projekt vytvorili Marc Godayol a Federico Domenech

Odporúča: