Obsah:

Informační systém dostupnosti vlakového sedadla - FGC: 8 kroků
Informační systém dostupnosti vlakového sedadla - FGC: 8 kroků

Video: Informační systém dostupnosti vlakového sedadla - FGC: 8 kroků

Video: Informační systém dostupnosti vlakového sedadla - FGC: 8 kroků
Video: RegioPanter pro Slovensko 2024, Listopad
Anonim
Informační systém dostupnosti vlakových sedadel - FGC
Informační systém dostupnosti vlakových sedadel - FGC

Tento projekt je založen na implementaci vlaku v měřítku, který lidem na stanici umožní zjistit, která místa jsou volná. K provedení prototypu se používá software Arduino UNO společně se zpracováním pro grafickou část.

Tento koncept by umožnil revoluci ve světě veřejné dopravy, protože by maximálně optimalizoval všechna místa ve vlaku, zajistil využití všech vagónů spolu s možností shromažďování údajů a provádění studií, které jsou přesné, později na.

Krok 1: Navrhněte 3D model

Navrhněte 3D model
Navrhněte 3D model

Nejprve jsme provedli komplexní výzkum modelů vlaků. Se všemi shromážděnými informacemi byl vybrán vlak GTW (produkovaný Stadler Rail) používaný na FGC (Ferrocarrils de la Generalitat de Catalunya).

Později byl navržen s 3D softwarem PTC Creo model pro následný 3D tisk.

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

Tisk 3D modelu a povrchové úpravy
Tisk 3D modelu a povrchové úpravy

Jakmile je vlak navržen, je předán 3D tisku. Jakmile je kus vytištěn, musí být vyleštěn, aby se dosáhlo hladkého povrchu.

Tento projekt lze také provést se stávajícími modely vlaků.

Po vytištění jsou uvedeny konečné úpravy.

Krok 3: Komponenty

Komponenty
Komponenty

Pro vývoj tohoto projektu jsou zapotřebí následující komponenty:

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

- Rezistory 1,1K ohmů

Krok 4: Kódování (Arduino a zpracování)

Kódování (Arduino a zpracování)
Kódování (Arduino a zpracování)
Kódování (Arduino a zpracování)
Kódování (Arduino a zpracování)
Kódování (Arduino a zpracování)
Kódování (Arduino a zpracování)

Nyní je čas napsat kód Arduino, který umožní senzorům odeslat znamení do zpracovatelského softwaru, který bude informace přenášet graficky.

Jako senzory máme pro arduino 4 senzory tlaku, které mění svůj odpor podle síly, která na ně působí. Cílem je tedy využít signálu vysílaného senzory (když si cestující sednou) ke změně grafických obrazovek ve Zpracování.

Poté vytvoříme grafickou část, ve které jsme vzali v úvahu grafický design Ferrocarrils de la Generalitat de Catalunya, abychom co nejlépe napodobili realitu.

Při zpracování byl napsán kód, který je přímo připojen k softwaru arduino. Tímto způsobem pokaždé, když se někdo posadí na místo, změní barvu, což uživateli na nástupišti umožní v reálném čase vědět o dostupnosti míst v vlaku.

Zde vidíte kódování

ARDUINO:

int pot = A0; // Připojte střední pin potu k tomuto pinint pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // proměnná pro ukládání hodnot potu;

int lectura2; int lectura3; int lectura4;

void setup () {// inicializace sériové komunikace při přenosové rychlosti 9600 Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (pot); // lectura analogová hodnota if (lectura1> 10) {s = "1"; zpoždění (100); } else {s = "0"; zpoždění (100); } Serial.println (s);

}

ZPRACOVÁVÁ SE:

zpracování importu.sériové.*; // tato knihovna zpracovává seriál talk String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Sériový myPort; // Vytvoření objektu ze sériové třídy

void setup () // toto se spustí jen jednou {fullScreen (); background (0); // nastavení barvy pozadí na černou myPort = new Serial (this, "COM5", 9600); // udávající parametry objektu sériové třídy, vložte com, ke kterému je připojeno vaše arduino a přenosovou rychlost

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

val = trim (val);} neplatné draw () {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 {image (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // kdykoli dojde k sériové události, spustí se {val = myPort.readStringUntil ('\ n'); // před pokračováním if (val! = null) se ujistěte, že naše data nejsou prázdná {// ořízněte mezery a formátujte znaky (jako návrat na začátek řádku) val = trim (val); println (val); }}

Krok 5: Okruh

Obvod
Obvod

Po veškerém programování je čas propojit všechny senzory s deskou Arduino UNO.

Senzory jsou umístěny na 4 sedadlech (která budou později zakryta látkou) a přivařena ke kabelům, které vedou přímo k základní desce Arduino UNO. Signál přijatý na desce je odeslán do počítače připojeného přes USB, který odesílá informace do Processing v reálném čase, mění barvu sedadla.

Můžete vidět schéma připojení.

Krok 6: Test prototypu

Po nahrání kódu na desku arduino a zapnutí programu pro zpracování a arduino jsou senzory testovány. Na obrazovce uvidíte změny v sedadlech v důsledku změny obrázků na displeji informujících o obsazených sedadlech a č.

Krok 7: Skutečná maketa

Skutečná maketa
Skutečná maketa
Skutečná maketa
Skutečná maketa
Skutečná maketa
Skutečná maketa
Skutečná maketa
Skutečná maketa

Skutečná aplikace by se pokusila nainstalovat do vlaků a nástupišť sítě FGC, aby sloužila cestujícím.

Krok 8: UŽÍVEJTE SI

UŽÍVAT SI!
UŽÍVAT SI!
UŽÍVAT SI!
UŽÍVAT SI!

Konečně jste vytvořili Train Force Sensor Train (prototyp), který umožňuje uživateli na nástupišti vědět, které místo je k dispozici v reálném čase.

VÍTEJTE V BUDOUCNOSTI!

Projekt vytvořili Marc Godayol a Federico Domenech

Doporučuje: