Përmbajtje:

Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC: 8 Hapa
Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC: 8 Hapa

Video: Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC: 8 Hapa

Video: Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC: 8 Hapa
Video: Përse po digjen makinat? Mekanikët tregojnë gabimet që bëjnë shoferët në Shqipëri 2024, Korrik
Anonim
Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC
Sistemi i Informacionit për Disponueshmërinë e Vendeve të Trenit - FGC

Ky projekt bazohet në zbatimin, në një shkallë, të një treni që u lejon njerëzve që janë në stacion të dinë se cilat vende janë falas. Për të kryer prototipin, programi Arduino UNO përdoret së bashku me Përpunimin për pjesën grafike.

Ky koncept do të bënte të mundur revolucionarizimin e botës së transportit publik, pasi do të optimizonte në maksimum të gjitha vendet e trenit, duke siguruar përdorimin e të gjithë vagonëve, së bashku me mundësinë e mbledhjes së të dhënave dhe kryerjes së studimeve të sakta, më vonë më

Hapi 1: Krijoni një model 3D

Dizajnimi i modelit 3D
Dizajnimi i modelit 3D

Para së gjithash ne kemi bërë një hulumtim gjithëpërfshirës mbi modelet e trenave. Me gjithë informacionin e mbledhur, është zgjedhur treni GTW (prodhuar nga Stadler Rail) i përdorur në FGC (Ferrocarrils de la Generalitat de Catalunya).

Më vonë u krijua me softuerin 3D PTC Creo model për printimin e mëvonshëm 3D.

Hapi 2: Shtypja e modelit 3D dhe përfundimeve

Shtypja e modelit 3D dhe përfundimeve
Shtypja e modelit 3D dhe përfundimeve

Pasi treni është projektuar, ai kalon në printimin 3D. Pasi të jetë shtypur pjesa, duhet të lëmohet për të arritur një sipërfaqe të lëmuar.

Ky projekt mund të bëhet edhe me modelet ekzistuese të trenave.

Pasi të printohet, jepen përfundimet përfundimtare.

Hapi 3: Përbërësit

Komponentët
Komponentët

Për zhvillimin e këtij projekti nevojiten komponentët e mëposhtëm:

- FSR 0.04-4.5LBS (Sensori i presionit).

- Rezistorë 1.1K ohms

Hapi 4: Kodimi (Arduino & Përpunimi)

Kodimi (Arduino & Përpunimi)
Kodimi (Arduino & Përpunimi)
Kodimi (Arduino & Përpunimi)
Kodimi (Arduino & Përpunimi)
Kodimi (Arduino & Përpunimi)
Kodimi (Arduino & Përpunimi)

Tani është koha për të shkruar kodin Arduino që do t'i lejojë sensorët të dërgojnë një shenjë në programin e përpunimit që do të transmetojë informacionin në mënyrë grafike.

Si sensorë kemi 4 sensorë të presionit për arduino që ndryshojnë rezistencën e tij sipas forcës që zbatohet ndaj tyre. Pra, qëllimi është të përfitoni nga sinjali i dërguar nga sensorët (kur udhëtarët ulen) për të ndryshuar ekranet grafikë në Përpunim.

Pastaj, ne krijojmë pjesën grafike në të cilën kemi marrë parasysh modelin grafik të Ferrocarrils de la Generalitat de Catalunya, për të imituar realitetin në mënyrën më të mirë të mundshme.

Në përpunim është shkruar një kod që lidhet drejtpërdrejt me programin arduino, në këtë mënyrë, sa herë që dikush ulet në një vend, ai ndryshon ngjyrën, duke lejuar përdoruesin në platformën e trenit të dijë në kohë reale disponueshmërinë e vendeve të trenit Me

Këtu mund të shihni kodimin

ARDUINO:

tenxhere int = A0; // Lidhni kunjin e mesëm të tenxhere me këtë tenxhere me majë2 = A1; int pot3 = A2; int pot4 = A3; int lectura1; // ndryshore për ruajtjen e vlerave të tenxhere;

int lectura2; int lectura3; int lectura4;

void setup () {// inicio komunikimet serike me një normë 9600 baud Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 lectura1 = analogRead (tenxhere); // lectura vlera analoge nëse (lectura1> 10) {s = "1"; vonesa (100); } else {s = "0"; vonesa (100); } Serial.println (s);

}

PCRPUNIMI:

përpunimi i importit.serial.*; // kjo bibliotekë trajton bisedën serike String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Seriali myPort; // Krijo objekt nga klasa Seriale

void setup () // kjo funksionon vetëm një herë {fullScreen (); sfond (0); // vendosja e ngjyrës së sfondit në të zezë myPort = serial i ri (kjo, "COM5", 9600); // dhënia e parametrave për objektin e klasës serike, vendosni komin me të cilin është lidhur arduino juaj dhe normën e baudit

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);} barazim barazim () {nëse (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); } tjetër 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 (Seriali myPort) // sa herë që ndodh ngjarja serike ajo shkon {val = myPort.readStringUntil ('\ n'); // sigurohuni që të dhënat tona të mos jenë të zbrazëta para se të vazhdoni nëse (val! = null) {// shkurtoni hapësirën e bardhë dhe formatimin e karaktereve (si kthimi i karrocës) val = trim (val); println (val); }}

Hapi 5: Qarku

Qarku
Qarku

Pas gjithë programimit, është koha për të lidhur të gjithë sensorët me bordin Arduino UNO.

Sensorët vendosen në 4 vende (të cilat më vonë do të mbulohen me një leckë) dhe ngjiten në kabllo që shkojnë direkt në motherboard të Arduino UNO. Sinjali i marrë në tabelë dërgohet në një kompjuter të lidhur përmes USB që dërgon informacionin në Processing në kohë reale, duke ndryshuar ngjyrën e sediljes.

Ju mund të shihni një skemë të lidhjeve.

Hapi 6: Testi i Prototipit

Pasi kodi të jetë ngarkuar në bordin arduino dhe programi i përpunimit dhe arduino të ndizet, sensorët testohen. Në ekran do të shihni ndryshimet në sediljet për shkak të ndryshimit të imazheve në ekran që informojnë për vendet e zëna dhe nr.

Hapi 7: Maket i vërtetë

Maket e vërtetë
Maket e vërtetë
Maket e vërtetë
Maket e vërtetë
Maket e vërtetë
Maket e vërtetë
Maket e vërtetë
Maket e vërtetë

Aplikacioni i vërtetë do të përpiqet ta instalojë atë në trena dhe platforma të rrjetit FGC për t'i shërbyer udhëtarëve.

Hapi 8: Gëzoni

GJZOHENI!
GJZOHENI!
GJZOHENI!
GJZOHENI!

Më në fund keni bërë një Tren të Sensorit të Forcës (prototip) që lejon përdoruesin në platformën e trenit të dijë se cila vend është e disponueshme në kohë reale.

MIRCO SE VINI N THE T ARDHmen!

Projekti i bërë nga Marc Godayol & Federico Domenech

Recommended: