Soutěž v programování – 31. ročník
Krajské kolo 2016/2017
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:
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 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.
-
(segment G) po dobu 0.3 s, který znamená, že
číslo bylo uloženo.
Hardware
Body | Za co |
---|---|
0 | účastník nedodal nic, dodal zařízení nefunkční |
2 | zařízení reaguje na stisknutí tlačítka, ukazuje správně číslice, ale nic dalšího (neukládá, po prodlevě nezobrazí znak -, …) |
2 | vložte sekvenci sekvence 1111, po restartu se přehraje |
2 | vložte sekvenci 0123456789, po restartu se přehraje |
2 | 12 stisků zobrazí číslici 2 |
2 | zadání sekvence 123 zobrazí znak E (chyba) |
2 | po zadání chybné sekvence (méně než 4 číslice nebo více než 10 číslic) se nic neuloží |
2 | zařízení vypisuje zadávaná čísla v terminálu na PC (připojení přes sériový port / USB). Účastník musí dodat rychlost sériové komunikace v rámci řešení, přípustné je uvedené do kódu v podobě komentáře, poznámka v dokumentaci apod. |
3 | uložte libovolnou sekvenci čísel, zařízení odpojte od napájení, odpojte napájení EEPROM, zařízení zapněte. Displej by neměl nic ukázat. Jde o test, zda se opravdu ukládá do externí EEPROM. |
2 | Využití přerušení pro ovládání tlačítka |
3 | Buzení osmi segmentů displeje přes jeden fyzický PORT na zařízení (lze-li aplikovat) |
5 | Rovnoměrné využívání EEPROM (adresa pro ukládání dat se mění). To půjde zjistit jen v kódu. |
5 | Ukládání čísel v komprimovaném formátu (BCD, binární). To půjde zjistit jen v kódu. |
2 | Lze snadno poznat, že se zobrazuje další číslice. Lépe se tak čtou čísla obsahující více stejných číslic za sebou. Například bliknutím tečky, nebo jiným vhodným způsobem. |
1 | Shoda mezi zapojením a schématem |
1 | Použití rezistorů pro displej |
1 | Použití rezistorů na I2C sběrnici u EEPROM |
2 | Kompletní dokumentace předána |
2 | Schéma je čitelné a dává smysl |
2 | Přesné dodržení specifikace - dodržuje pauzy, lze zadat čísla dlouhá podle specifikace |