Mündəricat:

Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC: 8 Addım
Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC: 8 Addım

Video: Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC: 8 Addım

Video: Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC: 8 Addım
Video: 2023 Toyota Corolla Cross - Daxili və Eksteryer Detalları (Dayanıqlı Krossover) 2024, Noyabr
Anonim
Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC
Qatar Oturacaq Mövcudluğu Məlumat Sistemi - FGC

Bu layihə, stansiyada olan insanların hansı oturacaqların pulsuz olduğunu bilməsinə imkan verən bir qatarın miqyasına görə həyata keçirilməsinə əsaslanır. Prototipi həyata keçirmək üçün, Arduino UNO proqramı qrafik hissənin İşlənməsi ilə birlikdə istifadə olunur.

Bu konsepsiya, bütün nəqliyyat vasitələrinin istifadəsini təmin edəcək qatarın bütün oturacaqlarını maksimum dərəcədə optimallaşdıracağı üçün ictimai nəqliyyat dünyasında inqilab yaratmağa imkan verəcək, eyni zamanda məlumat toplamaq və dəqiq araşdırmalar aparmaq imkanı verərdi. üzərində

Addım 1: 3D Model Dizaynı

Dizayn 3D Model
Dizayn 3D Model

Hər şeydən əvvəl, qatar modelləri haqqında hərtərəfli araşdırma apardıq. Toplanan bütün məlumatlar ilə FGC -də (Ferrocarrils de la Generalitat de Catalunya) istifadə olunan GTW qatarı (Stadler Rail tərəfindən istehsal olunur) seçildi.

Daha sonra sonrakı 3D çap üçün model PTC Creo 3D proqramı ilə hazırlanmışdır.

Addım 2: 3D Modelin və Finişlərin Çap edilməsi

3D Model və Finişlərin Çap edilməsi
3D Model və Finişlərin Çap edilməsi

Qatar dizayn edildikdən sonra 3D çapa keçir. Parça çap edildikdən sonra hamar bir səth əldə etmək üçün cilalanmalıdır.

Bu layihə mövcud qatar modelləri ilə də edilə bilər.

Çap edildikdən sonra son tamamlama verilir.

Addım 3: Komponentlər

Komponentlər
Komponentlər

Bu layihənin inkişafı üçün aşağıdakı komponentlərə ehtiyac var:

- FSR 0.04-4.5LBS (Təzyiq sensoru).

- 1.1K ohm rezistorlar

Addım 4: Kodlaşdırma (Arduino və İşləmə)

Kodlaşdırma (Arduino və İşləmə)
Kodlaşdırma (Arduino və İşləmə)
Kodlaşdırma (Arduino və İşləmə)
Kodlaşdırma (Arduino və İşləmə)
Kodlaşdırma (Arduino və İşləmə)
Kodlaşdırma (Arduino və İşləmə)

İndi sensorların məlumatları qrafik olaraq ötürəcək İşləmə proqramına bir işarə göndərməsinə imkan verən Arduino kodunu yazmağın vaxtıdır.

Sensorlar olaraq, arduino üçün müqavimətini onlara tətbiq olunan qüvvəyə görə dəyişən 4 təzyiq sensoru var. Beləliklə, məqsəd Qenerasiya prosesində qrafik ekranları dəyişdirmək üçün sensorlar tərəfindən göndərilən siqnaldan (sərnişinlər oturanda) istifadə etməkdir.

Daha sonra, reallığı ən yaxşı şəkildə təqlid etmək üçün Ferrocarrils de la Generalitat de Catalunya'nın qrafik dizaynını nəzərə aldığımız qrafik hissəni yaradırıq.

İşlənərkən arduino proqramına birbaşa bağlı olan bir kod yazılmışdır, beləliklə hər dəfə kimsə oturacaqda rəngini dəyişərək qatar platformasındakı istifadəçiyə oturacaqların mövcudluğunu real vaxtda bilməsinə imkan verir..

Burada kodlaşdırmanı görə bilərsiniz

ARDUINO:

int qazan = A0; // Qazanın orta pinini bu pinint qazana bağlayın2 = A1; int pot3 = A2; int pot4 = A3; int lektura1; // qazan dəyərlərinin saxlanması üçün dəyişən;

int lektura2; int lektura3; int lektura4;

void setup () {// serial rabitəni 9600 baud sürətində Serial.begin (9600) ilə işə salın; }

void loop () {String s = ""; // // Llegir sensor1 mühazirə1 = analogOxu (qazan); // lektura analoji dəyər əgər (lektura1> 10) {s = "1"; gecikmə (100); } başqa {s = "0"; gecikmə (100); } Serial.println (s);

}

Emal:

idxal emalı.serial.*; // bu kitabxana serial söhbətini idarə edir String val = ""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Serial myPort; // Serial sinifindən obyekt yaradın

void setup () // bu yalnız bir dəfə işləyir {fullScreen (); background (0); // fon rəngini qara rəngə təyin etmək myPort = yeni Serial (bu, "COM5", 9600); // seriyalı sinif obyektinə parametrlər verməklə arduino -nun qoşulduğu comu və baud dərəcəsini qoyun.

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. ölçüsü (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")) {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); } başqa 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); } başqa {şəkil (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // serial hadisəsi baş verdikdə {val = myPort.readStringUntil ('\ n'); // davam etməzdən əvvəl məlumatlarımızın boş olmadığından əmin olun (əgər val! = null) {// boşluğu və simvolları formatlaşdırsanız (arabanın qaytarılması kimi) val = trim (val); println (dəyər); }}

Addım 5: Dövrə

Dövrə
Dövrə

Bütün proqramlardan sonra bütün sensorları Arduino UNO lövhəsinə bağlamağın vaxtı gəldi.

Sensorlar 4 oturacaqda yerləşdirilib (daha sonra parça ilə örtüləcək) və birbaşa Arduino UNO anakartına gedən kabellərə qaynaqlanır. Lövhədə alınan siqnal, oturacaqların rəngini dəyişdirərək məlumatı real vaxtda Processing -ə göndərən USB vasitəsilə qoşulmuş bir kompüterə göndərilir.

Bağlantıların sxemini görə bilərsiniz.

Addım 6: Prototip Testi

Kod arduino lövhəsinə yükləndikdən və emal və arduino proqramı işə salındıqdan sonra sensorlar sınaqdan keçirilir. Ekranda, oturacaqlardakı yerlərin dəyişdirildiyini və oturacaqlar haqqında məlumat verən ekrandakı dəyişiklikləri görəcəksiniz.

Addım 7: Real Mock-up

Əsl Mock-up
Əsl Mock-up
Əsl Mock-up
Əsl Mock-up
Əsl Mock-up
Əsl Mock-up
Əsl Mock-up
Əsl Mock-up

Əsl tətbiq, səyahətçilərə xidmət etmək üçün FGC şəbəkəsinin qatarlarına və platformalarına quraşdırmağa çalışacaq.

Adım 8: Zövq alın

Zövq alın!
Zövq alın!
Zövq alın!
Zövq alın!

Nəhayət, qatar platformasındakı istifadəçiyə hansı oturacağın real vaxtda mövcud olduğunu bilməsinə imkan verən Force Sensor Train (prototip) etdiniz.

GƏLƏCƏKƏ HOŞ GELDİNİZ!

Layihə Marc Godayol və Federico Domenech tərəfindən hazırlanmışdır

Tövsiyə: