Na řešení úloh máte 4 hodiny čistého času.
Před zahájením soutěže vám pořadatel oznámí, kam máte ukládat
řešení úloh. Zároveň připravte pro hodnotícího návod, jak uvést vaše
zařízení do provozu a napište, které úlohy jste řešili, a jak mezi
nimi přepínat. Hodnotící nebude do zařízení nic nahrávat. Jen ho zapne
a vyhodnotí úlohy, na kterých jste pracovali.
Barevné hrátky
LED diody, někdo říká svítivé diody, pokrývají dnes širokou škálu
barev. K dispozici je červená, zelená, žlutá, modrá, ale také bílá a
IR. A samozřejmě také vykazují nejrůznější elektrické a mechanické
parametry. Kdysi začínaly velice skromně. Za spoustu peněz jste si
mohli koupit jakoukoliv ledku, tedy pokud jste si přáli malou,
červenou. To už dnes není pravda a tak si levně můžete pohrát s led
diodami různých barev i velikostí. Proto jsou tolik oblíbené v
nejrůznějších hrátkách. Většinou se jedná o nejrůznější blikátka. Ale
napadlo vás někdy spočítat, kolik existuje možností jak toto blikání
řídit? V následujících úloh si vyzkoušíme čtyři možnosti.
Pro řešení můžete použít vývojovou platformu s mikrokontrolérem dle
své preference (Arduino, Raspberry, ESP8266, FRDM, STM32, micro:bit,
PicAxe, BASIC Stamp, AVR, PIC …). Pro řešení úlohy budete dále
potřebovat:
- PC s vývojovým prostředím pro tuto platformu.
- Použít můžete i online vývojové prostředí pro tuto platformu.
- LED diody 2x červená, 2x zelená, 2x žlutá.
- Dvě tlačítka (libovolný typ) – použít můžete i tlačítka, která jsou součástí vašeho
kitu.
- Dva spínače (libovolný typ, např. DIP).
- Tříosý akcelerometr s I2C komunikací (např. MPU-6050) – použít můžete i akcelerometr,
který je součástí vašeho kitu, nebo si zhotovíte vlastní modul.
- Potenciometr 10k.
- Nezbytné součástky k připojení a propojení (rezistory, nepájivé kontaktní pole, propojovací
dráty).
- Místo použití nepájivého pole si můžete předem připravit modul, který bude všechny
požadované součástky obsahovat.
- Další hardware není omezen (voltmetr apod.), ale pro řešení úlohy není nutný.
Máte dva spínače, které vám poskytují čtyři varianty jejich
vzájemného sepnutí. Tím získáváte čtyři možnosti, jak se váš program
bude chovat a jakou z následujících úloh tak řeší. Váš program
musí reagovat na přepnutí i během svého běhu.
Můžete řešit jakékoliv z následujících úloh v libovolném
pořadí. Pokud budete řešit více než jednu, musíte zároveň
implementovat funkci jejich přepínání.
Přechod pro chodce řízený semaforem.
Maximální počet bodů 16,5
Vytvořte program, který bude řídit semafor pro auta a chodce podle následujících pravidel:
- Semafor pro auta jsou tři ledky – červená, žlutá, zelená.
- Semafor pro chodce jsou dvě ledky – červená, zelená.
- Klidový stav (po přechodu do programu) je zelená pro auta a červená pro chodce. Ostatní
LED nesvítí.
- Stiskem tlačítka žádá chodec o uvolnění přechodu.
- Přibližně 10 sekund po stisku tlačítka se na semaforu pro auta rozsvítí žlutá a současně
zhasne zelená.
- Za další cca 1 sekundu se pro auta rozsvítí červená a současně zhasne žlutá.
- Za další cca 1,5 sekundy se pro chodce rozsvítí zelená a současně zhasne červená.
- Za další cca 2,5 sekundy se pro chodce rozsvítí červená a současně zhasne zelená.
- Za další cca 4 sekundy se pro auta kromě červené rozsvítí i žlutá.
- Za další cca 0,5 sekundy se pro auta rozsvítí zelená a současně zhasnou žlutá a červená.
- Do dalšího stisku tlačítka zůstává semafor v klidovém stavu.
- Při opakovaném stisku tlačítka musí celá sekvence proběhnout od začátku (tedy 10 sekund
zelené pro auta).
Blikání řízené napětím
Maximální počet bodů je 18,5
Vytvořte program, který dovolí ovládání blikajících LED pomocí potenciometru podle
následujících pravidel:
- Řídící napětí je získáno z potenciometru.
- Při napětí nižším než přibližně 0,2 maximálního nechť bliká jedna červená ledka s periodou
přibližně 2 sekundy.
- Při napětí vyšším než přibližně 0,2 maximálního nechť bliká i druhá červená ledka
s periodou přibližně 1,5 sekundy.
- Při napětí vyšším než přibližně 0,4 maximálního nechť bliká i jedna zelená ledka s periodou
přibližně 2 sekundy.
- Při napětí vyšším než přibližně 0,6 maximálního nechť bliká i druhá zelená ledka s periodou
přibližně 1,5 sekundy.
- Při napětí vyšším než přibližně 0,8 maximálního nechť bliká i žlutá ledka s periodou
přibližně 2 sekundy.
- Blikání nastavte tak, že doba svítí = doba nesvítí.
Blikání řízené tlačítky
Maximální počet bodů 8,5
Vytvořte program, který dovolí ovládat rychlost blikání ledek pomocí dvou tlačítek
podle následujících pravidel:
- Cílem programu je zajistit synchronní blikání tří ledek (1x červená, 1x zelená, 1x
žlutá).
- Nejkratší perioda blikání (po přechodu do programu) je přibližně 1 sekunda, nejdelší
přibližně 10 sekund.
- V těchto hranicích měňte s použitím dvou tlačítek (plus, mínus) nastavení periody
v deseti krocích.
- Blikání nastavte tak, že doba svítí = doba nesvítí.
Ledky reagující na polohu ruky
Maximální počet bodů 24,5
Vytvořte program, který dovolí ovládání blikajících LED pomocí akcelerometru podle
následujících pravidel:
- Cílem programu je s pomocí akcelerometru zjistit jeho polohu vůči vertikální ose.
Akcelerometr přitom držíte v ruce.
- Pokud je akcelerometr ve sklonu max 30° od horizontální polohy, bliká žlutá ledka
s frekvencí přibližně 0,5 Hz.
- Pokud je akcelerometr ve sklonu 30° až 45°, bliká zelená ledka s frekvencí přibližně
1 Hz.
- Pokud je akcelerometr ve sklonu 45° až 60°, bliká zelená ledka s frekvencí přibližně
2 Hz.
- Pokud je akcelerometr ve sklonu 60° až 90°, bliká červená i zelená ledka s frekvencí
přibližně 2 Hz.
- Pokud sklon akcelerometru překročí 90°, blikají obě ledky (červená i zelená) s frekvencí
přibližně 3 Hz.
- Blikání nastavte tak, že doba svítí = doba nesvítí.
- Nastavení hranic je možné řešit experimentálně.