Sisukord:

State Arduino - jalakäijate valgusfoor: 6 sammu (piltidega)
State Arduino - jalakäijate valgusfoor: 6 sammu (piltidega)

Video: State Arduino - jalakäijate valgusfoor: 6 sammu (piltidega)

Video: State Arduino - jalakäijate valgusfoor: 6 sammu (piltidega)
Video: CPSC 1491: Assignment 2 - Part 2 - Traffic Light Intersection with Pedestrian Crosswalk 2024, Juuli
Anonim
Riigimasin Arduino peal - jalakäijate valgusfoor
Riigimasin Arduino peal - jalakäijate valgusfoor

Hei! Ma näitan teile, kuidas programmeerida Arduino jaoks jalakäijafoori C ++ programmis piiratud olekuga masina abil, kasutades YAKINDU olekukaardi tööriistu. See näitab olekumasinate võimsust ja seda saab kasutada edasiste projektide plaanina.

Tarvikud

Teil on vaja ainult Arduinot, mõningaid nuppe, LED -e, hüppajaid ja takistid.

Riistvara

  • 2x nupp
  • 2x fooritulesid või võite kasutada 220 oomi takistitega LED -e
  • 2x 10k oomi takistid
  • Leivalaud
  • Jumper
  • Arduino Uno/Mega (või mõni muu, millel on vähemalt 8 GPIO -d)

Tarkvara

  • YAKINDU olekukaardi tööriistad
  • Eclipse C ++ IDE Arduino jaoks

1. toiming: määratlege, kuidas see toimib: jalakäijate valgusfoor

Esialgu peame täpsustama, kuidas jalakäijate foor peaks töötama. Proovisin punktid kokku võtta:

  • Kasutatakse kahte foori - üks autodele, teine jalakäijatele
  • Foori saab sisse lülitada nupu abil
  • Jalakäija saab taotleda tänava ületamist, vajutades nuppu
  • Foori väljalülitamisest annab märku mõlema kollase LED -i vilkumine
  • Pärast sisselülitamist ootab valgusfoor turvarežiimis 10 sekundit
  • Pärast turvarežiimi on autodel alati roheline faas, kuni jalakäija taotluse käivitab
  • Jalakäijate ülekäigutaotlust näitab kollane LED

Lisaks on sõltuvalt valgusfoori toimimisviisist teatud ajalised sündmused.

Samm: ehitage vooluring

Ehita vooluring
Ehita vooluring

Alustame vooluringi seadistamist. Minu näites, nagu eelvaatepildilt näha, olen kasutanud Arduino Mega 2560, kuid iga teine vähemalt kaheksa GPIO -ga Arduino peaks olema korras. Lisaks olen Amazonist ostnud mõned 5V valgusfoorid. Otsige lihtsalt valgusfoori Arduino. Vastasel juhul võite kasutada lihtsalt kuut erinevat LED -i. Lisaks vajate kahte surunuppu ja kahte 10 kΩ takistit.

Kolme vasakpoolset LED -i kasutatakse autoliikluseks ja kolme paremat LED -i jalakäijate jaoks, kus kollane võib soovi näidata.

3. samm: olekumasina loomine

Riigimasina loomine
Riigimasina loomine

Niisiis, nagu näete, on liitliikmetega kaks peamist olekut - olek sisse ja välja. Mõlema oleku vahel saate vahetada, kasutades sündmust onOff, mis on ühendatud ON/OFF nupuga. Algseisundis, väljalülitatud olekus, hakkavad mõlemad kollased LED -id vilkuma iga sekund. Kui valgusfoor on sisse lülitatud, käivitub see kõige turvalisemas kohas. 10 sekundi pärast käsitletakse valgusfooride tüüpilist käitumist. Punane ja kollane valgusdiood süttib olekus StreetPrepare ning valgusfoor muutub roheliseks veel 2 sekundi pärast. Nüüdsest ootab olekumasin sündmust footrianRequest, mis on ühendatud teise nupuga. Pärast sündmuse saatmist antakse taotlusest märku, lülitades PedWating olekus iga sekund kollast LED -i. 7 sekundi pärast lülitatakse valgusfoor esmalt kollaseks ja seejärel punaseks, kuni jalakäijad saavad märguande jalakäijate roheliseks liikumiseks. Pärast seda aktiveeritakse PedestrianRed ja tsükkel kordub. Seda saab katkestada ainult valgusfoori uuesti välja lülitamisega.

Samm 4: Näite käitamine

Samm: genereerige C ++ kood

Loodud C ++ kood on klassikaline lülitusümbris olekumasina loogika haldamiseks. See on lihtsalt koodilõik selle väljanägemise kohta:

tühine TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_re_react_Gree murda; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (tõene); murda; } vaikimisi: break; } clearInEvents (); }

6. samm: hankige näide

Kogu näide on kompileerimiseks ja käivitamiseks valmis. Kaasas YAKINDU Statechart Tools, mis on mitteäriliseks kasutamiseks tasuta. Pärast allalaadimist saate näite otse tööriista importida:

Fail -> Uus -> Näide -> YAKINDU olekukaardi näited -> Järgmine -> Arduino foor (C ++)

> SIIT saate alla laadida YAKINDU olekukaardi tööriistu <<

Võite alustada 30 -päevase prooviperioodiga. Hiljem peate hankima litsentsi, mis on mitteäriliseks kasutamiseks tasuta!

Soovitan: