Toto je starší verze dokumentu!
Čidla a reakční prvky aneb Arduino se opět vrací do hry
Na každém stanovišti hry budou rozmístěny dva druhy zařízení (některé mohou obě funkce kombinovat):
- čidlo - je zařízení, které vnímá lokální stav svého okolí a při podstatných změnách informují řídicí jednotku stanoviště, příklady: PIR, teplota + vlhkost, spínač, mikrofon, intenzita světla, vibrace, apod.
- reakční prvek - je zařízení, jehož úkolem je aktivně změnit své okolí podle požadavku řídící jednotky, příkladem je motorky, „pípák“, ledky, laser, apod.
Implementace
Při pohledu na současné možnosti jednočipových počítačů / mikrokontrolerů se zdá, že původní Arduino založené na 8-bitové rodině AVR čipů dnes již od firmy Microchip ztrácí dech. Ve většině případů tomu tak asi skutečně je, přesto ale existují konkrétní situace, kde se stále více než hodí. Jedním z takových příkladů jsou zařízení pracující na baterii.
Provoz oblíbených čipu ESP8266 nebo jeho nástupců ESP32xxx je velmi naročný na zdroje a nemůže tedy být použit k řízení jednotlivých čidel, které potřebují interagovat s okolím po delší dobu.
Na druhou stranu tyto jednoduché čipy za pár korun nedokáží snadno komunikovat s okolím. K dispozici jsou různá řešení např. na stále oblíbené a volné frekvekvenci 433 MHz, ale tato komunikace, má-li být oboustranná zvyšuje nároky na cenu výsledného zařízení stejně tak jako na jeho velikost. Problémem může být i rušení, resp. vznikající kolize, pokud probíhá větší množství komunikace najednou.
Protokol ESPNow je velmi rozumnou alternativou a řešením komunikace mezi centální jednotkou stanoviště a jednotlivými čidly, resp. reakčními prvky. Je rychlý (sestavení komunikační linky proběhne cca za 200 ms) a tedy i úsporný, protože po proběhlé komunikaci je možné nenasytný čip ESP odpojit od cenné energie baterie. Přesto není vhodný, pokud je potřeba okamžitá reakce na nějakou změnu řízení.
Řešením může být kombinace těchto dvou komunikačních protokolů. ESPNow pro spolehlivou výměnu dat a RF433 jako alarm, že se něco děje a je potřeba se spojit s centrálou.
„Mozek“ čidla, který vyhodnocuje lokální stav v podobě úsporného čipu ATTINY13A nebo ATTINY84A si ani během aktivní práce neřekne o víc než 1 mA a je tedy možné, aby byl aktivní po celou dobu hry na stanovišti a uspával se až po skončení hry. Může tak lokálně sledovat celý průběh hry a čas od času se zeptat na globální stav řídící jednotky stanoviště.
Příjemnou vlastností tohoto řešení je i rozsáhlá komunita bastlířů, kteří z minulosti znají a používají jak čipy z původního Arduina tak i dnes stále oblibenější čipy z rodiny ESPxxx.
- ATTINY13A (úsporné a malé řešení)
- ATTINY84A (více pinu a komfortní pro vývoj)
