FSM (Finite State Machine) pre Arduino

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

Používateľov profilový obrázok
roboulbricht
Stály člen
Stály člen
Príspevky: 156
Dátum registrácie: 07 Jan 2015, 12:01
Bydlisko: Banská Bystrica
Vek: 54
Kontaktovať používateľa:

FSM (Finite State Machine) pre Arduino

Príspevok od používateľa roboulbricht » 11 Feb 2018, 14:05

Pred pár dňami sa tu riešil návrh stavového automatu, ktorý bude reagovať na tlačidlá a v závislosti od času sa aj sám vypne. Vtedy som spomenul knižnicu, ktorá má v sebe všetko toto už hotové.

https://github.com/jonblack/arduino-fsm

Ku knižnici sú aj nejaké demá pribalené, ale už tradične obsahujú chyby. Tak som dve demá opravil a dopísal ešte jedno, ktoré lepšie ukáže možnosti knižnice.

1. blink
Toto je v podstate variácia na blink príklad. Sú zadefinované dva stavy a v loop funkcii sa samé prepínajú. Pôvodné demo vôbec nefungovalo, lebo zabudol svoj FSM inicializovať.

https://github.com/RoboUlbricht/arduino ... ght_switch

2. timed transition
Tu sa autor snažil o nasledovnú vec. Tlačítkom zapnúť LED a tlačítkom ju aj vypnúť. Ale pridal ešte jeden zaujímavý moment. Po nejakom čase nečinnosti sa LED sama vypla. V deme nemal ošetrené zákmity, takže nechápem, ako to vlastne bez ošetrenia zákmitov testoval u seba.

https://github.com/RoboUlbricht/arduino ... _switchoff

3. timed transition with LED bar
Toto som napísal podľa druhého príkladu a pridal ešte 8 LED diód, aby vytvorili stĺpcový graf (viď priložený obrázok), ktorý sa dá tlačidlom nastavovať. A po období nečinnosti sa všetko zase vypne. Pričom čas nečinnosti závisí od počtu svietiacich diód. To už nie je taká sranda robiť ručne a výsledný kód by nemal tých pár riadkov, čo má pomocou knižnice.
Na tomto príklade vidno, že sa pomocou knižnice dajú robiť celkom zložité stavové automaty, iba musíte trochu popremýšľať, kam presne umiestnite callback funkcie, ktoré vykonajú samotné akcie.

https://github.com/RoboUlbricht/arduino ... med_ledbar
Prílohy
arduino_fsm_button_led.jpg
0

  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok