\chapter{3D model bójí kardinálních znaků}

Výsledkem bakalářské práce je vytištěný a elektrifikovaný 3D model bójí kardinálních znaků. Tento model odpovídá všem náležitostem bójí kardinálních znaků popsaných v teoretické části práce. Model je koncipovaný jako univerzální. Změnou barevného filamentu a orientací nebo typem vrcholových znaků lze dosáhnout vytištění jakékoliv bóje. Samozřejmě že je pak nutná i úprava programu pro osvětlení dle normy (E-110). 

\section{Modelářská část}
Modely bójí byly vymodelovány v 3D modelovacím programu Blender. Každý model bóje se skládá ze tří válců navršených na sebe. Toto rozdělení je dáno barevným značením kardinálních znaků. Pro barevnou stálost a jednoduchost byly použity barevné filamenty podle barvy části bóje. Každá část bóje je tisknutá zvlášť a následně došlo ke spojení jednotlivých částí. 

Všechny části jsou ze spodní strany duté a proto byly tisknuté obráceně. Byl tak ušetřen materiál a čas, který by byl využit pro tisk podpěr. V podstavě bóje je umístěn zdroj napájení, vypínač celého modelu bóje a přepínač módu bóje. V prostředním válci se pak nachází samotný mikrokontrolér.  Celou bójí prochází kabelová cesta pro napájení LED diod (Light-Emitting Diode) ve vrchní části. 

Elektroinstalace je nainstalovaná do podstavy ze spodní části. Otvor s bateriemi je chráněn poklopem, který je přišroubován do podstavy. Tento poklop je zapuštěn do podstavy a umožňuje tak stabilní stání bóje na rovné podložce. 

Střední část bóje obsahuje kabelový průchod a samotný mikrokontrolér. V horní části bóje jsou umístěné LED diody. Celou bójí prochází závitová tyč, ke které jsou přišroubovány jednotlivé části bóje. Bóje tedy není lepená ani jinak spojená. Nejkřehčím bodem bóje je uchycení vrcholových znaků, které jsou vystaveny potenciálně největší možnosti poničení. Ve vrcholových znacích je vyřezán metrický závit, který umožňuje našroubování znaku na tyč. V případě protáčení, či posouvání těchto vrcholových znaků je možné zajistit znaky matičkou. 

\begin{figure} [!h]
  \begin{center}
    \includegraphics[width=8cm]{obrazky/prototyp2.jpg}
  \end{center}
  \caption[Prototyp první verze vymodelované bóje]{Prototyp první verze vymodelované bóje}
\end{figure}


\section{Elektrotechnická část}
Elektrifikace modelu bóje spočívá v naprogramování mikrokontroléru tak, aby rozsvěcoval LED diodu dle parametrů daných normou IALA E110. 

Jako centrální řídící prvek celé elektrifikace je zvolen mikrokontrolér Arduino Nano. Tento mikrokontrolér vyniká svými miniaturními rozměry a dostatečným výkonem pro uvažovanou aplikaci. Tento mikrokontrolér pracuje na logické úrovni 5V a vyžaduje napájení v rozsahu 6\,-\,12\,V. Napájení pro mikrokontrolér zajišťují 4 kusy 1,5\,V baterie. Tyto baterie byly zvoleny z důvodu dostupnosti, kapacity a relativně malých rozměrů. Napájecí obvod do mikrokontroléru je uzavřen přes spínač vyvedený v podstavě bóje. 

Každý model bóje umí svítit v módech quick a very quick (viz kapitola 2.5 a 2.6 ). O rozhodování, jaký mód bude aktivní rozhoduje přepínač na povrchu bóje. Výstup tohoto přepínače je digitálním vstupem do mikrokontroléru, který spustí příslušný mód. Výstupem z mikrokontroléru jsou 4 LED diody na vrcholu bóje. Světelné zdroje jsou voleny s vysokým rozptylem a tubus LED diody je dlouhý. Tyto optické parametry zajišťují, že model bude viditelný a bude plnit funkci demonstrátoru i při denním světle. 

\begin{figure}[!h]
  \begin{center}
    \includegraphics[scale=0.8]{obrazky/circuit.eps}
  \end{center}
  \caption[Schéma zapojení]{Schéma zapojení}
\end{figure}

\section{Programová část}

Programová část bakalářské práce se skládala z vytvoření programu pro řízení světel bójí. Každá z bójí má jiný rytmus světel a proto je program pro každou bóji svým způsobem unikátní. 

Program běží v nekonečné smyčce. Na začátku smyčky probíhá dotaz, zda je na digitálním vstupu D\,2 napětí. Pokud je na tento vstup přiváděno napětí +5\,V je bóje v módu quick. Pokud není na digitálním vstupu napětí, a vstup je tedy propojen na pin GND je bóje v módu very quick. Po vyhodnocení, kterým módem bude bóje svítit následují příkazy na rozsvěcení a zhasnutí LED diod v daném rytmu dle typu bóje

Módy quick a very quick lze libovolně přepínat za běhu programu, avšak vždy dojde k dokončení dané sekvence v aktuálním módu a poté automaticky začne nová sekvence v již přepnutém módu. Výstupem programu je poté ovládání digitálního výstupu D13, ke kterému jsou připojené LED diody. 

Mikrokontroléry v jednotlivých bójích jsou na sobě nezávislá a v každém z nich je uložen program pouze danou bóji. Není tak možné, aby došlo k výběru špatného rytmu světla pro daný kardinální znak. Celkově jsou využity dva digitální piny, jeden pro vstup ovládacího signálu, druhý pro ovládání LED diod. 

\section{Možnosti rozšíření}

Elektrotechnická část bójí lze rozšířit o možnost centrálního řízení bójí bezdrátově po WiFi (Wireless Fidelity). Při použití vzdáleného řízení vyvstává problematika, které řízení má vyšší prioritu. Zda lokální, nebo vzdálené. Tato problematika lze řešit dvěma způsoby. Prvním způsobem je odstavení přepínače quick / very quick. Po zapnutí mikrokontroléru by se ve výchozím stavu spustil jeden předdefinovaný mód (například quick) a ten by nešel lokálně změnit. Jedinou možností na změnu by bylo bezdrátové řízení. 

Druhou variantou je pak přidání dalšího přepínače na tělo bóje. Tento přepínač by zapínal a nebo vypínal připojení k bezdrátovému řízení. V případě zapnutého bezdrátového řízení by byla bóje kontrolovaná vzdáleným kontrolérem. Lokální přepínání módů by bylo ignorováno. V případě vypnutí vzdáleného řízení by se aktivoval lokální přepínač módů a bóje by se dala řídit lokálně. 

Třetí variantou je vytvoření bóje pouze s bezdrátovým řízením. Na bóji by se tak nacházel jen vypínač pro zapnutí a vypnutí napájení. Při vzdáleném řízení bójí je doporučeno vytvoření setu bójí používaných v rámci jedné výuky. V případě nutnosti variabilního rozšíření by bylo nutné přeprogramovat dané bóje.  Oba níže navržené modely pracují s technologií WiFi v pásmu 2,4 GHz. Jedná se o bezlicenční frekvenční pásmo, které negarantuje stálost rádiových podmínek, a to zejména z důvodu využívání tohoto pásma pro více bezdrátových komunikačních technologií. 

\subsection{Mikrokontrolér Node MCU}
První variantou je využití mikrokontroléru Node MCU Lua ESP8266 CH340 WiFi. Tento mikrokontrolér disponuje integrovaným WiFi čipem. Není tedy nutné dokupovat a zapojovat další jednotku pro komunikaci. Zároveň tento mikrokontrolér lze použít jako webový server. Je tedy možné, ovládat bóji vzdáleně pomocí chytrého telefonu, či jiného zařízení s požadovanou konektivitou. Další možností kontroly nad bójemi je vytvoření fyzického ovladače, který bude sloužit jako server a ostatní jednotky v bójích se k němu budou připojovat. Tato varianta bude umožňovat hromadné řízení více bójí najednou. Taktéž je možné tento mikrokontrolér využít pro řízení na platformě Blynk. \cite{NodeMCUwebserver}

Nevýhodou tohoto mikrokontroléru jsou jeho fyzické rozměry. Délkově je přibližně shodný s Arduino Nano, avšak šířkově je dvojnásobný. I přes tuto velikost je možné tento mikrokontrolér umístit do vymodelované bóje. Pokud bychom však chtěli modely zmenšit, mohl by nastat problém s umístěním mikrokontroléru. Cena tohoto modelu (285 Kč) je přibližně dvojnásobná oproti základnímu modelu Arduino Nano (135 Kč). Proto se tento model nevyplatí pro základní, lokální řízení bójí. \cite{NodeMCU} \cite{ArduinoNano}

\subsection{Arduino Nano s rozšiřující deskou NRF24L01}
Druhou variantou hromadného řízení bójí je využití použitého Arduino Nano spolu s rozšiřujícím modulem NRF24L01. Tento WiFi modul zabezpečuje bezdrátový přenos dat mezi dvěma a nebo více Arduino deskami. Diskutovaný model slouží pouze ke komunikaci mezi Arduino deskami a nelze ho připojit k externímu WiFi routeru nebo pracovní stanici. Nelze tedy ovládat Arduino pracovní stanicí. 

Výhodou modelu NRF24L01 je nižší cena a malé rozměry. Nevýhodou je nutnost propojení dvou desek a výše zmíněné omezení komunikace mezi Arduinem a pracovním terminálem. \cite{ArduinoWIFI}

\section{Rozšíření s Node MCU ESP8266}
Pro testování možností vzdáleného ovládání bójí byl zvolen mikrokontrolér Node MCU ESP8266. Tento mikrokontrolér se jeví jako nejjednodušší varianta pro dálkové ovládání chytrým mobilním telefonem. Jelikož má bezdrátové řízení smysl pro dvě a více bójí je navržené řešení koncipované pro ovládání všech bójí najednou. 

\begin{figure} [H]
  \begin{center}
    \includegraphics[scale=0.45]{obrazky/vyvojDiagBlynk.png}
  \end{center}
  \caption[Vývojový diagram programového kódu pro rozšíření]{Vývojový diagram programového kódu pro rozšíření}
\end{figure}
Jako řešení pro bezdrátové a hromadné ovládání jsem zvolil použití s aplikací Blynk s externím WiFi routerem. V programu pro mikrokontrolér je přesně specifikované jméno a heslo pro přístupový bod. Po zapnutí se tedy mikrokontorléry automaticky připojí k danému přístupovému bodu. Každá bóje je pak unikátně identifikovaná svým tokenem, který je generován aplikací Blynk a je taktéž umístěn v programovém kódu. V aplikaci si lze vytvořit skupinu pro všechny bóje. Na tuto skupinu pak lze aplikovat hromadný přepínač stavů 0 a 1. Programy v jednotlivých kontrolérech čekají na prvotní pokyn na virtuálním portu V\,0. Po změně stavu na tomto portu tak dojde ke spuštění programu. Se změnou stavu virtuálního portu pak dojde ke změně módu.  \cite{NodeMCUwithBLYNK}


Výhodou i nevýhodou použití řešení s aplikací Blynk je nutnost připojení k Internetu. Tato podmínka umožňuje ovládat bóje z jakéhokoli místa, bez nutnosti veřejné IP (Internet protocol) adresy  či připojení všech prvků do stejné LAN (Local Area Network). 

Pokud by bylo nutné používat bóje v offline módu lze do LAN nainstalovat Blynk server a v programovém kódu jednotlivých bójí pak specifikovat IP adresu tohoto serveru a port. Vyhneme se tak nutnosti připojení k internetu a veškeré řízení bude probíhat po LAN. \cite{BlynkServer} V tomto řešení se neuvažuje lokální přepínání módů přepínačem, ale pouze řízení z aplikace. 


\subsection{Aplikace Blynk}
Aplikace Blynk je komerční aplikace pro IoT (Internet of Things). Není vázaná na konkrétní platformu a lze ji využít na všech známých a dostupných zařízeních. Aplikace umožňuje ovládat jednotlivé mikrokontroléry, ale také zobrazovat a graficky interpretovat data, která jednotlivé kontroléry získají. \cite{BlynkDoc}

Zároveň v ní lze jednoduše ovládat jednotlivé mikrokontroléry a nebo je spojit do skupin a tyto skupiny ovládat jedním tlačítkem. Níže je přiložena ukázka z aplikace Blynk. Ukázka je tvořena pro dvě bóje, avšak lze rozšířit na libovolné množství bójí. Tlačítky umístěnými v levé části se řídí jednotlivé bóje samostatně a tlačítko vpravo je pro řízení všech bójí. \cite{blynkDelay} \cite{blynkMultiples}


\begin{figure} [!h]
  \begin{center}
    \includegraphics[scale=0.11]{obrazky/Blynk2.jpg}
    \includegraphics[scale=0.11]{obrazky/Blynk1.jpg}
  \end{center}
  \caption[Aplikace Blynk]{Aplikace Blynk}
\end{figure}