Na řešení úlohy máte 2 hodiny čistého času.
Pro řešení můžete použít vývojovou platformu s mikrokontrolérem
dle své preference (Arduino, Raspberry, ESP8266, STM32, 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.
- LED sedmisegmentovku (libovolný typ, jednomístný, libovolná barva).
- Jedno tlačítko (libovolný typ).
- Sériovou EEPROM (vhodné typy jsou 24C01, 24C02 apod.).
- Nezbytné součástky k připojení a propojení (rezistory, nepájivé kontaktní pole, propojovací
dráty).
- Další hardware není omezen (voltmetr apod.), ale pro řešení úlohy není nutný.
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. Hodnotící nebude do zařízení nic nahrávat. Jen ho
zapne a vyhodnotí podle úlohy, na které jste pracovali.
Mrtvá schránka
Mrtvá schránka je výraz pro místo, kam se dají ukládat informace pro
další osoby, většinou zpravodajského
rázu. Takovým místem se mohla stát například dutina ve stromě,
nepoužívaná poštovní schránka, vyčnívající roura, nádržka
splachovadla na veřejných toaletách, úkryty na dětských hřištích
atd. Informace mohla být předána také např. zaznačením do
telefonního seznamu ve veřejném
telefonním automatu. Tento způsob špionáže
byl hojně využíván agenty za druhé
světové války i v období tzv. studené
války.
Navrhněte, sestavte a zprovozněte pomocí svého elektronického
kitu a součástek zapojení „digitální mrtvé schránky“ na
kódy. Bude fungovat takto:
Máte jen jedno tlačítko, jednu sedmisegmentovku, EEPROM a
pasivní součástky. Potřebujete si pomocí jednoho tlačítka uložit
sérii čtyř až deseti číslic.
- Jednotlivé číslice se zadávají po jedné od první do poslední
(nejméně 4, nejvíce 10) a to tak, že počet stisknutí odpovídá dané
číslici. Jedno stisknutí je 1, dvě stisknutí 2, deset stisknutí je
0, jedenáct opět 1 atd. Zobrazujte na sedmisegmentovém displeji
průběžnou hodnotu. Pauza mezi stisknutími nesmí být delší než 1
sekunda.
- Jakmile od posledního stisknutí uplyne 1 sekunda, zobrazte
znak
-
(segment G) po dobu 0.3 s, který znamená, že
číslo bylo uloženo.
- Poté se stejným způsobem zadají další číslice.
- Zadávání číslic se ukončí stisknutím tlačítka po dobu 2 vteřin
po uložení poslední číslice. Ukončení zadávací sekvence zobrazíte
jako tři čárky nad sebou na sedmisegmentovém displeji (segmenty A,
G a D).
- Takto zadanou posloupnost číslic uložte do externí paměti
EEPROM.
- Ošetřete stav, kdy uživatel zadá málo nebo moc číslic. Chybový
stav zobrazte znakem E a nic neukládejte.
- Po zadání všech číslic se celé zadané číslo bude zobrazovat na
displeji tak, že každá číslice bude svítit 0.5 sekundy, a po celém
čísle bude 1 sekundu displej zhasnutý
- Přidržením tlačítka na dobu 5 a více sekund se zapojení
vynuluje. Vynulování dejte uživateli najevo např. vysvícením všech
segmentů i s desetinnou tečkou.
- Při startu zařízení / po resetu zkontrolujte, zda v EEPROM
není už číslo uložené. Pokud je, zobrazujte jej na displeji, jak
je popsáno výše, až do prvního stisknutí tlačítka. Po prvním
stisknutí tlačítka číslo v EEPROM smažte, uživatele o tom
informujte rozsvícením všech segmentů, a nechte uživatele výše
popsaným způsobem zadat nové číslo.
- Zadané číslo posílejte na sériový port, pokud to váš kit
umožňuje.
- Další body můžete dostat, pokud vaše řešení bude šetřit připojenou paměť.
- Zamyslete se nad zobrazováním číslic, aby se dala rozpoznat
třeba série 1222333. Rozšiřte způsob zobrazování tak, aby se
podobná čísla lépe četla.
- Součástí řešení je i schéma zapojení. Může být nakresleno na
papír. Musí obsahovat stručný popis, proč je to zapojeno tak, jak
je a jaký je význam jednotlivých součástek.