10 - State Machines
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška o programovaní mikrokontrolérov Arduino (ATmega328P) uvádza koncept stavových strojov na prípadovej štúdii nočného bezpečnostného svetla. Svetlo sa rozsvieti len vtedy, keď fotorezistor zaznamená nízku intenzitu svetla a zároveň pohybový senzor, nahraditeľný tlačidlom, deteguje pohyb. Lektor kritizuje bežný štýl arduinovských skečov, v ktorých je takmer všetok kód v jednej funkcii loop s množstvom if-else, a stavové stroje predstavuje ako cestu k lepšej dekompozícii. Vysvetľuje definíciu konečného stavového automatu: konečná množina stavov, z ktorých je aktívny vždy len jeden, a prechody vyvolané vstupmi alebo udalosťami. Ukazuje ich vizualizáciu stavovým diagramom z UML na príklade turniketu so stavmi zamknutý a odomknutý. Neskôr sa má preberať aj analógový a digitálny signál a A/D prevodník.
- - Nočné svetlo svieti pri nízkej intenzite svetla a zároveň pri zistení pohybu.
- - Pohybový senzor dáva digitálny signál (0 alebo 1), preto ho možno nahradiť tlačidlom.
- - Väčšina arduinovských skečov strpčuje kód v jednej funkcii loop s množstvom if-else namiesto dekompozície.
- - Stavový stroj má konečný počet stavov a v jednom čase je aktívny práve jeden.
- - Prechody medzi stavmi vyvolávajú vstupy alebo udalosti na základe aktuálneho stavu.
- - Stavový diagram (súčasť UML) zobrazuje stavy ako krúžky a prechody ako orientované šípky s podmienkou.
- - Príklad turniketu: zo stavu zamknutý prejde po vhodení mince do stavu odomknutý, začiatok určuje inicializačný pseudostav.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky