====== Distribuované řízení osvětlení ====== Zadání semestrální úlohy v minulých letech **Úkol**: Naprogramujte řídicí jednotku Microzed, viz následující obrázek, jako ovládací prvek dvou reflektorů. {{.:mzapo.png?direct&400 |}} Dvojice RGB LED diod, pojmenovaných jako LED1 a LED2, se nachází na obrázku v dolní čtvrtině a zastupuje oba reflektory. Zadávání vstupních parametrů provádějte pomocí tří otočných ovladačů označených na plošném spoji ENCODER1, ENCODER2 a ENCODER3. ===== Nutné podmínky zadání ===== * Volba odstínu barvy světla reflektoru se vždy provádí v barevném modelu HSV/HSB, viz [[http://colorizer.org/]]. Vezměte přitom v úvahu, že RGB-LED nedokáže rozlišit plnou škálu barev jako displeje, ale v závislosti na svém jasu zobrazí od 256 (krajní úrovně) až do 1024 (střední jasové úrovně). Volte úměrně tomu kroky změn . Na webu pak najdete řadu C programů pro převod z HSV na RGB. * K řešení je také přiložený technický manuál, který popisuje ovládání. Stačí jedna stránka v PDF. ===== Bodované podmínky zadání ===== Řešení je rozdělené na bodované kategorie, jejichž hodnoty se sčítají. \\ ==== 2 až 8 bodů – Přehlednost ovládání a výstup na displej ==== 3 - LCD displej ukazuje názorně vybraný režim a okamžité nastavení obou reflektorů. Volba se mění ovladači. 6 – LCD displej ukazuje nejen režim a nastavení, ale vypisuje i přehledné textové menu, v němž lze volit jednotlivé funkce. 8 – Totéž jako v předchozím bodě, ale na displeji lze nastavit nejen normální písmo, ale i dvojnásobně zvětšené, aby ho i osoby s horším zrakem dokázaly dobře číst. (Soubory s dalšími definicemi fontů v různé velkosti naleznete v adresáři **/opt/apo/lcd/fonts**) \\ ==== 1 až 7 bodů – světelné efekty==== Ke svícení se přidávají efekty, jejichž bodové hodnocení se sčítá. Jednotka si musí pamatovat předchozí efekty, tj. po nastavení jiného efektu se lze vrátit k předchozím, aniž by se znovu musely zadávat jeho hodnoty. Pokud efekt běží, lze měnit jeho hodnoty bez nutnosti ho přerušit, takže je okamžitě vidět výsledek. 1 – **základní bod** - statické svícení, jehož barva se volí ve třech režimech. Každý reflektor lze nastavit: a) Individuálně – nastavuje se jen vybraný reflektor a druhý se nemění. b) Společně – mění se oba současně. c) Kopie – reflektor převezme nastavení od toho druhého. +2 – **soustavná plynulá proměna barev** – reflektor plynule přechází mezi dvojicí barev po dráze v HSV modelu. Opět lze navolit tento efekt jen „Individuálně“ u jednoho reflektoru, či „Společný“ u obou, nebo u obou v protifázi. Doba změny se dá nastavit stejně jako koncové barvy. +2 – **svícení** o nastavené statické či proměnlivé barvě **lze přerušovat** s třemi nezávisle volitelnými časy doby trvalého svícení, doby zhasnutí a fázového posunu jednoho reflektoru vůči druhému. a) Individuálně – blikání se nastavuje jen u vybraného reflektoru a druhý se nemění. b) Společně – u obou reflektorů se nastavuje současně. c) Posun fáze – u jednoho reflektoru lze časově posunout fázi nastaveného blikání. +2 - Nastavení světelného hada na řádce LED diod \\ ==== 4 body – Ovládání reflektorů přes Ethernet==== Poslední bod bude velmi náročný a není nutné ho řešit pro pouhé získání zápočtu. **Zadání**: Jednotka je nejen schopná řídit své reflektory, ale také se napojit na další jednotku a ovládat ji. Musí si tedy zjistit její IP adresu a té posílat povely přes síťové pakety. Navrhněte si vhodné protokoly a i způsob komunikace. Měli byste detekovat existenci druhé jednotky a pak se na ni kdykoliv napojit a poté se zase odpojit. [[courses:b35apo:documentation:networking|Návod: Nespojovaná/datagramová komunikace v síti s protokolem IP (Internet Protokol)]] ==== 5 bodů – Kvalita provedení ==== Logické pojmenování funkcí, lokálních a globálních funkcí na základě anglické terminologie. Odsazování, rozdělení do souborů podle příslušnosti k subsystémům a další.