Мазмұны:

Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)
Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)

Бейне: Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)

Бейне: Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)
Бейне: Arduino көмегімен шунт резисторымен тұрақты токтың 500А шамасын өлшеңіз 2024, Қараша
Anonim
Arduino -дағы мемлекеттік машина - жаяу жүргіншілерге арналған бағдаршам
Arduino -дағы мемлекеттік машина - жаяу жүргіншілерге арналған бағдаршам

Сәлеметсіз бе! Мен сізге Arduino үшін C ++ тіліндегі жаяу жүргінші бағдаршамын YAKINDU Statechart құралдарының көмегімен соңғы күй машинасымен қалай бағдарламалау керектігін көрсетемін. Бұл мемлекеттік машиналардың күшін көрсетеді және оны басқа жобалар үшін сызба ретінде пайдалануға болады.

Жабдықтар

Сізге тек Arduino, бірнеше түймелер, жарық диодтары, қосқыш пен резистор қажет.

Аппараттық құрал

  • 2x батырмасы
  • 2 рет бағдаршам немесе 220 Ом резисторы бар жарықдиодты пайдалануға болады
  • 2х 10 кОм резисторлар
  • Нан тақтасы
  • Секіру
  • Arduino Uno/Mega (немесе кемінде 8 GPIO бар кез келген басқа)

Бағдарламалық қамтамасыз ету

  • YAKINDU Statechart құралдары
  • Arduino үшін Eclipse C ++ IDE

1 -қадам: Оның қалай жұмыс істейтінін анықтаңыз: жаяу жүргіншілерге арналған бағдаршам

Алдымен біз жаяу жүргіншілер бағдаршамының қалай жұмыс істейтінін көрсетуіміз керек. Мен нүктелерді қорытындылауға тырыстым:

  • Екі бағдаршам қолданылады - біреуі көліктерге, екіншісі жаяу жүргіншілерге арналған
  • Бағдаршамды батырманың көмегімен қосуға болады
  • Жаяу жүргінші батырманы басу арқылы көшеден өтуді сұрай алады
  • Өшірілген бағдаршам екі сары жарық диодының жыпылықтауы арқылы көрсетіледі
  • Қосылғаннан кейін бағдаршам қауіпсіз режимде 10 секунд күтеді
  • Қауіпсіз режимнен кейін, жаяу жүргінші сұранысты бастамайынша, көліктерде әрқашан жасыл кезең болады
  • Жаяу жүргіншілердің өтуін сұрау сары жарықдиодты ауыстыру арқылы көрсетіледі

Сонымен қатар, бағдаршамның қалай жұмыс істейтініне байланысты уақытша оқиғалар бар.

2 -қадам: Схеманы құрыңыз

Циклды құрыңыз
Циклды құрыңыз

Схеманы орнатуды бастайық. Менің мысалда, алдын ала қарау суретінен көріп тұрғаныңыздай, мен Arduino Mega 2560 қолдандым, бірақ кемінде сегіз GPIO бар басқа Arduino жақсы болуы керек. Сонымен қатар, мен Amazon -да 5В бағдаршам сатып алдым. Бағдаршам Arduino іздеңіз. Әйтпесе, сіз алты түрлі жарықдиодты қолдана аласыз. Сонымен қатар, сізге екі түйме түймесі мен екі 10к Ом резисторы қажет.

Үш сол жарықдиодты автокөлік қозғалысы үшін және жаяу жүргіншілер үшін үш оң жақ жарық диоды қолданылады, онда сары түс сұранысты көрсете алады.

3 -қадам: Мемлекеттік машинаны құру

Мемлекеттік машинаны құру
Мемлекеттік машинаны құру

Көріп отырғаныңыздай, құрамдас мүшелері бар екі негізгі күй бар - күй қосулы және өшірілген. ҚОСУ/ӨШІРУ түймесіне қосылған onOff оқиғасын қолдану арқылы екі күй арасында ауысуға болады. Бастапқы күйде, өшіру күйінде, екі сары жарық диоды секунд сайын жыпылықтай бастайды. Бағдаршам қосылғаннан кейін ол қауіпсіз аймақта басталады. 10 секундтан кейін бағдаршамның әдеттегі әрекеті реттеледі. Қызыл және сары жарық диоды StreetPrepare күйінде қосылады және бағдаршам тағы 2 секундтан кейін жасыл түске айналады. Осы сәттен бастап мемлекеттік машина жаяу жүргінші сұрауын күтеді, ол екінші түймені қосады. Іс -шара жіберілгеннен кейін PedWating күйінде әр секунд сайын сары жарықдиодты ауыстыру арқылы сұраныс көрсетіледі. 7 секундтан кейін жаяу жүргіншілерге Жаяу Жасыл күйінде жүру туралы сигнал келгенше бағдаршам алдымен сарыға, сосын қызылға ауысады. Осыдан кейін, PedestrianRed қосылады және цикл қайталанады. Мұны тек бағдаршамды қайта сөндіру арқылы ғана тоқтатуға болады.

4 -қадам: Мысалды іске қосу

5 -қадам: C ++ коды жасалды

Жасалған C ++ коды-бұл күй машинасының логикасын басқаруға арналған классикалық коммутатор. Бұл қалай көрінетіні туралы код үзіндісі:

жарамсыз TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_react (үзіліс; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); үзіліс; } әдепкі: үзіліс; } clearInEvents (); }

6 -қадам: Мысалды алыңыз

Барлық мысал құрастыруға және іске қосуға дайын. Ол YAKINDU Statechart құралдарымен бірге келеді, ол коммерциялық емес мақсатта ақысыз. Жүктелгеннен кейін сіз мысалды тікелей құралға импорттай аласыз:

Файл -> Жаңа -> Мысал -> YAKINDU Statechart мысалдары -> Келесі -> Бағдаршам (C ++) Arduino үшін

> МҰНДА сіз YAKINDU Statechart құралдарын << жүктей аласыз

Сіз 30 күндік сынақтан бастай аласыз. Осыдан кейін сіз лицензияны алуыңыз керек, ол коммерциялық емес мақсатта пайдалануға ақысыз!

Ұсынылған: