Мазмұны:

Пойыз орындықтарының болуы туралы ақпараттық жүйе - FGC: 8 қадам
Пойыз орындықтарының болуы туралы ақпараттық жүйе - FGC: 8 қадам
Anonim
Пойыз орындықтарының болуы туралы ақпараттық жүйе - FGC
Пойыз орындықтарының болуы туралы ақпараттық жүйе - FGC

Бұл жоба вокзалда болған адамдарға орындықтардың қайсысы бос екенін білуге мүмкіндік беретін пойыздың масштабты түрде жүзеге асуына негізделген. Прототипті орындау үшін Arduino UNO бағдарламалық жасақтамасы графикалық бөліктің өңделуімен бірге қолданылады.

Бұл тұжырымдама қоғамдық көлік әлемінде төңкеріс жасауға мүмкіндік береді, өйткені ол пойыздың барлық орындықтарын максималды түрде оңтайландырады, барлық вагондардың пайдаланылуын қамтамасыз етеді, сонымен қатар мәліметтерді жинау мен дәлірек зерттеулер жүргізуге мүмкіндік береді. қосулы.

1 -қадам: 3D моделін жасаңыз

3D моделі дизайны
3D моделі дизайны

Ең алдымен біз пойыз модельдері бойынша кешенді зерттеулер жүргіздік. Жиналған барлық ақпаратпен FGC (Ferrocarrils de la Generalitat de Catalunya) пайдаланылатын GTW пойызы (Stadler Rail шығарады) таңдалды.

Ол кейінірек 3D басып шығаруға арналған PTC Creo 3D бағдарламалық жасақтамасымен жасалды.

2 -қадам: 3D моделі мен аяқталуын басып шығару

3D моделі мен аяқталуын басып шығару
3D моделі мен аяқталуын басып шығару

Пойыз жобаланғаннан кейін ол 3D басып шығаруға өтеді. Кескінді басып шығарғаннан кейін, тегіс бетке қол жеткізу үшін оны жылтырату керек.

Бұл жобаны пойыздың қолданыстағы модельдерімен де жасауға болады.

Басып шығарғаннан кейін соңғы әрлеу беріледі.

3 -қадам: компоненттер

Компоненттер
Компоненттер

Бұл жобаны әзірлеу үшін келесі компоненттер қажет:

- FSR 0.04-4.5LBS (қысым сенсоры).

- 1,1 к ом резисторлары

4 -қадам: кодтау (Arduino & Processing)

Кодтау (Arduino және өңдеу)
Кодтау (Arduino және өңдеу)
Кодтау (Arduino және өңдеу)
Кодтау (Arduino және өңдеу)
Кодтау (Arduino және өңдеу)
Кодтау (Arduino және өңдеу)

Енді сенсорларға ақпаратты өңдеуге бағдарламалық жасақтамаға белгі жіберуге мүмкіндік беретін Arduino кодын жазудың уақыты келді.

Сенсорлар ретінде бізде ардуиноға арналған 4 қысым датчигі бар, олар қарсылықты оларға қолданылатын күшке қарай өзгертеді. Демек, мақсат - сенсорлар жіберетін сигналды пайдалану (жолаушылар отырғанда) өңдеудегі графикалық экранды өзгерту.

Содан кейін біз шындыққа барынша еліктеу үшін Ferrocarrils de la Generalitat de Catalunya графикалық дизайнын ескерген графикалық бөлікті жасаймыз.

Өңдеу кезінде arduino бағдарламалық жасақтамасына тікелей қосылған код жазылды, осылайша біреу орындыққа отырған сайын түсі өзгереді, бұл пойыз платформасындағы пайдаланушыға пойыздың бар-жоғын нақты уақытта білуге мүмкіндік береді..

Мұнда сіз кодтауды көре аласыз

ARDUINO:

int pot = A0; // Кәстрөлдің ортаңғы түйреуішін осы түйреуіш қазанға қосыңыз2 = A1; int pot3 = A2; int pot4 = A3; int лектура1; // кастрюль мәндерін сақтауға арналған айнымалы;

int lektura2; int lektura3; int lektura4;

void setup () {// сериялық байланысты 9600 Baud жылдамдығымен Serial.begin (9600) инициализациялау; }

void loop () {String s = «»; // // Llegir сенсор1 лекция1 = analogRead (горшок); // лектура аналогтық мәні if (lektura1> 10) {s = «1»; кешіктіру (100); } басқа {s = «0»; кешіктіру (100); } Serial.println (s);

}

ӨҢДЕУ:

импортты өңдеу.сериал.*; // бұл кітапхана String val = «» сериялық әңгімесін өңдейді. PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Сериялық myPort; // Serial класынан объект жасаңыз

void setup () // бұл бір рет орындалады {fullScreen (); background (0); // фонның түсін қара етіп қою myPort = new Serial (this, «COM5», 9600); // сериялық сынып объектісіне параметрлерді беру, сіздің arduino қосылған com және жіберу жылдамдығын қойыңыз

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»)) {сурет (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»)) {сурет (s1010, 0, 0); } else if (val.equals («1011»)) {сурет (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); } басқа {сурет (s0000, 0, 0); }}}

void serialEvent (Serial myPort) // сериялық оқиға болған сайын ол {val = myPort.readStringUntil ('\ n') жұмыс істейді; // жалғастырмас бұрын біздің деректер бос емес екеніне көз жеткізіңіз, егер (val! = null) {// бос кеңістікті қиып алса және таңбаларды пішімдесе (мысалы, арбаны қайтару) val = trim (val); println (val); }}

5 -қадам: Схема

Схема
Схема

Барлық бағдарламалардан кейін барлық сенсорларды Arduino UNO тақтасына қосу уақыты келді.

Датчиктер 4 орынға орналастырылған (олар кейін матамен жабылады) және Arduino UNO аналық платасына тікелей түсетін кабельдерге дәнекерленген. Тақтада қабылданған сигнал USB арқылы қосылған компьютерге жіберіледі, ол ақпаратты өңдеуге нақты уақытта жібереді, орындық түсін өзгертеді.

Қосылымдардың схемасын көруге болады.

6 -қадам: прототипті тестілеу

Код arduino тақтасына жүктелгеннен кейін және өңдеу мен arduino бағдарламасы қосылғаннан кейін сенсорлар тексеріледі. Экранда сіз орындықтардағы өзгерістерді көресіз, себебі дисплейде орындардың саны туралы ақпарат бар және олар жоқ.

7-қадам: Нағыз макет

Нағыз макет
Нағыз макет
Нағыз макет
Нағыз макет
Нағыз макет
Нағыз макет
Нағыз макет
Нағыз макет

Нағыз қосымша оны саяхатшыларға қызмет көрсету үшін FGC желісінің пойыздары мен платформаларына орнатуға тырысады.

8 -қадам: ҚУАНЫҢЫЗ

ҚУАНЫҢЫЗ!
ҚУАНЫҢЫЗ!
ҚУАНЫҢЫЗ!
ҚУАНЫҢЫЗ!

Сіз ақырында пойыз платформасындағы пайдаланушыға нақты уақытта қандай орындық бар екенін білуге мүмкіндік беретін күш сенсорлық пойызын (прототипін) жасадыңыз.

БОЛАШАҚҚА ҚОШ КЕЛДІҢІЗ!

Жобаны Марк Годаёль мен Федерико Доменек жасаған

Ұсынылған: