Kazalo:

Državni stroj na Arduinu - semafor za pešce: 6 korakov (s slikami)
Državni stroj na Arduinu - semafor za pešce: 6 korakov (s slikami)

Video: Državni stroj na Arduinu - semafor za pešce: 6 korakov (s slikami)

Video: Državni stroj na Arduinu - semafor za pešce: 6 korakov (s slikami)
Video: ПОКУПКА машины SKODA KODIAQ 💲 Обзор нашей новой машины ✅ РАСПРОЩАЛИСЬ с Hyundai Elantra ВЛОГ 840 2024, Julij
Anonim
Državni stroj na Arduinu - semafor za pešce
Državni stroj na Arduinu - semafor za pešce

Pozdravljeni, pokazal vam bom, kako programirati semafor za pešce za Arduino v C ++ s končnim strojem stanja z orodji YAKINDU Statechart Tools. To bo pokazalo moč državnih strojev in se lahko uporabi kot načrt za nadaljnje projekte.

Zaloge

Potrebujete samo Arduino, nekaj gumbov, LED, skakalec in upore.

Strojna oprema

  • 2x gumb
  • 2x semaforja ali pa uporabite LED z upori 220 Ohm
  • 2x 10k ohmski upori
  • Ogledna plošča
  • Skakalec
  • Arduino Uno/Mega (ali kateri koli drug, ki ima vsaj 8 GPIO -jev)

Programska oprema

  • Orodja za grafikone stanja YAKINDU
  • Eclipse C ++ IDE za Arduino

1. korak: Določite, kako deluje: Semafor za pešce

Najprej moramo določiti, kako naj deluje semafor za pešce. Poskušal sem povzeti glavne točke:

  • Uporabljata se dva semaforja - eden za avtomobile, drugi za pešce
  • Semafor lahko vklopite z gumbom
  • Pešec lahko zahteva prehod ulice s pritiskom na gumb
  • Izklopljen semafor je označen z utripanjem obeh rumenih LED
  • Po vklopu semafor v varnem načinu počaka 10 sekund
  • Po varnem načinu imajo avtomobili vedno zeleno fazo, dokler pešec ne poda zahteve
  • Zahteva za prehod pešca je označena s preklopom rumene LED

Poleg tega obstaja nekaj časovnih dogodkov, odvisno od načina delovanja semaforja.

2. korak: Zgradite vezje

Zgradite vezje
Zgradite vezje

Začnimo z nastavitvijo vezja. V mojem primeru, kot lahko vidite na predogledni sliki, sem uporabil Arduino Mega 2560, vendar bi moral biti vsak drugi Arduino z vsaj osmimi GPIO -ji v redu. Poleg tega sem kupil nekaj 5V semaforjev pri Amazonu. Samo poiščite semafor Arduino. V nasprotnem primeru lahko preprosto uporabite šest različnih LED. Poleg tega potrebujete dva potisna gumba in dva upora 10k Ohm.

Tri leve LED diode se uporabljajo za avtomobilski promet in tri desne LED za pešce, kjer rumena označuje zahtevo.

3. korak: Ustvarjanje državnega stroja

Ustvarjanje državnega stroja
Ustvarjanje državnega stroja

Kot vidite, obstajata dve glavni stanji s sestavljenimi člani - stanje vklopljeno in stanje izklopljeno. Med obema stanjema lahko preklapljate z dogodkom onOff, ki je povezan z gumbom za vklop/izklop. V začetnem stanju, izklopljenem, obe rumeni LED utripata vsako sekundo. Ko je semafor prižgan, se prične v Safestatu. Po 10 sekundah bo obravnavano tipično vedenje semaforjev. Rdeča in rumena LED bosta prižgani v stanju StreetPrepare, semafor pa po 2 sekundah zasveti zeleno. Od zdaj naprej državni stroj čaka na dogodek pedestrianRequest, ki je povezan z drugim gumbom. Po pošiljanju dogodka bo zahteva prikazana s preklopom rumene LED vsako sekundo v stanju PedWating. 7 sekund kasneje bo semafor najprej preklopil na rumeno in nato na rdečo, dokler pešci ne dobijo signala, da gredo v stanje pešca. Po tem se aktivira Rdeči pešec in cikel se ponovi. To lahko prekinete le tako, da ponovno ugasnete semafor.

4. korak: Zaženite primer

5. korak: Ustvarjena koda C ++

Ustvarjena koda C ++ je klasična stikalna omarica za obravnavo logike strojnega stanja. To je le delček kode, kako izgleda:

void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {stikalo (stateConfVector [stateConfVectorPosition]) {primer main_region_on_r1_StreetGreen: {main_regionSon_trin zlom; } primer main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); zlom; } privzeto: break; } clearInEvents (); }

6. korak: Pridobite primer

Celoten primer je pripravljen za sestavljanje in izvajanje. Na voljo je z orodji YAKINDU Statechart Tools, ki je brezplačna za nekomercialno uporabo. Po prenosu lahko primer uvozite neposredno v orodje:

Datoteka -> Novo -> Primer -> Primeri grafikonov stanja YAKINDU -> Naprej -> Semafor (C ++) za Arduino

> TUKAJ si lahko naložite orodja YAKINDU Statechart Tools <<

Začnete lahko s 30 -dnevno preskusno različico. Nato morate pridobiti licenco, ki je brezplačna za nekomercialno uporabo!

Priporočena: