Мазмуну:

Поезд отургучунун жеткиликтүүлүгү жөнүндө маалымат системасы - ФГК: 8 кадам
Поезд отургучунун жеткиликтүүлүгү жөнүндө маалымат системасы - ФГК: 8 кадам

Video: Поезд отургучунун жеткиликтүүлүгү жөнүндө маалымат системасы - ФГК: 8 кадам

Video: Поезд отургучунун жеткиликтүүлүгү жөнүндө маалымат системасы - ФГК: 8 кадам
Video: Know Your Rights: Service Animals 2024, Июль
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.1K Ом резисторлору

4 -кадам: Коддоо (Arduino & Processing)

Коддоо (Arduino & Processing)
Коддоо (Arduino & Processing)
Коддоо (Arduino & Processing)
Коддоо (Arduino & Processing)
Коддоо (Arduino & Processing)
Коддоо (Arduino & Processing)

Эми сенсорлорго маалыматты графикалык түрдө өткөрө турган иштетүү программасына белги жөнөтө турган Arduino кодун жазууга убакыт келди.

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

Андан кийин, биз чындыкты эң сонун тууроо үчүн Ferrocarrils de la Generalitat de Catalunya графикалык дизайнын эске алган графикалык бөлүгүн түзөбүз.

Иштетүүдө ал arduino программасына түздөн-түз туташкан код жазылган, ушундай жол менен, кимдир бирөө отурган сайын, түсү өзгөрүп, поезд платформасындагы колдонуучуга поездде орундун бар экендигин билүүгө мүмкүнчүлүк берет..

Бул жерде сиз коддоону көрө аласыз

ARDUINO:

int pot = A0; // Казандын ортоңку пинин бул pinint pot2 = A1 туташтырыңыз; int pot3 = A2; int pot4 = A3; int лектура1; // казандын маанилерин сактоо үчүн өзгөрмө;

int lektura2; int lektura4;

void setup () {// 9600 байдын ылдамдыгы боюнча сериялык байланышты баштоо Serial.begin (9600); }

void loop () {String s = ""; // // Llegir sensor1 дарс1 = analogRead (казан); // лектура аналогдук мааниси if (lektura1> 10) {s = "1"; кечиктирүү (100); } else {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; // Сериялык класстан объект түзүңүз

void setup () // бул бир эле жолу иштейт {fullScreen (); background (0); // фон түсүн кара кылып коюу myPort = new Serial (this, "COM5", 9600); // сериялык класстын объектисине параметрлерди берүү, сиздин arduino туташкан комду жана бердин ылдамдыгын коюңуз

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")) {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) // сериялык окуя болгондо ал {val = myPort.readStringUntil ('\ n') иштейт; // улантуудан мурун биздин маалыматтар бош эместигин текшериңиз, эгер (val! = null) {// боштукту жана символдорду форматтоо (арабаны кайтаруу сыяктуу) val = trim (val); println (val); }}

5 -кадам: Circuit

Circuit
Circuit

Бардык программалоодон кийин, бардык сенсорлорду Arduino UNO тактасы менен туташтырууга убакыт келди.

Сенсорлор 4 орунга (кийинчерээк чүпүрөк менен жабылат) жайгаштырылган жана Arduino UNOнун энелик платасына баруучу кабелдерге ширетилген. Тактага келген сигнал USB аркылуу туташкан компьютерге жөнөтүлөт, ал маалыматты реалдуу убакытта иштетүүгө жөнөтүп, отургучтун түсүн өзгөртөт.

Сиз байланыштардын схемасын көрө аласыз.

6 -кадам: Прототип тест

Код arduino тактасына жүктөлүп, иштетүү жана arduino программасы күйгүзүлгөндөн кийин, сенсорлор текшерилет. Экранда сиз ээлеген орундар жөнүндө маалымат берүүчү дисплейдеги сүрөттөрдүн өзгөрүшүнөн улам орундуктардагы өзгөрүүлөрдү көрөсүз.

7-кадам: Чыныгы макет

Чыныгы макет
Чыныгы макет
Чыныгы макет
Чыныгы макет
Чыныгы макет
Чыныгы макет
Чыныгы макет
Чыныгы макет

Чыныгы колдонмо аны саякатчыларды тейлөө үчүн FGC тармагынын поезддерине жана платформаларына орнотууга аракет кылмак.

8 -кадам: КУБАНЫҢЫЗ

ЫРАХАТ!
ЫРАХАТ!
ЫРАХАТ!
ЫРАХАТ!

Сиз акыры Force Sensor Train (прототип) түздүңүз, ал поезд платформасындагы колдонуучуга кайсы орун реалдуу убакытта бар экенин билүүгө мүмкүнчүлүк берет.

КЕЛЕЧЕККЕ КОШ КЕЛИҢИЗ!

Долбоор Marc Godayol & Federico Domenech тарабынан жасалган

Сунушталууда: