% Tento soubor nahraďte vlastním souborem s obsahem práce.
%=========================================================================
% Autoři: Michal Bidlo, Bohuslav Křena, Jaroslav Dytrych, Petr Veigend a Adam Herout 2019

% Pro kompilaci po částech (viz projekt.tex), nutno odkomentovat a upravit
%\documentclass[../projekt.tex]{subfiles}
%\begin{document}

\chapter{Úvod}
 Modely strojov, ktoré vykonávajú nejakú úlohu pomocou rádiových vĺn na základe diaľkového ovládača nazývame RC (angl. \textit{radio controlled}) modely. RC modely nám môžu slúžiť na trávenie voľného času, zábavu, prípadne môžu byť využité na edukatívne alebo vývojové účely. Celkovo RC modely ponúkajú cenovo dostupné riešenie, ako sa efektívne naučiť niečo nové,  a pritom sa zabaviť. Keďže som veľkým fanúšikom automobilov, tak sa im vo svojom čase aj rád venujem. V mladšom veku som mal záľubu v modeloch, ktoré boli poháňané elektromotorom, ktorým dodávali energiu akumulátory. V súčasnosti obdivujem skôr reálne automobily, predovšetkým americké veterány. Preto ma zaujala myšlienka ozvučiť elektrické RC autá, aby pôsobili realistickejšie a získali tak svoj charakteristický zvukový prejav.

Cieľom tejto práce je zoznámenie sa so spôsobmi, ako generovať ozvučenie RC modelu a vytvoriť algoritmus generujúci zvuk spaľovacieho motora pri komerčne predávanom RC modeli s elektrickým pohonom s využitím mikropočítača. Práca je implementovaná práve na RC automobil, vzhľadom k silnému putu k atmosférickým americkým osemvalcovým veteránom. 

Práca je rozdelená na viacero spolu súvisiacich častí. Prvá kapitola \ref{kapitola_konstrukcie} sa zaoberá a teoreticky spracováva informácie o RC modeloch. Spomenutá je základná konštrukcia diaľkovo ovládaného modelu, princíp odosielania a prijímania informácií. Druhá kapitola \ref{kapitovla_ozvucenie} sa zameriava na metódy generovania zvuku za použitia mikrokontrolérov a rozoberá mikropočítače využívané v projektoch, kde je potrebné riadiť činnosť programu na základe vstupných impulzov. Okrem toho uvádza využívané riešenia pri ozvučení automobilu. V kapitole \ref{exist_riesenia} som analyzoval dostupné riešenia zaoberajúce sa  generovaním zvuku pre modely. Zároveň analyzujem požiadavky na ozvučenie vozidla a požiadavky kladené na hardvér a softvér implementácie. Moje vlastné riešenie a implementácia opisuje kapitola \ref{moje_riesenie}, ktorá obsahuje informácie o výbere komponent a ich stručný popis zapojenia, pričom popisuje aj softvérovú implementáciu. Posledná časť obsahuje zhrnutie mojich dosiahnutých výsledkov.



\chapter{Konštrukcia a ovládanie modelov}
\label{kapitola_konstrukcie}

Táto kapitola obsahuje informácie o základnej konštrukcii a prenosu informácií diaľkovo ovládaného elektrického automobilu. Zahŕňa informácie bezprostredne súvisiace s bakalárskou prácou. Vzhľadom k obmedzenému rozsahu práce nenadobúda táto kapitola encyklopedický charakter. Úlohou kapitole je zoznámenie s funkciou základných komponent diaľkovo ovládaného automobilu a vysvetlenie princípu vzájomnej komunikácie jednotlivých súčastí.


\section{Konštrukcia RC modelu}
RC ( angl. radio-controlled, rádiovo ovládaný) model funguje pomocou využitia rádiových frekvencií.  Rádiofrekvenčné signály sa využívajú na prenos príkazov z diaľkového ovládača do prijímača. RC automobil sa zvyčajne skladá z niekoľkých základných komponentov, ktoré spolu tvoria kompletný model. Jednotlivé časti sú spolu prepojené pomocou vodičov a~konektorov. 
Na obrázku \ref{konstukcia} sú vyznačené komponenty potrebné pre základnú funkčnosť vozidla.

\begin{figure}[ht]
	\centering
	\includegraphics[width=0.7\textwidth]{obrazky-figures/konstrukcia.png}
	\caption[Znázornenie základných komponent na reálnom modeli]{Znázornenie základných komponent na reálnom modeli\footnotemark }
	\label{konstukcia}
\end{figure}
\footnotetext{zdroj obrázka (bez pridaného popisu): \url{https://www.rcautowelt.de/product/himoto-110-tanto-rc-buggy-black-blue/}}


 Všetky RC modely na základe uvedeného zdroja \cite{model_casti} pozostávajú z piatich hlavných častí, pričom každá súčiastka má špecifickú úlohu: 
\begin{itemize}
    \item {\textbf{Diaľkový ovládač} slúži k ovládaniu modelu, posiela rádiové vlny určené pre prijímač namontovaný na modeli.}
    \item {\textbf{Prijímač} sa skladá z antény a obvodovej dosky (mikrokontroleru) a prijíma signály z~ovládača, na základe ktorých aktivuje príslušný motor.}
    \item {\textbf{Motor a servomotor} majú za úlohu zabezpečiť pohyb vozidla a zmenu trajektórie.}
    \item {\textbf{Elektronický regulátor otáčok (ESC)} reguluje rýchlosť otáčania motora prevodom signálu na prislúchajúce napätie.}
    \item {\textbf{Zdroj energie} u elektrických modeloch je akumulátor, u spaľovacej verzii ide o palivo. Energiou sa rozumie taká energia, ktorá je potrebná na prevádzku motora.}   
\end{itemize}




Technológia používaná v RC modeloch v priebehu rokov pokročila. S novými technológiami pribúdajú aj možnosti pridať ďalšie funkcie, ako je telemetrická spätná väzba v~reálnom čase, GPS a dokonca aj umelá inteligencia. Okrem základných komponent (viz. Obr \ref{konstukcia}) použitých v tejto práci, existuje ešte množstvo rozšírení.

\section{Ovládanie modelu}
Zjednodušený postup, ako prebieha komunikácia medzi ovládačom a zariadením, pozostáva z nasledujúcich krokov \cite{pwm_ukazka}:
\begin{enumerate}
    \item {Užívateľ zadá pomocou diaľkového ovládača príkaz stlačením tlačidla alebo iného ovládacieho prvku. Ide napríklad o páčku alebo koliesko.}
    \item{Ovládač vyšle rádiofrekvenčný signál. Tento signál so zakódovanou správou mieri na prijímač na aute.}
    \item{Po zachytení signálu na prijímači dôjde k jeho dekódovaniu a následne je poslaný servomotoru alebo ESC.}
    \item{Servomotor alebo ESC potom riadia pohyb motorov modelu alebo iných komponentov, ako je riadenie alebo plyn, na základe prijatých príkazov.}
    \item{Model sa pohybuje a vykonáva činnosti podľa pokynov používateľa prostredníctvom ovládača.}
\end{enumerate}
Je dôležité poznamenať, že rôzne typy RC modelov, ako sú lietadlá, člny, helikoptéry, môžu mať rôzne špecifické komponenty a funkcie, ale základný princíp používania rádiofrekvenčných signálov na prenos príkazov zostáva rovnaký.

\subsection{Vysielač}
Vysielač spolu s prijímačom sú  zariadenia umožňujúce ovládanie vozidla bezdrôtovo. Vysielač je zariadenie využívajúce na ovládanie rádiový signál. Signál určitej frekvencie prúdi vzduchom do prijímača.  Na napájanie sa využíva vlastná batéria, zvyčajne disponujúca napätím 9 alebo 6 V \cite{model_casti}. 

Vysielač sa skladá z viacerých základných komponentov, ktoré zabezpečujú jeho správne fungovanie. Jedným z najdôležitejších komponentov vysielača je modul generujúci signály, ktoré sú potom vysielané z antény \cite{model_casti, rc_guide}.  Frekvencia signálu závisí od konkrétneho vysielača, pričom väčšina pracuje s frekvenciou 2.4 GHz. Na Slovenku je pre RC modely povolené použitie viacerých frekvencií s hodnotami pohybujúcimi sa okolo 27 MHz, 35 MHz a 40 MHz. Uvedené frekvencie pre modely sú na Slovenku vydané Úradom pre reguláciu elektronických komunikácií a poštových služieb. Aktuálne dostupné frekvencie boli získané z oficiálnej internetovej stránky úradu. Obrázok \ref{ovladač} zobrazuje bežne používaný ovládač pri automobiloch.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/transmitter.png}
	\caption[Ovládač automobilu, 2.4 GHz]{Ovládač automobilu, 2.4 GHz\footnotemark }
    
	\label{ovladač}
\end{figure}
\footnotetext{zdroj: \url{https://www.peckamodel.sk/hpimv22782-mtx-244-maverick-2-4-ghz-3-kanalovy-vysilac}}

Väčšina RC vysielačov disponuje aspoň dvoma kanálmi. Čím má vysielač väčšie množstvo kanálov, tým viac rôznych funkcií je možné za pomoci ovládača dosiahnuť. V prípade vysielača s jedným kanálom je možné ovládať iba jeden prvok, napríklad pohyb dopredu a~dozadu. Kanál číslo 1 sa zvyčajne používa na ovládanie rýchlosti, zatiaľ čo kanál číslo 2 sa používa na ovládanie smeru modelu \cite{model_casti}. 

Dvojkanálový vysielač je schopný zabezpečiť 6 základných pohybových úkonov: 
vpred, vzad, vpred a doľava, vpred a doprava, vzad a doľava, vzad a doprava \cite{model_casti}.



\subsection{Prijímač}
Hlavnou úlohou prijímača je, ako už z názvu vyplýva, prijímať rádiové signály pomocou antény. Obdržaný rádiový signál spracuje a konvertuje na signál PWM, ktorým sa riadia nielen servá, ale aj iné elektronické zariadenia, ako napríklad elektronický regulátor otáčok.

Prijímač (obr. \ref{prijimac}) je väčšinou vybavený viacerými kanálmi. Využitie viacerých kanálov umožňuje ovládanie viacerých komponentov a funkcií na modeli nezávisle od seba. Každý kanál na prijímači sa ovláda pomocou samostatného signálu z vysielača \cite{model_casti, krystali}. Proces prenosu signálu z ovládača a jeho následné spracovanie prebieha veľmi rýchlo, zvyčajne bez oneskorenia. Dosiahnutá je tak vysoká plynulosť ovládania.

\newpage
Prijímač sa skladá z viacerých častí, ktoré slúžia na dekódovanie a spracovanie signálu. Jeho hlavnými časťami sú:
\begin{itemize}
    \item {anténa,}
    \item {zosilňovač,}
    \item {demodulátor,}
    \item {dekodér,}
    \item {výstupné obvody.}
\end{itemize}

Neodmysliteľným komponentom je anténa, pomocou ktorej je signál zachytávaný. Zachytený signál je prevedený na elektrický signál a po prevode následne prechádza do nízkošumového zosilňovača. 
Zosilňovač zabezpečuje zvýšenie úrovne obdržaného signálu. Po zosilnení putuje na spracovanie do demodulátora.
Demodulátor má za úlohu oddeliť signál z modulačného signálu. Modulačný signál zabezpečuje informácie o polohe ovládača. Oddelený signál sa prevedie na analógový signál a následne je pripravený vstúpiť do dekodéra.
Za pomoci dekodéra dochádza k čítaniu informácií kódovaných v signáli a mení ho na signál, ktorým sa ovládajú už konkrétne funkcie vozidla. Práve v dekodéri tak vzniká signál PWM, pomocou ktorého sa riadia výstupné obvody. Výstupné obvody prijímača sú potom použité na ovládanie rôznych komponentov vozidla \cite{receiver}.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{obrazky-figures/prijimac.png}
	\caption[Trojkanálový prijímač]{Trojkanálový prijímač\footnotemark}
    
	\label{prijimac}
\end{figure}
\footnotetext{zdroj: \url{https://www.rcsvet.sk/ghz/106273-mrx-244-maverick-24ghz-3k-prijimac-s-failsafe-5050864023115.html}}


\subsection{Rádiové ovládanie}

Rádiové ovládanie RC modelu je založené na bezdrôtovom prenose signálu medzi vysielačom a prijímačom. Na prenos sa používajú rádiové vlny, ktoré sa vysielajú prostredníctvom antény na vysielači a zachytávajú sa pomocou antény na prijímači \cite{rc_guide}. Po zachytení signálu pomocou antény na prijímači dochádza k prevedeniu na elektronický signál. Tento signál sa prenáša do elektronickej riadiacej jednotky nazývanej elektronický regulátor otáčok. V tejto riadiacej jednotke sa signál spracováva a uvádza do činnosti motory alebo iné mechanizmy.

Prenesenie signálu do prijímača môže byť prostredníctvom rozličných rádiových frekvencií, čo však záleží od typu modelu. V minulosti sa bežne používali frekvencie v rozmedzí od 27 MHz pri automobiloch až po 72 MHz  pri lietadlách \cite{krystali}. Zaistenie frekvencie je zabezpečené pomocou dvojice kryštálov \ref{krystali_label}. 
Ako prvá sa na prenos používala amplitúdová modulácia, ktorá sa označuje ako AM \cite{rc_guide}. Je to najjednoduchší spôsob prenosu, avšak najviac náchylný na rušenie okolitým šumom \cite{pwm_ukazka}. Neskôr tento spôsob nahradilo odosielanie pomocou frekvenčnej modulácie, ktorá sa označuje ako FM\cite{rc_guide}. Napriek tomu, že frekvenčná modulácia je odolnejšia proti šumu, stále pri nej môže dochádzať k rušeniu. 
Hlavný rozdiel medzi AM a~FM zobrazuje nasledujúci obrázok \ref{AM_FM}. V súčasnosti sa najviac používa frekvencia 2.4 GHz využívajúca technológiu DSM \ref{DSMlabel}. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.7\textwidth]{obrazky-figures/rfmod.png}
	\caption[Amplitúdová a frekvenčná modulácia]{Amplitúdová a frekvenčná modulácia\footnotemark}

	\label{AM_FM}
\end{figure}
\footnotetext{zdroj: \url{https://rcplanes.online/rfmod.gif}}



\subsubsection{Využívanie kryštálov}
\label{krystali_label}
V minulosti bolo využívanie kryštálov častejšie než dnes, pretože dnes je ich výskyt ojedinelejší. Kryštály sa používajú v RC modeloch využívajúcich frekvencie v rozsahu MHz. Systémy využívajúce frekvenciu 2.4 GHz nepoužívajú kryštály kvôli použitiu odlišnej technológie. Model využívajúci túto technológiu tak disponuje jedným párom kryštálov (obr.~\ref{krystali}). Jeden je súčasťou prijímača a druhý je súčasťou vysielača. Ich hlavnou úlohou je určovanie frekvenčného kanálu, na ktorom bude ovládacie zariadenie pracovať. Oba kryštály musia pracovať na rovnakom frekvenčnom kanáli \cite{krystali}. 


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.3\textwidth]{obrazky-figures/tx-rx-crystals.png}
	\caption[Set kryštálov pre vysielač a prijímač]{Set kryštálov pre vysielač a prijímač\footnotemark}

	\label{krystali}
\end{figure}
\footnotetext{zdroj: \url{https://www.rc-airplane-world.com/radio-control-gear.html}}

Ako už z názvu vyplýva, vo vnútri telesa sa nachádza kryštál,  vďaka čomu dochádza k~javu nazývanému piezoelektrický efekt. To znamená, že prúd tečúci kryštálom prirodzene rezonuje na určitej frekvencii \cite{krystali}.

\subsubsection{DSM (Digital Spectrum Modulation) }
\label{DSMlabel}
V súčasnosti sa čoraz viac používa technológia DSM (digitálna modulácia spektra). Táto technológia bola vyvinutá spoločnosťou Spektrum RC, ktorá sa špecializuje na RC elektroniku. Využíva sa pri všetkých modeloch, ktoré sa ovládajú pomocou 2.4 GHz frekvenčnej vlny. DSM je technika modulácie signálu, ktorá umožňuje prenos dát v digitálnej podobe prostredníctvom rádiových vĺn. 

DSM môže na implementáciu použiť viacero rôznych techník, ako napríklad frekvenčnú moduláciu (FM), fázovú moduláciu (PM) alebo amplitúdovú moduláciu (AM). Rozdiel techník spočíva v tom, ako je digitálny signál aplikovaný na nosnú vlnu. Pri využití DSM s~frekvenčnou moduláciou (FSK) je digitálny signál aplikovaný na frekvenciu nosnej vlny. Pri fázovej modulácii (PSK) je digitálny signál aplikovaný na fázu nosnej vlny.  Pri DSM s~využitím amplitúdovej modulácie (ASK) je potom digitálny signál aplikovaný na amplitúdu nosnej vlny. Po obdržaní signálu pomocou prijímača dochádza k dekódovaniu a~extrakcii digitálnych dát. V modelárstve sa využíva technika šírenia spektra (angl. spread spectrum). Dôjde tak k eliminácii rušenia a šumu, čo má za následok umožňovanie prenosu dát na väčšie vzdialenosti s menším počtom chýb v dátach. 

Okrem modelárstva sa DSM používa na prenos dát v rôznych aplikáciách, ako sú mobilné a bezdrôtové senzorové siete, satelitné komunikácie a ďalšie.

Pri technike šírenia spektra (angl. spread spectrum) existujú tri spôsoby, ktoré môžu výrobcovia využívať \cite{DSM, dsm_casopis}:
\begin{itemize}
    \item {\textbf{FHSS} (Frequency Hopping Spread Spectrum) je systém, kde vysielač prenáša úzkopásmový signál a rýchlo preskakuje z jednej frekvencie na druhú.}
    \item {\textbf{DSSS} (Direct Sequence Spread Spectrum) sú systémy pracujúce na jednej frekvencii, ktoré však využívajú veľmi široké pásmo. Oproti FHSS majú DSSS viacero výhod a~ich využitie je spoľahlivejšie a disponuje výrazne vyšším dosahom.}
    \item {\textbf{CRC} (Cyclical Redundancy Code) predpokladá, že dáta sa niekedy poškodia. Výpočet CRC vysielača a prijímača sa nezhoduje, ak je jedna časť mierne mimo. Vtedy prijímače ignorujú chybné pakety.}
\end{itemize}

\subsubsection{Porovnanie kryštálov a DSM}
Technológia DSM je nástupcom používania kryštálov. Z tohto dôvodu so sebou nesie množstvo výhod. V prvom rade došlo k zlepšeniu dosahu, ale najpodstatnejšia zmena spočíva pri používaní. Porovnanie je vytvorené za pomoci uvedeného zdroja \cite{DSM}.

Pri modeloch využívajúcich DSM nestačí model pri prvom spustení len zapnúť, aby bol pripravený k jazde. Prvým krokom je spárovanie prijímača s vysielačom, ktorý sa označuje anglickým slovom \textit{binding}. Ovládač aj prijímač je teda potrebné uviesť do stavu párovania, aby prijímač mohol nájsť a rozpoznať  GUID prijímača. Po spárovaní dôjde k uzamknutiu. Akonáhle sú zariadenia spárované, prevezme kontrolu špeciálny softvér, ktorý pomáha predchádzať kolízii pre danú frekvenciu a ďalej pomáha eliminovať frekvenčné rušenie. Obrovský benefit spočíva v bezproblémovom používaní v prostredí s veľkým výskytom modelov, kde hlavným problémom je výskyt frekvenčného rušenia. 

Modely využívajúce kryštálovú súpravu operujú na špecifickom kanáli a frekvenčnom pásme. S využitím tejto technológie sa viaže významný vedľajší účinok, a to rádiové rušenie. Ak dva modely v blízkosti používajú rovnakú dvojicu  kryštálov s rovnakou frekvenciou, nastane problém. Môže to viesť k devastačných následkom, keďže sa môže model začať  správať nepredvídateľne alebo prijímať signál od nesprávneho ovládača. 




\subsection{Impulzová šírková modulácia (PWM)}
\label{pwm_sekcia}
PWM je skratka pre impulzno-šírkovú moduláciu (z angl. \textit{pulse width modulation}). Ide o~metódu riadenia množstva energie, ktorá je dodávaná do elektrického zariadenia rýchlym zapínaním a vypínaním s vysokou frekvenciou. Priemerný výkon dodávaný do zariadenia sa riadi nastavením pomeru času \uv{zapnutia} a času \uv{vypnutia}, známeho ako \textit{strieda} (angl. \textit{duty cycle}). Čas zapnutia býva označený ako  $t_{ON}$ a čas vypnutia zase ako $t_{OFF}$ \cite{pwm_pdf}. 
Názorná demonštrácia, ako vyzerá PWM signál, je na obrázku \ref{pwmsignal}.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/pwm_signal.pdf}
	\caption[Znázornenie signálu PWM ]{Znázornenie signálu PWM}
    
	\label{pwmsignal}
\end{figure}
%\footnotetext{Obrázok bol inšpirovaný a zostrojený za pomoci uvedeného zdroja \cite{pwm}}



V prípade RC modelov slúži PWM na riadenie rýchlosti a smeru otáčania motora. Prijímač na RC vozidle prijíma rádiový signál z vysielača, konvertuje na PWM a elektronický regulátor otáčok (ESC) prevádza signál PWM na príslušné množstvo napätie pre motor. To umožňuje presné riadenie otáčok a krútiaceho momentu motora, čo vedie k hladkej a~citlivej prevádzke RC vozidla.



\subsubsection{Frekvencia a perióda PWM signálu}
\label{frekvencia_pwm}
Frekvencia PWM signálu určuje, ako rýchlo sa vykoná jedna perióda PWM signálu. Na označenie periódy sa používa písmeno $T$ a na označenie frekvencie sa používa písmeno $f$. Podľa medzinárodnej sústavy SI je základnou jednotkou frekvencie hertz so skratkou Hz. Perióda sa udáva v sekundách. Vzťahy na výpočet frekvencie a periódy sú dané vzorcami~\cite{pwm1}:
\begin{eqnarray}
    \label{vzorec_frekvencia}
    f = \frac{1}{T}
\end{eqnarray}
\begin{eqnarray}
    \label{vzorec_perioda}
    T = t_{ON} + t_{OFF}
\end{eqnarray}
kde $t_{ON}$ je čas zapnutia a $t_{OFF}$ je čas vypnutia. 


Na ovládanie elektromotorov a servomotorov sa pri RC modeloch využíva štandardne frekvencia 50 Hz. Z toho sa dá za pomoci vzorca \ref{vzorec_frekvencia} odvodiť, že perióda tohto signálu je 20 ms. Na ovládanie servomotorov RC modelov sa zvyčajne používa rozsah šírky impulzu 1 - 2 ms.  Občas je možné sa stretnúť s rozsahom 0.8 - 2.2 ms \cite{pwm}.

Štandardná frekvencia PWM generovaná mikrokontrolérom je okolo 500 Hz. Táto frekvencia je však programovateľná pre špecifické prípady použitia. V modelárstve a všeobecne na ovládanie servomotorov a elektromotorov je potrebné, aby mikrokontrolér generoval signál s frekvenciou 50 Hz. Vyššie frekvencie, ako napríklad 500 Hz, sa používajú pri zariadeniach ako sú invertory alebo konvertory \cite{pwm1}.

\subsubsection{Strieda PWM signálu (duty cycle)}
Strieda PWM signálu udáva pomer času zapnutia $t_{ON}$ a periódy $T$. Označuje sa pomocou znaku $D$ a je udaná v percentách. Pre výpočet striedy sa používa nasledujúci vzorec \cite{pwm_pdf}:
\begin{eqnarray}
    D = \frac{t_{ON}}{T} * 100
\end{eqnarray}


\subsubsection{Vypočítanie výstupného napätia PWM signálu}
Na vypočítanie konktrétnej hodnoty napätia odpovedajúcemu striede PWM signálu sa používa vzorec \cite{pwm1}:
\begin{eqnarray}
    U_{OUT} = D * U_{REF}
\end{eqnarray}
kde $U_{OUT}$ je výsledné napätie vstupujúce do motora, $D$ je strieda a $U_{REF}$ je prevádzkové napätie systému. Výstupné napätie je priamoúmerné striede PWM signálu. Vzorec platí všeobecne, keď sa na ovládanie používa strieda od 0 do 100\%.

\subsubsection{Ovládanie rýchlosti DC motora pomocou PWM}
Pri riadení rýchlosti jednosmerných motorov v modelárstve sa používa PWM signál. Detailnejšie je popísaný v sekcii \ref{pwm_sekcia}. Problematikou fungovania DC motor sa zaoberá sekcia~\ref{dcmotor}.
Štandardné riadenie DC motora pomocou PWM signálu zahŕňa nasledujúce kroky:
\begin{enumerate}
   \item {Signál PWM generuje riadiaca jednotka, v prípade RC modelu je tento signál generovaný prijímacím zariadením. Na základe striedy tohto signálu sa budú regulovať otáčky motoru.}
    \item {Signál z prijímača putuje do elektronického regulátora otáčok (ESC), ktorý prevádza striedu PWM signálu na príslušné napätie smerujúce do motora.}
    \item {Elektronický regulátor otáčok potom privádza napätie do motora,  a to má za následok jeho rozpohybovanie na rýchlosť zodpovedajúcej vstupnej hodnote.}
\end{enumerate}



Na základe PWM signálu sa určuje rýchlosť otáčania motora. Rýchlosť, akou sa bude motor otáčať, závisí od striedy. Zariadenie ESC \ref{esc} na základe striedy určí napätie, ktoré bude putovať do motora. Zvyšovaním striedy sa bude zvyšovať aj napätie.
K všeobecnému vysvetleniu, ako sa používa PWM pri ovládaní otáčok motora, pomôže nasledujúci príklad. Máme zdrojové napätie 10 V. Ak je strieda signálu 0 \%,  tak výsledné napätie bude 0 V a~motor bude definitívne stáť. Pri striede 50 \% bude výsledné napätie 5V a rýchlosť motora bude polovica maximálnej rýchlosti. Maximálnu rýchlosť dosiahne motor pri striede 100 \%~\cite{dcspeed}. Grafický priebeh vývoja striedy zobrazuje nasledujúci obrázok \ref{striedy}.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/striedy.pdf}
	\caption{Impulzné dĺžky PWM signálu pri DC motore}
	\label{striedy}
\end{figure}
\newpage

Ovládanie rýchlosti motora v modelárstve funguje však trochu mierne odlišným spôsobom. Kľúčovým rozdielom je fakt, že sa nepoužíva celý rozsah striedy od 0 do 100 \%. Podľa opísaného príkladu by tak nebolo možné ovládanie smeru rotácie motoru, keďže celá škála by sa používala iba na regulovanie rýchlosti vpred. Namiesto toho sa tu používa celkom dômyselný systém. Jeho princípom je stanovenie prahu, od ktorého sa odvíja ďalej. Tento prah je štandardizovaný, a teda väčšinou je to 1500 $\mu$s, čo odpovedá striede 7.5 \%. Je to hodnota, ktorú vysiela ovládač, keď je páčka na ovládanie rýchlosti v neutrálnej polohe.  Pri obdržaní signálu s danou hodnotu zostane motor nehybne stáť. Pri zvýšení času zapnutia napríklad na 1550 $\mu$s sa mierne roztočí motor a vozidlo sa začne pohybovať vpred. Naopak, ak prijímač obdrží signál s časom zapnutia napríklad 1450 $\mu$s, motor sa roztočí mierne do opačnej strany a vozidlo sa začne pohybovať pomaly vzad.  Maximálne otáčky vpred dosiahne motor pri obdržaní signálu s hodnotou času zapnutia 2000 $\mu$s, čo odpovedá striede 10 \%. Maximálne otáčky vzad dosiahne motor pri obdržaní signálu s hodnotou 1000 $\mu$s, čo odpovedá striede 5 \%. V praxi sa však stretneme aj s väčším intervalom, zvyčajne 900 až 2100 $\mu$s. Príklad bol zostrojený za pomoci uvedeného zdroja \cite{pwm_ukazka}. Na internetovej stránke zdroja  sa nachádza aj interaktívny ovládač generujúci tento signál. 

Pri riadení motora pomocou PWM je dôležité poznamenať, že môže dochádzať ku generovaniu určitého šumu. To má za následok možné ovplyvnenie kvality napájania. Preto je dôležité, aby prešiel signál PWM pred odoslaním do motora cez filter.

Riadenie jednosmerného motora pomocou PWM má oproti iným metódam niekoľko výhod vrátane vysokej účinnosti, presného riadenia a možnosti prevádzkovať motor pri nízkych otáčkach bez zastavenia. Pomocou riadenia PWM je možné riadiť aj smer otáčania jednosmerného motora.


\newpage
\subsubsection{Ovládanie serva pomocou PWM}


Na obrázku \ref{pwm_rc} sú zobrazené signály pre tri významné medze. Konkrétne sa jedná o medze 1 ms, 1.5 ms a 2 ms. Ak je vstupný impulz 1 ms, servomotor sa otočí maximálne do ľavej polohy,  vďaka čomu bude vozidlo zatáčať vľavo. Šírka 1.5 ms je stredná hodnota. V tejto šírke PWM signálu vyrovná servomotor kolesá a vozidlo pôjde rovno. Pri šírke 2 ms sa servomotor otočí maximálne do pravej polohy, vďaka čomu bude vozidlo zatáčať vpravo. Následne sa akákoľvek iná šírka v tomto rozmedzí dekóduje na čiastkovú rýchlosť v príslušnom smere \cite{pwm}.
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/pwm_rc.pdf}
	\caption{Impulzné dĺžky používané pri servomotore}
	\label{pwm_rc}
\end{figure}




\subsection{Elektronický regulátor otáčok (ESC)}
\label{esc}
Elektronický regulátor otáčok (ESC, skratka z angl. \textit{electronic speed controller}) je zariadenie, ktoré sa používa v RC modeloch na riadenie rýchlosti a smeru otáčok elektromotora. ESC prijíma signál z rádiového prijímača, ktorý ovláda používateľ prostredníctvom vysielača, a pomocou tohto signálu upravuje výkon dodávaný do motora \cite{esc}.

ESC konvertuje nízkonapäťový, vysokofrekvenčný signál PWM na vysokonapäťový, nízkofrekvenčný pohonný signál, ktorý môže poháňať elektromotor. To sa uskutočňuje pomocou tranzistorov, ako sú MOSFET (angl. \textit{metal oxide semiconductor field effect transistor}) alebo IGBT (angl. \textit{insulated-gate bipolar transistor}), ktoré sa zapínajú a vypínajú v špecifických časových sekvenciách, aby zodpovedali striede signálu PWM \cite{esc_motory}.


Okrem regulovania otáčok poskytuje ESC v modelárstve viac dôležitých funkcií potrebných pri prevádzke. Ide o tieto funkcie:
\begin{itemize}
    \item {\textbf{Ochrana proti nadmernému prúdu} je potrebná, ak prúd prekročí stanovenú hranicu, čím sa napájanie motora automaticky vypne.}
    \item {\textbf{Tepelná ochrana} chráni ESC pred prehriatím, pričom po prekročení stanovenej hranice dôjde k vypnutiu napájania.}
    \item {\textbf{Ochrana proti nízkemu napätiu} chráni batériu a ESC vypnutím napájania motora, ak napätie batérie klesne pod stanovený prah.}
\end{itemize}

V závislosti od motora sa používajú dva druhy ESP \cite{esc}:
\begin{itemize}
    \item {\textbf{ESC pre kefkový/uhlíkový motor} sa ľahko používa, okrem zapínania a vypínania napätia nie je potrebná žiadna špeciálna konfigurácia.}
    \item {\textbf{ESC pre bezkefkový/bezuhlíkový motor} púšťa tranzistory MOSFET a vytvára rotujúce magnetické pole.}
\end{itemize}

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.35\textwidth]{obrazky-figures/esc.png}
	\caption[Elektronický regulátor otáčok]{Elektronický regulátor otáčok\footnotemark}
    \label{realesc}
\end{figure}
\footnotetext{zdroj: \url{https://www.rcprofi.sk/files/rcprofi-sk/soubory/modulimages/800x800w/msc-30br-wp-jednosmerny-regulator.jpg}}

Názorná ukážka ako vyzerá ESC je na obrázku \ref{realesc}. Navrhovanie ESC musí prebiehať tak, aby zvládlo nielen požiadavky motora na napätie a~elektrický prúd, ale aby malo aj vhodné ochranné funkcie, čím predíde poškodeniu zariadení.




\section{Elektrický pohon modelu}

Táto sekcia sa zaoberá základnými princípmi fungovania elektrických motorov. Všeobecne sa v modelárstve využívajú dva typy elektrických motorov, a to jednosmerný a striedavý motor. Jednosmerným motorom sa zaoberá sekcia \ref{dcmotor} a striedavým motorom sa zaoberá sekcia \ref{acmotor}. Väčšia pozornosť je upriamená na vysvetlenie funkčnosti pre jednosmerný motor, keďže práve tento typ je využitý v modeli, ktorý je použitý v praktickej časti tejto práce.


\subsection{Jednosmerný motor (DC)}
\label{dcmotor}
Jednosmerný elektrický motor je zariadenie, ktoré premieňa jednosmerný elektrický prúd na mechanickú energiu \cite{dcmotor} . Tieto motory sú často uvádzané pod názvom DC motory (z~angl. \textit{direct currnet}) , čo v preklade znamená priamy alebo jednosmerný prúd. Jeho princíp je založený na interakcii medzi vodičom vedúcim prúd a magnetickým poľom.

Jednosmerný elektrický motor sa skladá z týchto častí \cite{motory_eu_pdf}:
\begin{itemize}
    \item {\textbf{Rotor} je pohyblivá, rotujúca časť motora. Ide o zväzok vzájomne izolovaných plechov, kde je v drážkach uložené vinutie kotvy.}
    \item {\textbf{Stator} je nepohyblivá časť motora. V malých motoroch s nízkou záťažou sa stator skladá z dvojice pevných permanentných magnetov.}
    \item {\textbf{Komutátor } sú vzájomne izolované medené lamely spojené vývodmi jednotlivých cievok.}
\end{itemize}

Uvedené časti motora sú zobrzené na nasledujúcom obrázku \ref{dc}.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{obrazky-figures/dc.png}
	\caption[Základné časti DC elektromotoru]{Základné časti DC elektromotoru\footnotemark}
    \label{dc}
\end{figure}
\footnotetext{zdroj: \url{http://eltra-trade.sk/files/images/news/1/Brush-dc-motor-main-parts.jpg}}


\subsubsection{Základný princíp fungovania}
Fyzikálnu podstatu fungovania DC motoru spoľahlivo opisuje zdroj z portálu pre odborné publikovanie. \uv{\textit{Cez komutátor tečie do cievok rotora elektrický prúd, a tým je generované magnetické pole okolo rotora motora, ktorý je uložený medzi pólovými nástavcami N-S (Sever-Juh ). Ľavá strana kotvy je preto vytláčaná ľavým magnetom S a priťahovaná doprava k magnetu N, čo spôsobuje rotáciu kotvy. Kotva motora sa otáča vplyvom magnetických polí v smere doprava. V momente, keď je kotva v horizontálnej polohe, komutátor reverzuje smer prúdu tečúceho cez cievku, a tým otočí aj smer magnetického poľa, čo znamená, že celý tento proces sa opakuje, a tým vzniká otáčanie kotvy motora \cite{dcmotor}.}}

Smer otáčania DC motora je daná Flemingovým pravidlom ľavej ruky.
\begin{definition}:
    Ak ukazovák ukazuje v smere magnetického poľa a prostredník ukazuje smer napätia, potom palec ukazuje smer sily, ktorou pôsobí vonkajšie magnetické pole na vodič s~prúdom \cite{fleming}.
\end{definition}

\newpage
Príncíp otáčania je zobrazený na nasledujúcom obrázku \ref{dcrotation}.
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{obrazky-figures/fleming.png}
	\caption[Znázornenie Flemingovho pravidla ľavej ruky na DC motore]{Znázornenie Flemingovho pravidla ľavej ruky na DC motore\footnotemark }
    
	\label{dcrotation}
\end{figure}
\footnotetext{zdroj:\url{https://riverglennapts.com/images/dc-motor-basic/dc-motor-or-direct-current-motor.png }}


Na obrázku \ref{dcrotation} je znázornené Flemingovo pravidlo ľavej ruky, ktoré demonštruje spomínanú definíciu. Ide v podstate o obdobu definície. Z obrázka je zrejmé, že ukazovák a~prostredný prst ľavej ruky zvierajú pravý uhol. Palec ľavej ruky je vztýčený a je tak kolmo na ukazovák a~prostredný prst. Ukazovák predstavuje smer magnetického poľa, prostredný prst ide v smere elektrického prúdu. Následne smer palca ukazuje, akým smerom hriadeľ rotuje a akým smerom pôsobí jeho sila. Hriadeľ na obrázku sa tak bude točiť v~smere hodinových ručičiek.
V praxi to znamená, že keď elektrický prúd preteká vinutím rotora v~rovnakom smere ako magnetické pole statora, rotor sa začne otáčať v~rovnakom smere ako pole statora. 
\subsubsection{Rozdelenie jednosmerných motorov}
V modelárstve sa používajú dva druhy jednosmerných motorov (obr. \ref{dcdruhy}), a to kefkový a bezkefkový motor. Kefkový motor býva označovaný aj ako uhlíkový alebo v angličtine ako brushed. Bezkefkový motor býva označovaný ako bezuhlíkový alebo v angličtine pod skratkou BLDC (brushless DC motor) \cite{esc_motory}. Použite bezuhlíkových motorov sa vyznačuje vyššou efektivitou a dlhšou životnosťou, keďže nedochádza k opotrebovaniu uhlíkov, ktoré je pri uhlíkových motoroch potrebné meniť. 
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/typyDCmotorov.png}
	\caption{Rozdelenie DC motorov používaných v modelárstve}
	\label{dcdruhy}
\end{figure}



\subsection{Striedavý motor (AC)}
\label{acmotor}
Striedavý motor je označovaný skratkou AC (angl. \textit{alternating current motor}). Hlavnou náplňou motora je zmena striedavého prúdu na rotačný pohyb. Je zložený z dvoch hlavných častí \cite{motory_eu_pdf}:
\begin{itemize}
    \item {\textbf{Rotor} je pohyblivá, rotujúca časť motora. Ide o zväzok vzájomne izolovaných plechov, kde je v drážkach uložené vinutie medenými alebo hliníkovými drôtmi.}
    \item {\textbf{Stator} je nepohyblivá časť motora, v ktorej sa nachádza vinutie vytvárajúce elektromagnetické pole.}
\end{itemize}

Rozdelenie je klasifikované pomocou dvoch skupín \cite{motory_eu_pdf,ac_motory_journal}:
\begin{itemize}
    \item {\textbf{Synchrónny elektromotor} nesie so sebou celý rad nevýhod, pretože na roztočenie je potrebný iný mechanizmus alebo asynchrónne vinutie. Keď pri záťaži stratí synchronizáciu s rotujúcim elektromagnetickým polom, rázovo dôjde k poklesu výkonu a~následnému zastaveniu.}
    \item {\textbf{Asynchrónny elektromotor} (motor s kotvou nakrátko) sa používa v modelárstve. V porovnaní so synchrónnym elektromotorom má inú konštrukciu rotora. V praxi je najpoužívanejší druh elektrického motora vďaka spoľahlivosti a efektivite.}
\end{itemize}


Princíp fungovania AC motoru spoľahlivo opisuje časopis ATP Journal. \uv{\textit{Princíp asynchrónneho motora je založený na vzájomnom elektromagnetickom pôsobení točivého magnetického poľa vyvolaného statorovým prúdom a prúdov indukovaných týmto poľom v rotore. Vzhľadom na tento princíp sa asynchrónne stroje často nazývajú indukčné stroje. \cite{ac_motory_journal}.}} Najpoužívanejšie napájacie napätie je trojfázové, existuje aj jednofázové.




\chapter{Technológie ozvučenia a mikropočítače}
\label{kapitovla_ozvucenie}

Kapitola obsahuje základné informácie o vstavaných systémoch, ich konštrukciu a základný tok informácií. Ďalej stručne uvádza metódy generovania zvuku pomocou vstavaných systémov. Tretia sekcia sa zaoberá najpoužívanejšími platformami používanými pri hobby projektoch, ktoré sú schopné generovať zvuk. Kapitolu uzatvára sekcia zaoberajúca sa dostupnými riešeniami určených na generovanie zvuku pre diaľkovo ovládané modely áut. Kapitola zahŕňa informácie bezprostredne súvisiace s bakalárskou prácou. Vzhľadom k obmedzenému rozsahu práce nenadobúda táto kapitola encyklopedický charakter. 


\section{Vstavané systémy (Embedded Systems)}
\label{embedded_section}
Vstavaný systém je počítačový systém, ktorý môže byť súčasťou rozsiahlejšieho zariadenia alebo systému. Jeho hlavnou úlohou je vykonávanie špecifickej úlohy a nie je tak určený zastávať úlohu hlavného počítača.  Vstavaný systém je kombináciou hardvéru a softvéru navrhnutého na  vykonávanie požadovanej špecifickej funkcie. Často sú navrhnuté na prevádzku špecifické účely s konkrétnymi požiadavkami, ako napríklad nízka spotreba, zaobchádzanie v drsnejšom prostredí alebo častokrát malé rozmery \cite{embedded_structure}. Výsledkom sú tak malé, lacné zariadenia s nízkou spotrebou energie disponujúce solídnym výpočetným výkonom.

Všeobecne pozostávajú z troch častí \cite{embedded, embedded_structure}:
\begin{itemize}
    \item{\textbf{Hardvér} pozostáva z mikrokontroléra a mikroprocesora, pamäte a vstupno-výstupných (I/O) rozhraní. Mikrokontrolér alebo mikroprocesor je "mozgom" systému zodpovedný za vykonávanie inštrukcií, ktoré riadia správanie systému. Pamäť sa používa na ukladanie údajov a inštrukcií, zatiaľ čo vstupno-výstupné rozhrania umožňujú systému komunikovať s vonkajším svetom. Mikrokontroléry majú tieto komponenty zabudované do jedného čipu.} 
    \item{\textbf{Softvér a firmvér} nevyžadujú vysoké nároky na pamäť, pričom sa väčšinou jedná skôr o softvér.}
    \item{\textbf{Operačný systém v reálnom čase (RTOS)} nie je vždy súčasťou vstavaných systémov, platí to najmä pri systéme menšieho rozsahu. RTOS definujú fungovanie systému, dohliadaním na softvér a nastavením pravidiel počas vykonávania programu.} 
\end{itemize}

\newpage
K základným hardvérovým komponentom vstavaného systému patria \cite{embedded,embedded_structure}:
\begin{itemize}
    \item{\textbf{Senzory} premieňajú fyzický signál na digitálny, pričom senzor ukladá získané údaje do pamäte.} 
    \item{\textbf{Analógovo-digitálny prevodník} konvertuje analógový signál získaný zo senzoru na digitálny signál.}
    \item{\textbf{Procesor} má za úlohu spracovať dáta a ukladať ich do pamäte.}
    \item{\textbf{Digitálno-analógový prevodník} prekonvertuje digitálne dáta z procesora na analógový signál.} 
    \item{\textbf{Akčný člen (aktuátor)} prevádza informačnú časť procesu na technickú. Funguje na opačnom princípe ako senzor, ktorý sníma skutočnosť a získava z nej informačnú hodnotu.} 
\end{itemize}

Tok informácií vo vstavanom systéme je názorne zobrazený na obrázku \ref{embedded_struct}:

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/embedded_structure.png}
	\caption{Základná štruktúra a tok informácií vo vstavanom systéme}
	\label{embedded_struct}
\end{figure}


Vstavené systémy majú širokú škálu použiteľnosti v rôznych odvetviach, ako napríklad v automobilových systémoch, priemyselnej automatizácii, zdravotníckych zariadeniach, domácich spotrebičoch, telekomunikáciách a spotrebnej elektronike. Nachádzajú sa aj v mnohých nových technológiách, ako sú IoT (Internet of Things), AI (Artificial Intelligence) či v robotike \cite{embedded}.

\section{Metódy generovania zvuku}
Generovanie zvuku prebieha pomocou mikrokontroléra. Takéto generovanie sa nazýva generovanie pomocou vstavaného systému (z angl. \textit{embedded systems}, vysvetlených v sekcii \ref{embedded_section}). Na generovanie zvuku pomocou vstavaného systému sa používa niekoľko bežných metód:
\begin{itemize}
    \item {\textbf{Piezoelektrický reproduktor} predstavuje jednoduchý a lacný spôsob generovania zvuku vo vstavaných systémoch. Mikrokontrolér sa využíva na  PWM, ktorý sa môže aplikovať na piezoelektrický reproduktor na vytvorenie zvuku. Je to však vhodné len na tvorbu jednoduchých zvukov, ako napríklad varovné zvuky. }
    \item {\textbf{Digitálno-analógový prevodník (DAC) a zosilňovač} generujú digitálne zvukové údaje, ktoré sa potom prevedú na analógový signál pomocou digitálno-analógového prevodníka. Analógový signál sa potom môže zosilniť a poslať do reproduktora. Táto metóda umožňuje vysokokvalitnú reprodukciu zvuku, ale vyžaduje si viac komponentov a zložitejšiu implementáciu.}
    \item {\textbf{Vopred nahratý zvukový súbor} zaobstarávajú niektoré mikrokontroléry, ktoré sú schopné prehrávať vopred nahraté zvukové súbory, napríklad wav alebo mp3. Táto metóda sa dá ľahko implementovať a umožňuje prehrávať širokú škálu zvukov, ale kvalita zvuku je obmedzená kvalitou zvukového súboru.}
    \item {\textbf{Softvérový syntetizátor} je program generujúci zvuk pomocou matematických algoritmov. Na spustenie syntetizátora sa môže použiť mikrokontrolér, ktorý sa dá použiť aj na zmenu parametrov zvuku v reálnom čase. Táto metóda umožňuje širokú škálu generovania a manipulácie so zvukom, ale môže byť výpočtovo náročná.}
        
\end{itemize}


\section{Platformy vhodné na implementáciu ozvučenia}
Na zachytávanie signálov a spracovávanie informácií zo senzorov alebo iných zariadení, ako je napríklad prijímač diaľkovo ovládaného automobilu, je zbytočné využívať sofistikovanejší počítač. Na tento účel sa využívajú malé jednoprocesorové mikropočítače. Tieto mikropočítače v podobe vývojových dosiek majú vďaka svojej praktickosti širokú škálu uplatnenia. Detailnejšie rozobraná štruktúra takýchto vývojových dosiek je v sekcii \ref{embedded_section}. Táto sekcia rozoberá dve najpoužívanejšie a najpopulárnejšie vývojové platformy, a to Arduino \ref{arduino_label} a~Raspberry Pi \ref{raspberry_label}.

\subsection{Arduino}
\label{arduino_label}
Arduino je platforma na vytváranie projektov v oblasti elektroniky. Je to užívateľská komunita a spoločnosť vytvárajúca open-source jednodoskový hardvér a softvér. Hardvérové produkty sú pod licenciou CC BY-SA. Táto licencia umožňuje vyrábať a predávať dosky aj ostatným výrobcom, nielen autorizovaným. Ostatní výrobcovia tak môžu dosky upravovať, a tým poskytovať ešte viac funkcií alebo vytvárať napodobeniny mikrokontrolérov Arduino~\cite{arduino_wikipedia}.  Pri vývojových doskách Raspberry sú síce schémy verejne dostupné, avšak výrobu zabezpečuje iba originálny výrobca, a tak je zabezpečený ich primárny zisk financií. Arduino softvér je open-source pod licenciou Lesser General Public Licence (LGPL) alebo General Public Licence (GNU). Informácie o Arduino boli získané a vytvorené za pomoci uvedených zdrojov \cite{arduino_wikipedia, arduino, arduino_opensource}.

\subsubsection{Hardvérové vlastnosti vývojových dosiek Arduino}
Väčšina vývojových dosiek je riadená pomocou AVR mikrokontroléra od spoločnosti Atmel zo série ATmega. Používaná taktovacia frekvencia je 16 MHz \cite{arduino_wikipedia, arduino_opensource}. Napájanie dosky je zabezpečené často pomocou dvoch spôsobov, a to využitím valcového napájacieho konektora a použitím Micro USB konektora. Pri väčšine modelov je odporúčané napájacie napätie v~rozmedzí 6 až 12 V \cite{arduino}. USB  port sa využíva na nahrávanie zdrojového kódu. Napätie vo~vývojovej doske zabezpečuje 5V napäťový regulátor. Komunikácia s pripojenými perifériami a komponentami je zabezpečená pomocou vstupno-výstupných pinov \cite{arduino_opensource}. Väčšina dosiek, vrátane Arduino UNO (obr. \ref{arduino_doska}), disponuje štrnástimi  digitálnymi a šiestimi analógovými pinmi. Digitálne piny, označené na vývojovej doske znakom tildy (obr. \ref{arduino_doska}), vedia generovať pulzno šírkovo modulované signály. Pomocou analógových pinov sú prijímané informácie, napríklad signály zo senzorov \cite{arduino, arduino_opensource}.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/arduino.png}
	\caption[Vývojová doska Arduino Uno]{Vývojová doska Arduino Uno\footnotemark}
	\label{arduino_doska}
\end{figure}
\newpage
\footnotetext{zdroj: \url{https://techfun.sk/wp-content/uploads/2020/12/a-6.jpg}}

\subsubsection{Softvér a programovanie Arduino}
Vývojové dosky Arduino nedisponujú dostatočným výkonom a funkciami, aby bolo možné viesť vývoj priamo na vývojovej doske. Z toho dôvodu sa na vývoj programov používa externý počítač, pomocou ktorého sa cez sériové rozhranie Micro USB nahrá zdrojový kód. Arduino mikrokontroléry sú predprogramované a obsahujú zavádzač (boatloader). Ten zjednodušuje proces nahrávania programu do flash pamäte zariadenia \cite{arduino_wikipedia}.
Program môže byť písaný pomocou ľubovoľného jazyka. Podmienkou je však existencia kompilátora, ktorý preloží zdrojový kód do binárneho kódu pre cielený procesor. Pre procesory od spoločnosti Atmel je tak k dispozícii vývojové prostredie Atmel Studio \cite{arduino_wikipedia}. Najpoužívanejšími vývojovými prostrediami sú však Arduino IDE a PlatformIO IDE.

Arduino IDE je vývojové prostredie napísané v programovacom jazyku Java a je dostupné pre platformy Windows, macOS a Linux. Vzniklo z vývojového prostredia pre jazyky Processing a Wiring. Editor disponuje pokročilými funkciami pre editovanie zdrojového kódu. Pomocou klávesových skratiek alebo kliknutím na ikony umožňuje jednoduché kompilovanie a nahrávanie kódu do vývojovej dosky. Prostredie podporuje písanie zdrojových kódov v jazyku C/C++ \cite{arduino_opensource}. Aplikované sú tu však špeciálne pravidlá kódovej štruktúry. Oproti jazyku C netvorí základnú štruktúru funkcia \texttt{main()}\cite{arduino_wikipedia}. 

Štandardná kostra programu v pre Arduino pozostáva z nasledujúcich funkcií \cite{arduino_wikipedia}:
\begin{itemize}
    \item {\textbf{\texttt{setup()}}: Táto funkcia sa zavolá len raz, a to vždy po zapnutí alebo reštarte. V~podstate rovnako ako funkcia \texttt{main()} pri klasickej konštrukcii jazyka C. Používa sa na inicializovanie premenných či nastavovanie režimov pre piny.}
    \item {\textbf{\texttt{loop()}}: K zavolaniu funkcie dôjde po ukončení funkcie \texttt{setup()}. Funkcia je periodická až do vypnutia alebo resetovania vývojovej dosky. Jej princíp je totožný s telom funkcie \texttt{while(true)}.}
\end{itemize}


\newpage
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/arduinoIDE.png}
	\caption[Arduino IDE, štruktúra zdrojového kódu]{Arduino IDE, štruktúra zdrojového kódu\footnotemark}
    
	\label{arduinoIDE}
\end{figure}
\footnotetext{zdroj:\url{https://cdn.sparkfun.com/r/600-600/assets/a/b/a/f/5/51363844ce395f9922000001.png}}

Obrázok \ref{arduinoIDE} zobrazuje štruktúru programu \texttt{Blink.ino} vo vývojovom prostredí Arduino IDE. Úlohou programu je donekonečna opakovať rozsvietenie LED na sekundu a následne na sekundu zhasnúť. Rovnaká štruktúra zdrojového kódu sa používa aj vo vývojovom prostredí, ako je už spomenuté PlatformIO IDE, ktoré sa používa ako rozšírenie vo vývojovom prostredí Visual Studio Code. 

\subsection{Rasberry Pi}
\label{raspberry_label}
Názov Raspberry Pi sa používa pre jednodoskové vývojové mikropočítače vyrobené nadáciou Raspberry Pi Foundation. Cieľom nadácie je vzdelávanie ľudí v oblasti informatiky a výpočtovej techniky. Vývojové dosky sa tak vo svete ujali na rozvoj programátorských zručností či vytváranie vlastných hardvérových projektov. Uplatnenie si našli aj na automatizáciu v domácnostiach, dokonca aj v priemyselných aplikáciách \cite{raspberry_prehlad}. Raspberry Pi funguje ako open-source ekosystém a využíva rôzne varianty Linux systémov. Hlavný podporovaný systém je Pi OS, ktorý je taktiež open-source. Schémy vývojových dosiek sú zdokumentované pomocou voľne dostupnej dokumentácie.  Raspberry Pi sú teda lacné mikropočítače, bežiace na Linuxovej distribúcii. Výhodou je, že obsahujú aj GPIO (general purpose input/output) piny a umožňujú tak ovládať alebo pracovať s ďalšími komponentami \cite{raspberry_prehlad}. 

Prvým modelom na trhu bola doska s označením Raspberry Pi Model B. Disponovala jednojadrovým 32-bitovým procesom s taktom 700 MHz využívajúc ARM architektúru. RAM pamäť disponovala kapacitou 256 MB alebo neskôr 512MB, zdieľanou s GPU. Rozhranie tvorili dve USB 2.0, HDMI port, RCA konektor, eternetový konektor RJ-45. Nechýbal ani slot na SD karty plnej veľkosti, MicroSD prišlo až s nástupom nových verzií. Poslednou súčasťou rozhrania tvorilo 8 GPIO pinov. Vývojová doska spôsobila úspech a za prvých šesť mesiacov sa predalo pol milióna kusov \cite{raspberry_verzie}.

Najnovším modelom je v súčasnosti Raspberry Pi 400. Jedná sa o model špecifikáciami veľmi blízko Raspberry Pi 4 Model B. Hlavný rozdiel spočíva v technickom prevedení a~vyššom takte procesora. Model Raspberry Pi 400 je vo formáte klávesnice, disponuje len jednou 4 GB verziou pamäte RAM a má o jeden USB port menej. Ostatné parametre sú totožné. Vývojová doska tak stráca na praktickosti a kompaktnosti. Najpoužívanejšia je tak Raspberry Pi 4 Model B, ktorého vlastnosti sú následne uvedené.  Napájanie dosky je za pomoci konektora USB-C. Konektivita je zaobstaraná za pomoci modulu Bluetooth 5.0 a~gigabitového eternetového konektora. Rozhranie tvoria dva konektory USB 3.0 a dva konektory USB 2.0. Audio výstup zabezpečuje 3.5 mm Jack konektor. Použitý 4-jadrový procesor Cortex-A72 využíva 64-bitovú ARM architektúru. K dispozícii sú verzie s kapacitou 1 GB, 2 GB, 4 GB alebo 8 GB RAM. Za pomoci dvoch Micro HDMI zvládne GPU ťahať dva 4K displeje s obnovovacou frekvenciou 30 fps. Rozhranie dopĺňa 40 GPIO pinov \cite{raspberry_verzie}.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=1.0\textwidth]{obrazky-figures/raspberry_pi4_and_400.png}
	\caption[Mikropočítač Raspberry Pi 400 a Raspberry Pi 4 Model B]{Mikropočítač Raspberry Pi 400 a Raspberry Pi 4 Model B\footnotemark}
   
	\label{dosky_raspberry_pi}
\end{figure}
\footnotetext{zdroj:\url{https://www.cnx-software.com/2020/11/02/raspberry-pi-400-review-benchmarks-vs-raspberry-pi-4/}}

\section{Súčasné riešenia na ozvučenie RC automobilov}
V súčasnosti je na trhu viacero zariadení na simulovanie zvuku pre autá v modelárstve. Ich výhodou je, že zakúpením získa človek už hotový produkt, ktorý je jednoduché zakomponovať do modelu. Postup na inštaláciu takejto zostavy si nevyžaduje odborné znalosti a je tak vhodný aj pre ľudí začínajúcich v oblasti modelárstva. V nasledujúcej časti sú bližšie rozpísané už existujúce riešenia.

\subsection{Simulátor zvuku motora ESS–ONE}
Zostavy na ozvučenie diaľkovo ovládaných automobilov ESS-ONE pochádzajú od spoločnosti Sense Innovations. Spoločnosť je na trhu lídrom pre ozvučovanie viacerých kategórií modelov s dobrou dostupnosťou v rôznych  krajinách. Pre ozvučenie automobilov ponúka hneď viacero produktov. 

Základným modelom je uvedený ESS-ONE+ 2017. Cena produktu na oficiálnej stránke výrobcu \href{http://www.sensehobby.com/index.php?m=content&c=index&a=show&catid=8&id=13}{www.sensehobby.com} je stanovená v súčasnosti na 89\$.  Pre náročnejších užívateľov alebo pre hlučnejšie prostredie majú v ponuke aj výkonnejší model ESS-DUAL+ s použitím dvoch reproduktorov. Cena produktu je o 10\$ vyššia oproti základnej verzii, avšak sľubuje väčší výkon a dôveryhodnejšie spracovanie. Na reprodukciu zvuku reálneho spaľovacieho motora uvádza výrobca použitie pokročilého DNS/DCR algoritmu. Uvedený algoritmus sa podľa slov výrobcu riadi na základe vstupu plynu a rýchlosti pohybu plynového ovládača v kombinácii s aktuálnymi otáčkami.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/ESS_ONE.png}
	\caption[Simulátor zvuku motora ESS-ONE+ 2017]{Simulátor zvuku motora ESS-ONE+ 2017\footnotemark}
	\label{ess_one}
    
\end{figure}
\footnotetext{zdroj: \url{http://www.sensehobby.com/index.php?m=content&c=index&a=show&catid=8&id=13}}

Obsah balenia po zakúpení je zobrazený na obrázku \ref{ess_one}. Balenie obsahuje všetko potrebné pre inštaláciu na vozidlo. Na zapojenie je potrebné vytiahnuť konektor slúžiaci na ovládanie motora z prijímača. Do uvoľneného slotu sa zapojí dodávaný vodič slúžiaci na rozdvojenie signálu a prívodu napätia. Odpojený konektor a skrinku ESS-ONE je potrebné zapojiť do rozdvojky, a tým dokončiť inštaláciu. Napájanie je zabezpečené pomocou externého vodiča, ktorý sa pripojí k hlavnej batérii.
Pomocou dodávaného USB konektora je možné pripojenie k počítaču. Pripojenie slúži na nastavenie a upravovanie zvuku zariadenia pomocou poskytovaného softvéru RCPlus. 


\newpage
\subsubsection{Grafické rozhranie}
Najväčším benefitom používania akéhokoľvek produktu ESS-ONE je aplikácia \textbf{RCPlus} (obr. \ref{rcplus}) dostupná pre operačný systém Windows. Aplikácia je voľne dostupná na stránke výrobcu \href{http://www.sensehobby.com/}{www.sensehobby.com}. Prostredníctvom jednoduchého a prehľadného užívateľského rozhrania má tak užívateľ maximálnu kontrolu nad svojím zariadením. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=1\textwidth]{obrazky-figures/rcplus.png}
	\caption[Aplikácia RCPlus pre konfiguráciu zariadení ESS-ONE]{Aplikácia RCPlus pre konfiguráciu zariadení ESS-ONE\footnotemark}
	\label{rcplus}
   
\end{figure}
\footnotetext{zdroj: \url{http://down.sensehobby.com/files/ess_one_manual_en_20141125.pdf}}

Aby bolo možné aplikáciu plnohodnotne používať, zariadenie sa musí pripojiť k počítaču pomocou dodávaného konektora (viď obr. \ref{ess_one}). Po registrácii a pridaní pripojeného produktu má užívateľ k dispozícii rozhranie pre úpravu simulovaného zvuku motora. Užívateľ si tak môže vybrať zvuk z pomedzi viacerých bezplatných motorov. Nastaviť si môže zvuk brzdenia, turbodúchadla  a preraďovania.

\newpage
\begin{figure}[hbt]
	\centering
	\includegraphics[width=1\textwidth]{obrazky-figures/rcplu_engine.png}
	\caption[RCPlus - konfigurácia zvuku]{RCPlus - konfigurácia zvuku\footnotemark}
	\label{rcplus_engine}
    
\end{figure}
\footnotetext{zdroj: \url{https://www.youtube.com/watch?v=97pJvBJJ2xE&ab_channel=WTFRCCars}}

Aplikácia umožňuje užívateľovi v prehľadnej galérii prehrať krátke ukážky a následne si zvolené zvuky stiahnuť do svojho zariadenia. K dispozícii má približne 90 bezplatných nahrávok pre motor. Po zvolení sú k dispozícii pokročilejšie nastavenia. Na obrázku \ref{rcplus_engine} je zobrazená široká škála dodatočných nastavení pre motor. Aplikácia ponúka širokú škálu nastavenia nielen pre zvuk motoru, ale aj pre ostatné komponenty. V hornej časti lišty je možné prepnúť na nastavenie bŕzd a turbodúchadla (obr. \ref{rcplus_engine}).  

\newpage
\subsection{Simulátor zvuku motora Carson Motor-Sound unit}
Nemecký výrobca RC modelov a príslušenstva Carson ponúka viacero zvukových modulov pre diaľkovo ovládané automobily. Cena všetkých ponúkaných modulov sa na oficiálnej stránke \href{https://www.carson-modelsport.com/carson_en/search/?s=Motor-Sound}{www.carson-modelsport.com} pohybuje priemerne okolo 55 €. Výrobca ku svojim  produktom nedodáva podrobnejšie informácie týkajúce sa softvérovej časti. K dispozícii sú tak len informácie o zapojení, fyzické vlastnosti a parametre modulu.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.45\textwidth]{obrazky-figures/carson.png}
	\caption[Zvukový modul Carson Motor-Sound Off-Road]{Zvukový modul Carson Motor-Sound Off-Road\footnotemark}
	\label{carson}
    
\end{figure}
\footnotetext{zdroj: \url{https://cdn.myshoptet.com/usr/www.htmodel.sk/user/shop/big/151987-1_zvukovy-modul-motor-sound-unit-truck-pre-nakladne-auta.jpg?63177276}}

Na obrázku \ref{carson} je dodávaná zostava na ozvučenie pre terénne modely. Ostatné zvukové moduly dodávané výrobcom pre kategórie ako cestné modely alebo nákladné autá sa líšia iba výsledným výstupným audiom. Zakúpený modul tak neumožňuje prispôsobovanie a~zmenu zvuku pohonnej jednotky.

Zapojenie modulu je pomocou rozdvojovacieho signálového Y kábla. Napájanie je pomocou akumulátora slúžiaceho na pohon vozidla. Po pripojení je potrebné pomocou manuálu modul kalibrovať. Na kalibráciu je vhodné využiť výrobcom dodávaný manuál obsahujúci presný postup potrebných krokov. Následne už je zariadenie pripravené  na použitie. Užívateľ si ešte môže priamo na module zmeniť hlasitosť. Samostatný servokonektor iba s jedným signálovým vodičom sa zapojí do portu prijímača, ktorý slúži na ovládanie klaksóna.


\chapter{Zhodnotenie súčasného stavu a plán práce}
\label{exist_riesenia}
Cieľom kapitoly je analyzovať komerčne používané a predávané riešenia.  V druhej časti kapitoli je uvedená motivácia a zvolené kritéria pre implementáciu. Treťou časťou je predstavenie navrhovaného riešenia, ktorý zahŕňa prehľadne navrhnutý plán implementácie. Následne sa sekcia zaoberá zadaním hardvérového a softvérového riešenia. 

\section{Analýza existujúcich riešení}
Analýza dostupných riešení uvedených v sekcii \ref{exist_riesenia} je vyhodnotená a pre jednoduchosť zobrazená pomocou nasledujúcej tabuľky \ref{tabulka_riesenia}. Je zameraná na praktické aspekty, ktoré sa s~používaním viažu.


\begin{table}[h!]
\begin{tabular}{
>{\columncolor[HTML]{ECF4FF}}c |c|c|}
\cline{2-3}
\multicolumn{1}{l|}{\cellcolor[HTML]{FFFFFF}}                                     & \cellcolor[HTML]{FFFFC7}\textbf{ESS-One} & \cellcolor[HTML]{FFFFC7}\textbf{Carson Motor-Sound unit} \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{cena}}                       & od 89 \$                                  & od 55 €                                                  \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{zmena hlasitosti}}           & áno                                      & áno                                                      \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{možnosť zmeniť zvuk motora}} & áno                                      & nie, len zmenou variantu                                 \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{dostupnosť výrobku}}         & dobrá                                    & záleží od variatu                                        \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{dostupnosť softvéru}}        & nedostačujúca                            & neposkytuje sa                                           \\ \hline
\multicolumn{1}{|c|}{\cellcolor[HTML]{ECF4FF}\textbf{napájanie}}                  & batéria vozidla                          & batéria vozidla                                          \\ \hline
\end{tabular}
\caption{Porovnanie dostupných riešení} 
\label{tabulka_riesenia}
\end{table}

Z uvedených dát v tabuľke \ref{tabulka_riesenia} vyplýva, že modul Carson je lacnejšia alternatíva ESS-One poskytujúca počas prevádzky rovnakú funkčnosť. Výrazný rozdiel nastáva v momente, keď si chce užívateľ zmeniť predvolený zvuk motora. Pri module Carson taká možnosť nie je. Dá sa vybrať len nový produkt pre inú kategóriu automobilov. 

\newpage
\subsection{Vlastnosti ESS-ONE}
Produkty ESS-ONE patria k najpoužívanejším riešeniam na ozvučenie, preto sú vlastnosti zanalyzované podrobnejšie. Najväčšie nedostatky by sa dali zhrnúť pomocou nasledujúcich bodov:
\begin{itemize}
    \item{zlá dostupnosť softvéru} 
    \item{vysoká cena} 
    \item{dostupnosť produktov}
\end{itemize}

Na slovenských internetových obchodoch sa dá bezproblémovo zakúpiť len drahšia verzia ESS-DUAL+. Cena však nie je o moc vyššia, preto nejde o najväčšiu slabinu. Užívateľov môže pri konfigurácii zamrzieť obmedzený počet bezplatných nahrávok. Za stiahnutie zvukových prejavov špecifickejších alebo legendárnejších automobilov si tak užívateľ musí často priplatiť. Niektorým používateľom nemusí vyhovovať nutná registrácia do aplikácie.

Najväčší problém je však dostupnosť aplikácie RCPlus na vlastné nastavenie. V dobe písania práce sa softvér nedal stiahnuť z originálnej stránky, ako je uvádzané. Pri opätovných pokusoch o získanie softvéru boli všetky pokusy ukončené presmerovaním na stránku s~chybovým hlásením, že bol prístup zamietnutý. Softvér sa v originálnom balení formou pevnej pamäte nedodáva. Bez poskytnutého softvéru sa dá vybavenie používať, avšak cena približne 100€ nie je adekvátna. 

Stiahnutie softvéru sa napokon podarilo z menej dôveryhodného zdroja. Tu však nastal problém s inštaláciou. Inštalačný súbor bol v znakovom jazyku, pravdepodobne sa jednalo o~čínštinu. Aj napriek vyskúšaniu všetkých možností, inštalácia skončila chybou. Po nájdení a stiahnutí anglickej verzie, inštaláciu zastavil antivírusový softvér. Keďže súbor pochádzal z nedôveryhodného zdroja, inštaláciu som zamietol. Vzniknuté chyby sú zachytené na nasledovnom obrázku \ref{rcplus_chyby}.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.9\textwidth]{obrazky-figures/rcplus_chyby.png}
	\caption{Vzniknuté chyby pri inštalácii softvéru RCPlus}
	\label{rcplus_chyby}
\end{figure}

Po dvojtýždňovom opätovnom pokuse sa podarilo stiahnuť softvér z oficiálneho zdroja. Inštalácia však opäť neprebehla hladko. Už na začiatku inštalácie vyskočilo okno so správou, že sa softvér nepodarilo nainštalovať. Pred touto situáciou varuje aj manuál na používanie aplikácie. Pre úspešne dokončenie inštalácie je potrebné vypnúť firewall, čo nie je ideálne riešenie. Zlou dostupnosťou sa zaoberajú aj viaceré internetové fóra. Produkty ESS-ONE tak bez poskytnutého softvéru nemajú veľký význam a užívateľ sa musí uspokojiť iba s~prednastaveným zariadením.

\newpage
\section{Zámer a ciele vlastnej implementácie}
\label{analyza_a_ciel}
Analyzoval som stav súčasných riešení a vzhľadom na tému zadania a osobných záujmov som sa po diskusii s vedúcim práce rozhodol vytvoriť vlastnú implementáciu ozvučenia. Rozhodnutie bolo ovplyvnené viacerými faktormi:
\begin{itemize}
    \item {Chcel som ozvučiť vlastný model automobilu.}
    \item {Vytvorenie cenovo dostupnejšieho riešenia než je na trhu.}
    \item {Vyskúšať si prácu s mikropočítačmi a ich riadenie na základe obdržaného vstupu.}    
\end{itemize}


Cieľom práce je tak ozvučiť vlastný model a vytvoriť tak riešenie, ktoré by mohlo byť univerzálne používané vo forme produktu.
Výsledné riešenie tak podliehalo viacerým požiadavkám:
\begin{itemize}
    \item {Výsledný produkt musí byť lacnejší ako komerčne predávané zariadenia.}
    \item {Možnosť upravovať nastavenie výkonu motora.}
    \item {Zariadenie musí byť dostatočne hlasné.}
    \item {Výsledné hardvérové riešenie musí byť kompaktné aby sa zmestilo pod karosériu modelu.}
    \item {Napájanie pomocou jednej batérie modelu, hardvér na ozvučenie tak nepotrebuje vlastnú batériu.}
\end{itemize}

\section{Návrh implementácie}
\label{plan_prace}
Pre dosiahnutiu úspešného cieľu práce je potrebné úlohu rozdeliť na podrobnejšie tematické časti. V každej časti je potrebné detailné zamyslenie a navrhnutie ideálnej možnosti implementácie. To možno dosiahnuť vhodných zvolením kritérií pre jednotlivé časti. Kritéria jasne definujú kľúčové vlastnosti, ktoré by mali byť dodržané. Navrhovaný postup práce je rozdelený na menšie kroky, ktoré je potrebné postupne realizovať:

\begin{itemize}
    \item{zvolenie vhodného modelu na realizáciu práce,} 
    \item{výber vhodného hardvéru pre ozvučenie,} 
    \item{navrhnutie algoritmu na generovanie zvuku,}
    \item{zapojenie hardvéru potrebného na generovaniu zvuku k RC modelu,}
    \item{analýza a spracovanie signálu z prijímača,}
    \item{implementácia,}     
    \item{ladenie a testovanie.}     
\end{itemize}

Návrh práce je rozdelený do dvoch najdôležitejších tematických celkov, a to na návrh hardvérovej \ref{navrh_hardveru} a návrh softvérovej implementácie \ref{navrh_softveru}. 

\newpage
\subsection{Zadanie hardvérovej implementácie}
\label{navrh_hardveru}

Výber hardvéru podlieha najväčšiemu množstvu kritérií. Prvým kritériom je jednoznačne jeho cena. Najdrahšou  položkou je mikropočítač. Preto je dôležité zvoliť takú vývojovú dosku, aby jeho cena spolu s ostatným hardvérom nebola vyššia ako uvedené už existujúce riešenie.  Zároveň však musí byť dostatočne výkonný na prácu s audiom. Pri výbere je rozhodujúcim faktorom aj jednoduchý spôsob napájania, pričom nárok je kladený aj na dostupnosť súčiastok. 

K mikrokontroléru sa viaže aj výber reproduktora. Výsledný zvuk musí byť dostatočné hlasný, aby nebol prekrytý okolitými zvukmi. Preto sa považuje ako nutnosť použiť kompatibilný zosilňovač zvuku. Ak nebude zvolený mikrokontrolér disponovať dostatočným úložiskom, bude použitý externý slot na pamäťovú kartu. Zapojenie si vyžaduje použiť väčšie množstvo vodičov a nepredpokladá sa použitie konkrétnejšieho špeciálneho konektora.


%\subsection{Zvolenie vhodného modelu na realizáciu práce}
%Pri voľbe modelu je potrebné si určiť  akú kategóriu modelu v práci použiť.  Išlo o jednoduché rozhodnutie, že ozvučený model bude z kategórie automobilov. Výber modelu odnáša so sebou určité kritéria. Model musí byť dostatočne robustný a pod karosériou musí disponovať  dostatočným množstvom miesta na uloženie navrhnutého hardvérového riešenia. Hlavným kritériom je jeho kompatibilita. Nesmie sa jednať o jednoduchú dračku pre deti. Elektronika zvoleného modelu musí zodpovedať zapojeniu aké sa bežne používa na drahších modeloch. Uľahčí sa tak navrhovanie hardvéru a zaručí sa tým jeho kompatibilita s pripojením na akýkoľvek iný diaľkovo ovládaný automobil.

\subsection{Zadanie softvérovej implementácie}
\label{navrh_softveru}
Pri softvérovej časti je najdôležitejšie navrhnúť výsledný algoritmus, od ktorého závisí výsledná kvalita. Pre správne fungovanie algoritmu je však potrebné mať správne spracovaný signál z prijímača, podľa ktorého sa algoritmus bude riadiť. Potrebné je tak najskôr spraviť analýzu signálu a následne implementovať algoritmus. 

Po zapojení hardvéru k vozidlu je nevyhnuté korektné obdržanie signálu pomocou mikropočítača. Po úspešnom zachytení je dôležitá jeho analýza. Zo signálu je potrebné presne určiť jeho striedu alebo čas, kedy je signál v logickej jednotke. Je preto dôležité dávať pozor na to, aby nedochádzalo k vytváraniu šumu, ktorý môže spôsobovať prudké výkyvy alebo rozptyl. Na určenie správnosti výsledného obdržaného signálu by sa dal použiť osciloskop. Náhradou môže byť vykresľovanie grafu s obdržanými hodnotami. Dôraz je kladený na dostatočne presné hodnoty.

Algoritmus na generovanie sa následne riadi časom zapnutia zo získaného signálu z prijímača na vozidle. Pre jednotlivé škály je mapovaný konkrétny zvuk odpovedajúci požadovanému výkonu. Zvuky pre jednotlivé škály sú získané rozstrihaním nahrávky spaľovacieho motora na krátke úseky, ktoré pokrývajú celý rozsah otáčok motora. Pri generovaní zvuku dochádza k spájaniu jednotlivých krátkych vzoriek na základe prichádzajúceho signálu. Pri spájaní sa aplikuje prelínanie, aby sa zamedzilo výslednému skokovému zvuku a vytvoril sa tak realistický dojem zrýchľovania alebo spomaľovania. Pri výslednej implementácii je požadovaný realistický prejav motora a vyhovujúca odozva na plynovú páčku.







\chapter{Realizácia návrhu}
\label{moje_riesenie}
Pri implementácii výsledného ozvučenia si vyžadovalo dodržať kroky uvedené v časti \ref{plan_prace}. Navrhnutou dekompozíciou na menšie ciele sa urýchlil a sprehľadnil proces vývoja. Ukázalo sa, že je dôležité nepreskakovať jednotlivé kroky. Každú úlohu bolo potrebné adekvátne dokončiť, aby sa mohlo začať s implementáciou ďalšej časti. Úlohou kapitoly o vlastnej implementácii je priblíženie a oboznámenie s krokmi vedúcimi k výslednému riešeniu. V~jednotlivých sekciách sú tak opísané kroky implementácie navrhnutého postupu.

\section{Koncepcia riešenia}
Na navrhnutie hardvéru je nutné mať znalosti, ako funguje model. Pomocou znalostí vznikla nasledujúca schéma na obrázku \ref{riesenie} odpovedajúca hardvéru na vozidle.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.85\textwidth]{obrazky-figures/rc_nakres.pdf}
	\caption{Navrhnutá schéma hardvérovej implementácie.}
	\label{riesenie}
\end{figure}

Ilustrácia na obrázku \ref{riesenie} zobrazuje kľúčové komponenty pre túto prácu. Zároveň kvôli jednoduchosti na nej nie sú podrobne zobrazené všetky hardvérové komponenty, ktoré je potrebné na model doplniť. Hnedá krabička (ozn. MCU) reprezentuje pripojený mikropočítač na generovanie zvuku. Jeho napájanie je zabezpečené pomocou batérie zabezpečujúcej pohon vozidla. Napájacie káble sú označené červenou a modrou farbou. Zdrojový signál na ovládanie vozidla obdržaný prijímačom je zobrazený pomocou zeleného vodiča. Zelený vodič sa rozdvojí a signál  prúdi nielen do elektronického regulátora otáčok, ale aj do pripojeného mikropočítača. Tu sa signál spracuje a na základe algoritmu \ref{final_algoritmus} prehráva pripojený reproduktor výsledný zvuk.





\section{Výber modelu na ozvučenie}
Jedným z hlavných kľúčových prvkov celej práce je RC model. Už pri výbere práce bolo jednoznačné, že práca bude zameraná práve na ozvučenie modelu automobilu. Pri voľbe zohral veľkú úlohu fakt, že najväčšie skúsenosti a najbližší vzťah sa spája práve s automobilmi, pričom som vlastnil zopár modelov. Vzťah k autám však nebol jediný argument, ktorý rozhodol o výbere týmto smerom. V súčasnosti existuje mnoho firiem a priaznivcov, ktorí sa venujú práve ozvučeniu automobilov. Pri súčasnom trende znižovania emisií sa často môžeme stretávať práve v odvetví automobilov s pridávaním športovejšieho zvuku motora do audio sústavy vo vozidle. Z toho dôvodu má byť cieľom privodenie vodičom, ktorí obľubujú zvuk áut, lepší zážitok z jazdy. Ozvučenie lietadla alebo helikoptéry mi prišlo z fyzikálneho hľadiska náročné. Okrem veľkého hluku, ktorý vrtule spôsobujú, nastáva problém aj so vzletovou hmotnosťou. Dostatočne výkonný reproduktor alebo zostava reproduktorov by mohla byť príliš ťažká na vzlet. Taktiež by došlo k narušeniu rozloženia hmotnosti a~lietadlo či helikoptéra by mali zhoršené manévrovacie vlastnosti.

Prvou fázou vlastnej implementácie bolo vhodné zvolenie modelu. Ako už bolo spomenuté, doma som už zopár modelov áut vlastnil. Po dôkladnejšom preštudovaní materiálov na získanie znalostí na začiatok implementácie začala realizácia výberu. Po bližšom preskúmaní troch vlastnených modelov bolo odhalené, že ani jeden z týchto modelov nie je vhodný na implementáciu. Hlavnou príčinou vylúčenia všetkých doterajších modelov bol ich prijímač. Na všetkých doteraz vlastnených modeloch sa nachádzal prijímač označovaný ako 2v1. Teda tento prijímač zohráva úlohu aj ako elektronický regulátor otáčok. Výhodou týchto prijímačov je hmotnosť aj nižšia nákupná cena ako kúpa samostatného prijímača a elektronického regulátora otáčok. Pre tento projekt bol však 2v1 prijímač nevyhovujúci. Hlavný dôvod je, že z prijímača sa nedá jednoduchou cestou získať signál potrebný pre získanie hodnoty signálu PWM pre pohon vozidla. Získať sa dá jednoducho len signál ovládajúci servomotor riadenia. Na získanie by bolo potrebné výrazné zasiahnutie do jeho konštrukcie. Musel by byť rozobraný plastový obal, v ktorom je elektronika uložená. Následne by sa musel natvrdo priletovať vodič na miesto, odkiaľ sa dá signál získať. Z tohto dôvodu bola zvolená elegantnejšia cesta, a to kúpa nového modelu, ktorý bude pre tento projekt vhodnejší. Zvolený zakúpený model je  Maverick Phantom XT 1/10 RTR Electric (obr. \ref{moj_model}). 

\newpage
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.7\textwidth]{obrazky-figures/phantom.png}
	\caption{RC automovil Maverick Phantom}
	\label{moj_model}
\end{figure}
Jedná sa o model v mierke 1:10. Model je vybavený rovnakým prijímačom, ako je na obrázku \ref{prijimac} a oddeleným elektronickým regulátorom otáčok, ako je na obrázku \ref{realesc}. Tento oddelený spôsob konštrukcie sa využíva pri väčšine profesionálnejších modelov. Model disponuje pohonom všetkých štyroch kolies, diferenciálmi na oboch nápravách, olejovými tlmičmi, kvalitnými guľôčkovými ložiskami a množstvom iných technických vymožeností, ktoré nezohrávajú významnú rolu pri tejto práci. Rozmery modelu sú 415 mm na dĺžku a 325 mm na šírku. Pod plastovou karosériou je tak dostatok miesta na umiestnenie hardvéru potrebného na ozvučenie.

Ovládanie modelu je za pomoci sofistikovaného diaľkového ovládača MTX-244 (obr.~\ref{ovladac}), ktorý zaisťuje plnohodnotné prežitie jazdy vďaka svižnej odozve na plyn a riadenia. Medzi jeho najväčšie výhody patrí možnosť nastavovania si viacerých parametrov vozidla. 


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/ovladac_ocislovany.png}
	\caption{Diaľkový ovládač MTX-244}
	\label{ovladac}
\end{figure}

Najvýznamnejšie tlačidlo pri tejto práci je tlačidlo na nastavovanie voľnobehu motora, ktoré je na fotke \ref{ovladac} označené číslom 3. Pomocou neho sa dá zvyšovať alebo znižovať čas zapnutia, ktorý má ovládač vysielať, keď sa páčka na plyn nachádza v neutrálnej polohe. Štandardná hodnota 1500 $\mu$s sa tak dá zmeniť radovo v desiatkach mikrosekúnd. Ďalšie významné tlačidlá sú označené číslami 1 a 2. Tlačidlo označené číslom 1, slúži na zmenu hornej hranice PWM signálu. Pôvodná hranica 2100 $\mu$s sa tak dá zmeniť smerom nadol radovo v stovkách až po hranicu 1700 $\mu$s. Dôjde k zníženiu maximálnej rýchlosti vozidla smerom vpred, ale k zlepšeniu ovládania v nízkych rýchlostiach, keďže sa bude používať rovnaká dráha páčky pre menší interval. Tlačidlo označené číslom 2, slúži na zmenu dolnej hranice PWM signálu. Pôvodná hranica 1000 $\mu$s sa tak dá zmeniť až na 1350 $\mu$s. Tlačidlom, ktoré označuje číslo 4, sa mení hodnota času zapnutia pre ovládanie smeru vozidla. Pôvodná hodnota 1500 $\mu$s sa dá modifikovať v prípade, že má vozidlo tendenciu mierne zatáčať v~neutrálnej polohe. K tomu sa pomocou tlačidla, ktoré označuje číslo 5, obojstranne zmenšuje interval pre ovládanie servomotora, čím dôjde k zmenšeniu maximálneho vytočenia kolies do strán. 

Možnosti nastavenia bolo nutné pri implementácii zohľadniť. Užívateľ má tak možnosť si jednotlivé parametre jednoducho zmeniť na jednom mieste. Do úvahy bol zahrnutý tiež výrobcom odporúčaný spôsob ovládania. Z toho hlavné kroky sú zapnutie najskôr ovládača a~až následne modelu automobilu. Ak nedôjde k detekcii signálu pri spustení modelu, užívateľ je o tom upozornený chybovou hláškou.

\section{Hardvérová implementácia}
Pre ozvučenie modelu bolo potrebné zvoliť vhodný hardvér, pričom pri výbere zohrávala dôležitú úlohu výsledná kvalita a hlasitosť zvuku. Vhodnú cestu bolo potrebné zvoliť aj z finančného hľadiska. Medzi hlavné kritéria spadala teda cena a dostupnosť jednotlivých komponent. Podrobné zapojenie súčiastok k vývojovej doske je uvedené v prílohe \ref{priloha_zapojenie}. 

\subsection{Výber mikrokontroléru}
Najdôležitejšia bola voľba mikrokontroléru, ktorý bude zachytávať signál z prijímača na RC modeli a bude riadiť celé generovanie zvuku. Výber bol zameraný na mikrokontrolér, ktorý je dostatočne lacný a poskytne požadovaný výkon. 

Prvou voľbou bola doska Raspberry Pi 4 model B zapožičaná od fakulty. Hoci to bola moja jediná vývojová doska, ktorú som dovtedy vlastnil, túto voľbu som však zamietol ešte v rannej fáze. Napriek popularite tejto dosky je jej dostupnosť na Slovenku na zlej úrovni. Taktiež jej cena sa približuje sume, za ktorú sa dá kúpiť komerčne predávané riešenie na ozvučenie modelu. Základná verzia Raspberry Pi 4 model B s 2 GB pamäte RAM sa dá zakúpiť za cenu od 46 €. Dostupnosť je však často otázna a jej výkon zbytočne mnohonásobne prevyšuje požiadavky práce.

Výslednou voľbou sa stala vývojová doska ESP32 DEVKIT V1. Je ľahko dostupná za priaznivú cenu, ktorá sa pohybuje v cenovej relácii do 10 €. Jej napodobneniny z krajín vychádzajúceho slnka sa dajú zohnať za polovičnú cenu. Otázna je však kvalita spracovania a implementácie. Napodobneniny často disponujú menším výkonom a vyššou spotrebou energie. Použitá doska ESP32 bola zakúpená na slovenskom internetovom obchode za cenu 8.9 €. 

Každú vývojovú dosku je potrebné napájať. Najlogickejšie a najefektívnejšie napájanie je využitie jednej batérie. Na  napájanie sa používa 1800 mAh Ni-MH batéria použitá na napájanie celého vozidla. Jedná sa o základnú kapacitu, ktorá sa dá podľa manuálu dodávaného výrobcom rozšíriť nahradením väčšej batérie. Prívod napätia je do ESP32 dosky zabezpečený pomocou Y signálového káblika. Jednotný koniec je napojený do prijímača. Do prvého rozdvojenia je napojený elektronický regulátor otáčok, ktorý zabezpečuje napätie pre funkčnosť prijímača a ESP32. Z prijímača sa odtiaľto získava signál potrebný na ovládanie motoru. Do druhého rozdvojenia je zapojené ESP32 tak, že jeho napájanie je zabezpečené pomocou GPIO pinov označených ako Vin a GND. Odtiaľto sa taktiež získava potrebný signál, ktorý je napojený na pin D34, v kóde označovaný ako \verb|RC_PWM_PIN|. 
\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.6\textwidth]{obrazky-figures/zaponie_esp.png}
	\caption{Zapojenie ESP32 a prívod signálu}
	\label{zapojenie_esp}
\end{figure}

Úspešné privedenie napätia signalizuje rozsvietenie vstavanej červenej LED diódy na vývojovej doske (viď fotka \ref{zapojenie_esp}).

\subsection{Výber hardvéru na tvorenie zvuku}
Pri výbere hardvéru na vydávanie zvuku je potrebné zohľadniť podporu protokolov kompatibilnú s ESP32. Výsledný zvuk je vytváraný za pomoci reproduktora a zosilňovača. Zvolený zosilňovač nesie označenie MAX98357. Jedná sa o zosilňovač používajúci protokol I2S. I2S (alebo IIS) zbernica je špeciálne navrhnutá pre komunikáciu medzi digitálnymi audio/zvukovými zariadeniami. Protokol je podobný I2C, avšak je optimalizovaný pre posielanie audio dát. Výstup modulu je 3.2 W pri 4 Ω reproduktore.  K uvedenému modulu je pripojený reproduktor s priemerom 4 cm disponujúci impedanciou 4 Ω a maximálnym výkonom 3 W. Použitý hardvér je zobrazený na obrázku \ref{audio_hardver}.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.5\textwidth]{obrazky-figures/audio_hardver.png}
	\caption{Hardvér zabezpečujúci zvukový výstup}
	\label{audio_hardver}
\end{figure}

Z finančného hľadiska ide o taktiež ľahko dostupné komponenty. Použitý zosilňovač bol zakúpený za 4.95 €, pričom sa jedná sa o druhú najdrahšiu položku potrebnú na ozvučenie. Reproduktor bol zakúpený za 2.2 €. 

\subsection{Ostatný hardvér}
K ostatnému hardvéru patria súčiastky potrebné na konfiguráciu výslednej implementácie a~dobrovoľne voliteľný hardvér (obr. \ref{ostatny_hardver}).
Na nastavovanie parametrov výsledného softvéru sa používajú dva potenciometre značky PIHER. Zvolené potenciometre sú lineárne uhlíkové s~odporom 100 k$\Omega$. Prvý z dvojice potenciometrov slúži na úpravu výslednej hlasitosti zvuku. Pomocou druhého potenciometra sa nastavuje výkon motora, čo znamená, ako rýchlo má motor zvyšovať a znižovať otáčky. Cena za kus bola 0.48 €.

Pri použití potenciometrov s veľkým odporom je potrebné použitie kondenzátorov s~malou kapacitou. Ich úlohou je obmedziť vytváranie šumu, ku ktorému by mohlo dochádzať. Zvolená kapacita je 100 $\mathrm {n}$F s cenou 0.08 € za kus.

Ako doplnkový komponent je pri ozvučení použitý ultrazvukový merač vzdialenosti HC-SR04. Jeho detekčná vzdialenosť je od 1 cm do vzdialenosti 3 m. Pri implementácii zohral úlohu ako parkovací senzor. Tento senzor nemusí byť použitý a dá sa v zdrojovom kóde jednoducho vypnúť pomocou konštanty \verb|ULTRASONIC_ENABLE|. Nákupná cena senzoru bola 1.45 €.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.5\textwidth]{obrazky-figures/ostatny_hardver.png}
	\caption{Použité potenciometre, kondenzátory a ultrazvukový senzor}
	\label{ostatny_hardver}
\end{figure}

\newpage
\subsection{Zapojenie hardvéru a výsledná cena}     
Na obrázku \ref{finalne_zapojenie} je znázornené finálne zapojenie elektronických súčiastok k použitému modelu automobilu. Presnejší popis zapojenia s tabuľkovou reprezentáciou je k dispozícii v~prílohe \ref{priloha_zapojenie}.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.8\textwidth]{obrazky-figures/finalne_zapojenie.png}
	\caption{Hardvér použitý na ozvučenie}
	\label{finalne_zapojenie}
\end{figure}

Výsledná suma za hardvérovú implementáciu sa ustálila na hodnote \textbf{22.08 €}. Cena zahŕňa vyššie uvedené hardvérové položky, a to vývojovú dosku, zosilňovač, reproduktor, potenciometre, kondenzátory a ultrazvukový merač vzdialenosti. Do výslednej sumy je zahrnutý Y signálový kábel zakúpený v modelárstve za cenu 3.46 €. Pre implementáciu nie je nutná kúpa káblu, ale dá sa skonštruovať aj doma. V takom prípade je vhodné použiť vodiace kábliky určené pre Arduino a Raspberry. Konektory vodičov pasujú do konektoru prijímača. Vo výslednej sume nie sú započítané vodiace káble na zapojenie súčiastok a ani cín potrebný na spájkovanie konektorov.



\section{Princíp navrhnutého algoritmu}
\label{final_algoritmus}
Návrh algoritmu na ozvučenie bola najdôležitejšia časť práce. Pri jeho návrhu bola dodržaná počiatočná myšlienka použiť zvuk existujúceho spaľovacieho motora. Zdrojová nahrávka je rozstrihaná na krátke vzorky. Dĺžka vzoriek sa pohybuje okolo hodnoty 250 ms. Celkové množstvo použitých vzoriek je 23, a teda existuje 23 rôznych úrovní pridávania plynu. Počet zvukových súborov je možné navýšiť. Dôležité je pri tom pridanie súborov do pamäti zariadenia. Po pridaní súborov dopĺňajúcich už použité súbory je potrebné zmeniť konštantu na citlivosť plynu \texttt{STEPS}. Dôležité je to z pohľadu, aby sa všetky nahrávky zmestili do rozsahu od striedy pre neutrál, po maximálnu možnú striedu používanú pri ovládaní. Použitých 23 úrovní je dostačujúcich.


\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.9\textwidth]{obrazky-figures/algoritmus_schema.pdf}
	\caption{Tok informácií v navrhnutom algoritme}
	\label{algoritmus_schema}
\end{figure}
\newpage

Hlavnou zjednodušenou myšlienkou algoritmu je používanie krátkych nahrávok motora, ktoré sú na základe vyhodnoteného stavu posielané na výstup. 
Postup algoritmu po prijatí signálu z prijímača je znázornený pomocou obrázka \ref{algoritmus_schema}.
Stavebným prvkom algoritmu je využívanie konštantných otáčok motora, ktoré sa dajú pomerne ľahko získať z nahrávok. Pri udržiavaní plynovej páčky tak dochádza k prehrávaniu nahrávky s konštantnými otáčkami motora, pričom otáčky odpovedajú polohe plynového pedála. Zvuk konštantných otáčok sa tak prehráva po dobu, keď je plynová páčka udržiavaná nehybne v určitej polohe. Pri zmene polohy páčky dôjde k vyhodnoteniu či model brzdí, alebo zrýchľuje, alebo spomaľuje. V~prípade akcelerácie a decelerácie sa na základe uchovávania a vyhodnocovania signálu určí, aká veľká nastala zmena. Vyhodnocovanie je podmienené na základe hodnoty potenciometra na ovládanie výkonu. Ak je nastavený vysoký výkon, nárast otáčok motora bude rýchly, nikdy však nedôjde k skokovému nárastu alebo poklesu otáčok. Pri ustálení polohy plynovej páčky a dosiahnutí otáčok sa na výstup pošle pole s nahrávkou konštantných otáčok motora odpovedajúcej úrovni polohy.



\section{Tvorba a ukladanie zvukových stôp}
Pred samotnou softvérovou implementáciou bolo potrebné rozhodnutie, aký zvuk motora bude výsledný softvér na ozvučenie simulovať. Prvotný plán bolo použitie osemvalcového naftového motora kvôli charakteristickému výraznému zvuku. Výsledná voľba padla na použitie staršieho osemvalcového benzínového motora s karburátorom. Svoje uplatnenie si našiel v automobiloch označovaných ako muscle car, prípadne v akceleračných disciplínach.

Označenie použitého motora je Chevy Big Block 582. Jedná sa o veľkoobjemový motor s objemom 582 kubických palcov, čo je v prepočte približne 9500 kubických centimetrov. Zvuk motora bol získaný z verejného videa na YouTube z kanála TopGun na adrese \url{https://www.youtube.com/watch?v=d9qjoz5iZlI&t=3s&ab_channel=TopGun} . Motor vo~videu pochádza na základe chladenia z lode, avšak v automobilovom priemysle má približne rovnaký zvukový prejav.


Tvorba audia bola realizovaná za pomoci voľne dostupného softvéru na internete. Väčšina úkonov počínajúc analýzou a jednotlivými úpravami zvuku prebiehali v programe Audacity. Na ukladanie súborov do pamäte zariadenia v požadovanom formáte bol použitý program HxD.






\subsection{Tvorba audia pre konštantné otáčky motora}
Pri realizácii návrhu bolo potrebné získať nahrávky motora vyžadované pre implementáciu. Základnými a absolútne neodmysliteľnými nahrávkami sú krátke periodické zvučky pre rozdielne úrovne otáčok motora na základe polohy plynovej páčky na ovládači. Pri rôznych úrovniach plynu je potrebné prehrávanie adekvátnej periodickej zvučky reprezentujúcej zvuk motora pri daných otáčkach. Pre získanie nahrávok pre rôzne otáčky motora je potrebné spraviť analýzu zdrojovej nahrávky (obr. \ref{zvukmotoraaudacity}) a ich následne vyextrahovanie do jednotlivých krátkych súborov.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.65\textwidth]{obrazky-figures/zvuk_motora_audacity.png}
	\caption{Zdrojová nahrávka zvuku motora v programe Audacity}
	\label{zvukmotoraaudacity}
\end{figure}

Analýza zdrojovej nahrávky prebehla za pomoci programu Audacity. Nahrávka vyobrazená na obrázku \ref{zvukmotoraaudacity}  prešla postupnou analýzou v snahe nájsť úseky audia zachytávajúce požadované momenty. Pri pozitívnom nájdení časti záznamu s konštantnými otáčkami bola táto časť vyextrahovaná a uložená ako nová krátka zvučka. Z novo vytvorenej krátkej zvukovej stopy sa za pomoci sledovania a upravovania vzorkov určila perióda a prebytočné časti sa odstránili. Vznikol tak periodicky opakujúci, na seba nadväzujúci sa zvuk pri opätovnom prehrávaní. Dĺžka skladieb  dosahuje dĺžku od 200 do 300 ms. 
Zo zdrojovej nahrávky nebolo možné pokryť celé požadované spektrum konštantných otáčok. Príčinou je nedostatočné predvedenie motora v celej škále otáčok. Chýbajúce časti tak bolo potrebné doplniť. Na tieto účely nebolo možné využiť iný zdroj zachytávajúci motor v prevádzke, pretože nahrávky by zneli odlišne, čím by sa skazila výsledná kvalita. Chýbajúce časti tak bolo potrebné vytvoriť.
Vytvorenie by sa dalo uskutočniť zmenou rýchlosti prehrávania už vytvorených pasáží. Zmenu rýchlosti prehrávania nebolo možné implementovať použitou knižnicou \texttt{ESP8266Audio} z dôvodu jej nefunkčnosti v tomto smere. Problém je detailnejšie opísaný v~časti \ref{nedostatok_zmena_rychlosti}. Zvyšné chýbajúce časti boli vytvorené opäť pomocou programu Audacity.




\subsection{Tvorba audia pre parkovací senzor a chybové hlásenia}

Ozvučenie ultrazvukového senzoru na meranie vzdialenosti je  implementované za pomoci nástroja na generovanie frekvencií. Generátor bol nastavený tak, aby generoval signál s~frekvenciou 1700 Hz a tvar vlny bol nastavený na trojuholníkový. Táto frekvencia subjektívne najviac zodpovedala reálnemu tónu parkovacích senzorov. Dĺžka tejto nahrávky je presne pol sekundy. Signál bol vytvorený pomocou online nástroja na generovanie frekvencií dostupného na internetovej stránke \href{https://onlinetonegenerator.com/}{www.onlinetonegenerator.com}.

Pri tvorbe sa myslelo aj na jednoduchosť a nápomocnosť pri používaní. Ak dôjde počas behu programu k chybe znemožňujúcej pokračovať v behu programu, užívateľ je o tom informovaný pomocou reproduktora. Chybové hlásenia  v anglickom jazyku boli nahrané pomocou online prekladača od Google. Využitá bola funkcia čítania textu.

\subsection{Formát a ukladanie zvukových stôp}
Pre ukladanie súborov sa osvedčilo ukladanie vo formáte wav. Pri ukladaní vo formáte mp3 sa po znovuotvorení vytvorenej zvučky objavila tichá pasáž. Táto pasáž výrazne narúšala prehrávanie zvučky v cykle. Vytváralo to dojem, že výsledná zvuková stopa nie je periodická. Zvolený formát wav podporuje väčšinu jednoduchých hudobných prehrávačov, vrátane použitej voľne dostupnej externej knižnice \texttt{ESP8266Audio}. Výsledná vzorkovacia frekvencia súborov bola nastavená na 32000 Hz. Práve táto frekvencia ešte dostatočne zachováva kvalitu súborov pri prehrávaní. Zároveň sa tak podarilo zmenšiť veľkosť jednotlivých súborov. Všetky audio súbory sú uložené ako monofónny zvuk, a tak je ľavý a pravý kanál zmiešaný a smerovaný cez jeden zvukový kanál.

 Miesto uloženia je pomocou premenných do pamäti vývojovej dosky ESP32, a to v~súbore \texttt{/lib/Sounds.h}. Pri ukladaní wav súborov bolo nastavené a využité enkódovanie na 8 bitovú, neznamienkovú PCM (pulzná kódová modulácia). Vďaka tomuto kroku bolo jednoduchšie ukladanie do pamäti zariadenia. Prejaví sa to menším nárokom na pamäť pri ukladaní do pamäti mikrokontroléru. Na uloženie do premennej sa využil program HxD. Jedná sa o editor na zobrazovanie súborov v hexadecimálnom tvare. Otvorené súbory v~programe HxD sa dajú skopírovať ako pole vo formáte použitého jazyka C. Zvolený variant ESP32 disponuje 4 MB flash pamäte. Súbory nahraté do tejto pamäte zaberajú spolu približne 52.8\% kapacity.

\section{Softvérová implementácia}
Implementácia ozvučenia modelu je za pomoci jazyka C. Vyvíjanie a testovanie prebiehalo za pomoci voľne dostupného vývojového prostredia PlatformIO IDE. Používa sa a dá sa jednoducho získať ako rozšírenie v populárnom editore kódu Visual Studio Code. Štruktúra programu je pre prehľadnosť rozložená do dvoch priečinkov a tvorí nasledovnú adresovú štruktúru:

\begin{itemize}
    \item {\textbf{/lib} - knižnice pre hlavný program,} 
    \begin{itemize}
        \item {\textbf{Functions.h} - knižnica deklarujúca funkcie, ich dokumentácia}
        \item {\textbf{VariabelsConstants.h} - konštanty na ladenie ozvučenia a globálne premenné}
        \item {\textbf{Sounds.h} - knižnica ukladajúca zvuky motora v hexadecimálnom tvare do pamäte ESP32 }
    \end{itemize}
    
    \item {\textbf{/src} - zdrojové súbory,} 
    \begin{itemize}
        \item {\textbf{main.cpp} - hlavný zdrojový súbor}
    \end{itemize}
    
    \item {\textbf{platformio.ini} - konfiguračný súbor pre vývojové prostredie PlatformIO.}
\end{itemize}
%\subsection{Implementácia}

\subsection{Použité externé knižnice}
Súčasťou implementácie je použitie externej knižnice \textbf{ESP8266Audio} od autora Earle F. Philhowera. Celá knižnica je pod licenciou GPL. Jej hlavnou náplňou je spracovanie a~dekódovanie audio súborov vo formáte mod, wav, mp3, flac, midi, aac a rttl. Knižnica taktiež zabezpečuje prehrávanie audio súborov cez rozhranie I2S. Kompatibilná je s viacerými populárnymi vývojovými doskami. Nie je určená len pre ESP8266, ako by mohlo na prvý pohľad vyplynúť z názvu. Svoje uplatnenie nájde aj na doskách ESP32 a Raspberry Pi Pico.

Pomocou tejto knižnice je v práci spracované načítavanie wav súborov z pamäte zariadenia a ich následné prehrávanie cez rozhranie I2S poskytované vývojovou doskou ESP32.

\subsection{Zachytávanie signálu}
Pri detekcii a určovaní šírky signálu je zvolený Arduino kód s využitím externých prerušení. Nemožno použiť funkciu \texttt{PulseIn()}, ktorá by periodicky určovala šírku signálu v~hlavnej funkcii \texttt{loop()}. Táto funkcia spôsobuje oneskorenie, čo by malo v prípade tohto projektu drastické následky. Prehrávanie zvučiek motora by nebolo vôbec plynulé, naopak by výsledný zvuk pôsobil sekano.

Výhodou je teda spôsob využitia externých prerušení. Tie fungujú v konečnom dôsledku tak, že sa hlavný tok programu preruší, ak sa zistí špecifický externý signál. Zachytávanie signálu z prijímača je nastavené pomocou príkazu \texttt{pinMode(RC\_PWM\_PIN, INPUT)}. Konštanta RC\_PWM\_PIN reprezentuje pin číslo 34. V prípade ESP32 možno nastaviť ktorýkoľvek GPIO pin na zachytávanie prerušenia. Dôležité je použitie príkazu \texttt{attachInterrupt
(\dots)}, ktorý nakoniec preruší program, a potom zavolá určenú funkciu vždy, keď sa zistí určitý typ vonkajšieho signálu. Tento príkaz prijíma tri argumenty. Prvý argument je pre pin, ktorý detekuje signál vyvolávajúci prerušenie. V tomto prípade je zvolené nastavenie pinu prerušenia funkciou \texttt{digitalPinToInterrupt(RC\_PWM\_PIN)}. Druhým argumentom je názov funkcie, ktorá sa zavolá po spustení prerušenia. Funkcia nesie v programe názov \texttt{pulse\_width()}. Posledný argument definuje, kedy sa má prerušenie spustiť. Podľa dokumentácie je tento argument nastavený na konštantu \texttt{CHANGE}. Prerušenie sa spustí vždy, keď sa zmení hodnota na pine.

Vo funkcii \texttt{pulse\_width()} dôjde k určeniu času zapnutia a odfiltrovaniu nevalidných hodnôt. Vďaka odfiltrovaniu hodnôt nepatriacich do intervalu hodnôt času zapnutia používaných pri RC modeloch nedochádza k náhlym výkyvom behom programu.


\subsection{Vyhodnocovanie brzdenia}
Vyhodnocovanie brzdenia modelu vytvorilo samostatnú čiastočnú úlohu. Brzdenie modelu nie je zabezpečené osamostatneným spínacím prvkom na ovládači, ako by sa na prvý pohľad mohlo zdať. V rámci krátkej reakčnej doby a komfortu ovládania je zabezpečená pomocou hlavnej plynovej páčky. Ku aktivácii dôjde vždy, ak sa vozidlo pohybuje vpred a náhle sa plynová páčka presunie do polohy na cúvanie. K uvoľneniu dôjde po uvoľnení plynu z~polohy na cúvanie do neutrálu. Brzdenie funguje len vtedy, ak sa vozidlo pohybuje vpred. Keď model cúva a poloha plynovej páčky sa dá do pozície jazdy vpred, nedôjde k brzdeniu, ale razovému otáčaniu motora smerom vpred.

Pri vyhodnocovaní muselo byť zohľadnené prednastavené správanie. K detekcii brzdy dochádza vďaka ukladaniu predchádzajúcich piatich hodnôt signálu. Na základe nich sa vyhodnotí, či sa vozidlo pohybuje vpred. Brzdenie sa aktivuje, ak sa vyhodnotí, že vozidlo sa pohybuje vpred a príde hodnota signálu indikujúca smer jazdy vzad. Brzda ostane zapnutá až do momentu navrátenia plynu do neutrálnej polohy. Pre zlepšenie intuitívnosti a možnosti ladenia sa počas detekcie a doby brzdenia aktivuje brzdové svetlo. Brzdovým svetlom sa rozumie zabudované LED svetlo na vývojovej doske ESP32.


\subsection{Vyhodnocovanie akcelerácie a decelerácie}
Vhodné ozvučenie nie je len o skokovom prehrávaní zvučiek na základe úrovni plynu. Algoritmus by tak mal reagovať a dať najavo, že dochádza k zmene rýchlosti pohybu. Prechody medzi skladbami rôznych otáčok motora musia byť plynulé. Zároveň nejde len o jemný nepatrný prechod, ale dochádza k zvýrazneniu zvuku akcelerácie alebo decelerácie. Taktiež reakcia ozvučenia na náhlu zmenu plynu je okamžitá. 

Rovnako ako pri vyhodnocovaní detekcie brzdenia, aj pri zmene rýchlosti sa pracuje za pomoci predchádzajúcich hodnôt. Využitím predchádzajúcich piatich hodnôt šírky signálu je určená hodnota rozdielu zmeny signálu. Vyhodnocovanie akcelerácie funguje aj pre pohyb vpred, rovnako aj pre pohyb vzad. 

\begin{figure}[hbt]
	\centering
	\includegraphics[width=1.0\textwidth]{obrazky-figures/algoritmus.pdf}
	\caption{Správanie algoritmu pri pridaní plynu na maximum}
	\label{algoritmus}
\end{figure}
Správanie algoritmu pri zrýchľovaní je vysvetlené za pomoci obrázka \ref{algoritmus}. 
Čiernymi čiarami je znázornený priebeh času zapnutia signálu obdržaného z prijímača. Zelenými čiarami je zobrazený čas zapnutia pre ozvučenie. Je dôležité si všimnúť, že ozvučenie motora nezrýchľuje lineárne. Simuluje sa realistické správanie motora. V nižších otáčkach je reakcia na plyn pomalšia, preto aj nárast času zapnutia simulovaného motora na intervale 20 až 60 ms je pomalší. V stredných otáčkach oproti tomu prebieha zrýchľovanie rýchlejšie. Vo~vyšších otáčkach dochádza opäť k pomalšiemu nadobúdaniu otáčok. 

Akcelerácia a decelerácia závisí od nastavenia výkonu pomocou potenciometra.
Pri nastavení vysokého výkonu dochádza k rýchlej zmene otáčok. Naopak, pri nastavení menšieho výkonu mení algoritmus otáčky pomalšie. 



K aplikovaniu zrýchlenia vzad dôjde len za predpokladu, že hodnota času zapnutia indikuje cúvanie a nejedná sa tak o situáciu, keď vozidlo spomaľuje v jazde vpred. K vyhodnocovaniu zrýchlenia nedochádza počas doby aktivovanej brzdy.


\subsection{Prehrávanie zvuku}
\label{prehravanie_zvuku}
Prehrávanie audia je implementované pomocou funkcií z knižnice \textbf{ESP8266Audio}. Celkovo boli pri implementácii použité dva zvukové prehrávače pre rôzne účely.
\begin{itemize}
    \item {\textbf{Prehrávač audia z pamäte zariadenia} prehráva zvukové stopy uložené v pamäti zariadenia. Jednotlivé zvukové stopy sú uložené ako premenné a sú zadefinované v~súbore \texttt{/lib/Sounds.h}. Zabezpečuje ozvučenie počas zrýchľovania, spomaľovania a~v~neposlednej rade zaisťuje ozvučenie, keď je poloha plynovej páčky na konštantnej úrovni. Prehrávač sa zavolá v dvoch prípadoch. Prvý prípad nastane, ak algoritmus vyhodnotil, že je potrebné na výstup priradiť iné zvukové pole. Vtedy sa do výstupu priradí iné zvukové pole ako sa prehrávalo doteraz. V druhom prípade sa prehrávač zavolá, ak sa prehrávané pole blíži ku koncu. Tento stav nastáva vtedy, keď sa plynová páčka drží dlhšie v rovnakej polohe. }

    \newpage
    \item {\textbf{Prehrávač audia z pamäte zariadenia s využitím zmiešavača} je funkcionálne rovnako implementovaný ako vyššie spomenutý prehrávač z pamäte zariadenia. Líši sa však v tom, že tento prehrávač disponuje dvoma audio kanálmi. Vďaka tomu dokáže súčasne prehrávať dva audio súbory, ktoré zmieša a výsledok znie ako jedna nahrávka. K využitiu však dôjde iba vtedy, ak je povolené používanie ultrazvukového senzoru na meranie vzdialenosti. Pri veľmi pomalom cúvaní sa do prvého kanála prehráva zvuk motora a do druhého kanála sa prehráva pípanie. Intenzita pípania závisí od vzdialenosti prekážky za vozidlom. Ak sa za vozidlom vo vzdialenosti kratšej ako 40 cm nič nevyskytuje, prehráva sa iba zvuk motora. Naopak, ak sa vyskytuje za vozidlom nejaká prekážka, do druhého kanála sa začne pridávať pípanie. Čím bližšie sa  prekážka nachádza, tým častejšie sa pípanie ozýva. Pri rýchlom cúvaní, rovnako ako na reálnom automobile, nedochádza k používaniu senzoru. Tento prehrávač by dokázal úplne nahradiť prehrávač z pamäte zariadenia bez zmiešavača zvukov. Pri bežnom prevádzkovaní by sa používal len kanál na prehrávanie audia a druhý kanál by bol nečinný. Najväčším problémom je však výsledná kvalita zvuku. V prípade používania tohto prehrávača so zmiešavačom dochádza k pomerne veľkej intenzite šumu vo výslednom zvuku (popísané detailnejšie v časti \ref{zmiesavac}) . Z toho dôvodu sa používa iba pri cúvaní v kombinácii so senzorom na meranie vzdialenosti.}
\end{itemize}

\section{Možné rozšírenia}
\label{nedostatky}
Ako to už býva zvykom, tak každá softvérová implementácia narazí v priebehu vývoja na možné rozšírenia, ktoré by sa dali aplikovať. Niektoré sa objavia už počas fázy vývoja, prípadne až počas využívania projektu. Aj pri vývoji ozvučenia RC modelu vzniklo viacero možností na rozšírenie. Prvé dve navrhnuté rozšírenia by sa dali aplikovať až s príchodom novšej verzie knižnice \texttt{ESP8266Audio}, pretože v súčasnosti obsahuje ešte zopár nedostatkov.



\subsection{Využitie zmiešavača}
\label{zmiesavac}
Využitie zmiešavača by mohlo byť prínosné, pretože zvuk motora by mohli dopĺňať zvuky, ako napríklad turbomiechadlo alebo brzdy. K použitiu zmiešavača došlo len minimálne. Uplatnenie však nadobudne zmysel až s novou opravenou verziou použitej externej knižnice \texttt{ESP8266Audio}. Aktuálna verzia neposkytuje dostatočne kvalitný zvuk. Pri prehrávaní zvuku motora a pípania z ultrazvukového senzoru je v reproduktore počuť výrazný šum doprevádzaný hlasným pukaním a zvuk je skreslený. Problém pretrváva aj pri použití len jedného kanálu na prehrávanie. Tento výrazný nedostatok zapríčinil použitie prehrávača z pamäte zariadenia bez zmiešavača vždy, keď sa nepoužíva parkovací senzor. Problém sa prejavuje pri pomalom cúvaní s aktivovaným senzorom.

\subsection{Využívanie zmeny rýchlosti prehrávania}
\label{nedostatok_zmena_rychlosti}
Drobná závada externej knižnice \texttt{ESP8266Audio} je nefunkčná a nedostatočná možnosť zmeny rýchlosti prehrávania zvukových stôp pri ESP32. Zmenou rýchlosti prehrávania by sa dala zlepšiť modulácia zvuku a došlo by k zvýšeniu citlivosti na plynový pedál. Študovaním kódu knižnice som však zistil, že implementácia nie je poriadne dokončená. V prípade dokončenia by však podporovala len celočíselné násobky rýchlosti, čo by bolo pre tento projekt nedostačujúce.

\subsection{Pridanie väčšieho množstva zdrojových zvukových vzoriek motora}
\label{malo_audio_vzoriek}
Proces výberu vhodného motora, ktorého zvuk by sa dal napodobiť, je náročnejšie než sa zdá. Navrhnutým motorom pre ozvučenie bol práve americký osemvalcový motor. Získať jeho nahrávku s kvalitným audiom v rozsahu celej škály otáčkach je náročná záležitosť, pokiaľ nie je možnosť si nahrať zvukový prejav osobne. Mnoho nahrávok tak obsahovalo rôzne rušivé elementy v podobe pískania pneumatík, hlasov a okolitého prostredia. Nehovoriac o tom, že na každej nahrávke znel zvukový prejav inak. Chýbajúce zdrojové nahrávky tak museli byť vytvorené a doplnené za pomoci programu Audacity. Pre dosiahnutie ešte dokonalejšieho akustického prejavu by sa dalo doplniť nahrávky medzi úrovne, kde počuť trochu výraznejšiu zmenu otáčok. Zvýšením nahrávok z pôvodných 23 na napríklad 30 by sa získal úplne vyvážený zvuk.

Pre rôznorodejšie uplatnenie v praxi by bolo možné využitie viacerých zvukových variantov, z ktorých by si užívateľ mohol vybrať. 

\subsection{Posilniť výkon audio sústavy}
Pri použití rýchleho alebo hlučného modelu by bolo dobré na rozšírenie použiť výkonnejšiu audio sústavu. Pri jazde na plný plyn sa zvuk trochu stráca v prostredí. Výkon audio sústavy by tak mohol byť v špecifických prípadoch väčší. Riešením by mohlo byť použitie stereo zvuku namiesto monofónneho. Pridanie reproduktora by viedlo k zlepšeniu kvality zvuku pri rýchlej jazde.


\subsection{Vytvoriť kompaktný obal na hardvér}
Na uloženie hardvérových súčiastok by bolo vhodné vytvorenie praktického obalu. Obal by sa dal navrhnúť a vytvoriť pomocou 3D tlače.



\section{Testovanie}
\label{testovanie}
Testovanie patrí medzi neodmysliteľnú súčasť každého vývoja softvérového projektu. Preto sa ani tento projekt nemohol zaobísť bez testovania. Pri štandardnom type tohto projektu je potrebné testovať pomocou viacerých testov:
\begin{itemize}
    \item {test splnenia technických požiadavok,}
    \item {testovanie korektnosti zachyteného a spracovaného signálu,}
    \item {priebežné testovanie audia počas vývoja,}
    \item {testovanie finálnej implementácie,}
    \item {rozsiahle dlhodobé testovanie,}
    \item {test spokojnosti užívateľov.}
\end{itemize}

Posledné dva spomenuté testy nie je možné uskutočniť v rámci bakalárskej práce. Pre rozsiahle dlhodobé testovanie by bolo nutné otestovať produkt aspoň na desiatich modeloch, pričom na každom modeli by si testovanie vyžadovalo používanie aspoň zopár dní. Nedisponujem dostatočným množstvom hardvéru, aby testovanie mohlo prebiehať na viacerých modeloch súčasne. A keďže čas na prácu je obmedzený, nebolo možné realizovať rozsiahle dlhodobé testovanie na väčšej vzorke modelov.

Test spokojnosti reálnych užívateľov tiež nie je možné jednoducho vykovať v obmedzenom časovom intervale vyhradenom na prácu. Testovanie by vyžadovalo využitie viacerých vytvorených simulátorov zvuku v komunite ľudí, ktorí sa modelárstvu venujú. Na testovanie produktu som požiadal brata a kamaráta. Obaja testovali priebežne vyvíjaný softvér.

\subsection{Test splnenia technických požiadavok}
Test zahŕňal formálne overenie stanovených technických požiadaviek na implementáciu uvedených v sekcii \ref{analyza_a_ciel}. Nárok bol kladený na vytvorenie riešenia, ktoré je cenovo dostupnejšie ako bežné komerčné predávané produkty. Tento cieľ sa podarilo s prehľadom splniť s výslednou cenou 22.08 €. Výsledné riešenie ponúka užívateľovi možnosti zmeny hlasitosti a~výkonu. Splnený bol aj bod s možnosťou úprav pre konkrétny model. Hardvér je kompaktný a dá sa tak umiestniť bezproblémovo pod karosériu vozidla. Zároveň sa podarilo dosiahnuť praktické a jednoduché napájanie pomocou centrálnej batérie slúžiacej na pohon vozidla. Názor na výslednú hlasitosť môže byť individuálny. Na bežné používanie je hlasitosť na solídnej úrovni a prirodzene zaniká rýchlou jazdou. Zvolené technické kritéria sa tak podarilo dodržať.  


\subsection{Testovanie korektnosti zachyteného signálu}
Cieľom testu bolo zistiť, či signál z prijímača je zachytený korektne a nedochádza k rozptylu v rozsahu desiatok mikrosekúnd. Počiatočný návrh implementácie počítal najskôr so~simulovaním signálu pochádzajúceho z prijímača RC automobilu. Z počiatku by tak bol implementovaný jednoduchý generátor, ktorý by na základe zadaných hodnôt simuloval hodnoty obdržané z prijímača. Tento postup bol však rýchlo nahradený použitím reálneho modelu auta disponujúceho samostatným prijímačom. Ukázalo sa, že hneď na úvode implementácie by mohlo dôjsť  k vytvoreniu generátora poskytujúceho neadekvátne hodnoty. So slabými skúsenosťami v oblasti by tak mohol poskytovať vzorky signálu s neprimeranými rozostupmi hodnôt. Jeho správnosť by sa tak ťažko overovala testovaním. Mohlo by to mať za následok to, že následná implementácia ozvučenia by nemusela vôbec fungovať pri nasadení na reálny diaľkovo ovládaný model.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=0.4\textwidth]{obrazky-figures/test_pwm.png}
	\caption{Testovanie korektnosti prijímaného signálu počas pridania plynu}
	\label{test_pwm}
\end{figure}

Prvé testovanie začalo pripojením vývojovej dosky ESP32 k prijímaču auta. Vypisovaním obdržaných hodnôt zobrazených na obrázku \ref{test_pwm} sa zistilo, že získavaním hodnoty času zapnutia prerušením sa občas objaví nevalidná hodnota. Neplatné hodnoty museli byť odfiltrované, aby nevyvolávali razové výkyvy. Sledovaním prichádzajúcich hodnôt pri rôznej konfigurácii  a používaní ovládača sa upresnili detaily potrebné na implementáciu. Najprínosnejším bodom popri testovaní správnosti signálu bolo určenie fungovania brzda. Testom sa podarilo zistiť, že dochádza ku korektnému zachyteniu signálu a následnému určeniu času zapnutia v mikrosekundách.

\subsection{Priebežné testovanie audia počas vývoja}
Úlohou priebežného testovania bolo zaručiť správny postup pri implementácii. Najdôležitejším testovaním a sledovaním bola výsledná kvalita zvuku vychádzajúceho z reproduktoru napojeného k automobilu. Spočiatku prebehlo porovnanie a testovanie voľne dostupných knižníc na prácu s audiom určených pre vývojovú dosku ESP32. Kvalitou a širokou škálou použitia bola zvolená \texttt{ESP8266Audio}. Priazeň si získala vďaka veľkému množstvu podporovaných formátov a možnosti zmiešavania viacerých kanálov.

Po zvolení knižnice na prácu s audiom nastala fáza testovania samotného algoritmu na prehrávanie zvuku. Pri tomto testovaní došlo k pár úpravám, ktoré testovanie uľahčovali. Prvou výraznou zmenou bolo odpojenie jednosmerného motora od zdroja napätia. Vďaka tomuto dočasnému odpojeniu hnacej jednotky sa dalo ľahšie a zreteľnejšie testovať, či sa algoritmus správa správne pri výraznejšej akcelerácii alebo pri vyšších rýchlostiach. Podmienky pri vývoji často neumožňovali reálnu prevádzku vozidla. Konštrukčná rýchlosť a~manévrovateľnosť neumožňovali pravidelné čiastkové testovanie zvoleného modelu vo vnútorných priestoroch.

Druhou výraznou zmenou bolo nahradenie reproduktora pomocou iného adekvátneho hardvéru. Dlhodobé využívanie reproduktora malo za následok narúšanie okolia. Stávajúci reproduktor bol odpojený zo zosilňovača a odložený a pripravený na testovanie v exteriéri. Nahradený bol za pomoci súčiastky označovanej pod názvom PJ-320D. Uvedené označenie reprezentuje samicu konektora na pripojenie 3.5 milimetrového jack-u. Zakúpený konektor je pripájkovaný na doske DIP 2,4 milimetra. Využitie dosky umožňuje zapojenie 3.5 milimetrového audio konektora pomocou štandardných vodičov použivaných pri Arduino projektoch.

Spomenuté odpojenie pohonného motora modelu a nahradenie reproduktora konektorom na pripojenie slúchadiel výrazne zlepšilo možnosť testovania. Projekt bolo možné vyvíjať na obyčajnom pracovnom stole. Pri testovaní funkčnosti detekcie brzdy alebo testovaní citlivosti reakcie na ovládač bol motor opäť pripojený k zdroju napätia. Priebežným testovaním zmien za pomoci uvedeného postupu sa zaručilo včasné odhalenie chýb a korektnosť algoritmu.


\subsection{Testovanie finálnej implementácie}
Finálne vlastnosti ozvučenia diaľkovo ovládaného auta boli overované reálnou prevádzkou vozidla. Cieľom bolo preukázať funkčnosť navrhnutého a implementovaného riešenia. Navrhnuté hardvérové riešenie bolo pripevnené na model, aby sa overila funkčnosť v praxi. 


Počas prevádzky na zvolenom modeli vysvitlo, že softvér netrpí výraznejšími nedostatkami. Na zvolenom modeli Maverick Phantom XT pri malom množstve pridaného plynu sa rapídne zvýši rýchlosť modelu. Niekto by možno uvítal rozšírenie opísané v časti \ref{malo_audio_vzoriek}. Na zvolenom modeli by tak mohlo byť v budúcnosti použité väčšie množstvo nahrávok. V prípade použitia modelu s pomalšou prevodovkou užívateľovi bohato stačí zvolené množstvo nahrávok. Nejedná sa však o nedostatok, pretože pri prevádzke modelu vzniká aj množstvo hluku. Nepochybným faktorom je originálna hlučnosť už od výroby. Pohon všetkých štyroch kolies je riešený za pomoci polosí vedúcich z diferenciálov. Polosi majú v kĺbe pri diferenciáli a pri náboji kolesa značnú vôľu. Za jazdy tak vydávajú pomerne výrazný hluk.
K~hluku vozidla počas prevádzky prispieva aj jeho elektronika. Použitý elektronický regulátor otáčok disponuje zabudovaným bzučiakom bez možnosti vypnutia. Už pri miernom pridaní plynu sa začne ozývať výrazne bzučanie. Jeho tón, ktorý signalizuje jazdu vpred alebo vzad, zasahuje do ozvučenia. Ozvučenie modelu a jeho prirodzený hluk je tak v jednej harmónii a vytvára realistický prejav.

Výsledný produkt bol testovaný vo vonkajšom prostredí tromi osobami, a to mnou, bratom a kamarátom. Počas prevádzky automobilu nepadla žiadna pripomienka. Celkovo sa prevádzkou modelu podarilo preukázať,  že ozvučenie nainštalované na model plní svoju úlohu. Riešenie je tak pripravené na nasadenie do praxe.




\chapter{Záver práce}
\label{zaver}
Cieľom tejto práce bolo vytvorenie lacného a dostupného ozvučenia pre diaľkovo ovládané elektrické autíčko. Cieľ práce sa podarilo úspešne dosiahnuť. Plnením navrhnutých krokov sa podarilo úspešne vytvoriť simulátor audia reálneho spaľovacieho automobilu určeného pre RC automobily.

Preštudovaním literatúry na tému RC modely a ich ozvučenie bol následne výsledok štúdie zhrnutý v práci. Bol navrhnutý postup riešenia doplnený o diskutované vlastnosti tohto riešenia.
Z toho dôvodu musela byť navrhnutá nielen hardvérová, ale aj  softvérová implementácia. Hardvérová časť je implementovaná za použitia ľahko dostupnej vývojovej dosky ESP32 a k tomu pripojeného audio zosilňovača a reproduktora. Pre jednoduchú konfiguráciu parametrov ozvučenia boli použité potenciometre umožňujúce nastavenie hlasitosti a výkon motora. Podarilo sa tak vytvoriť dostupné a efektívne hardvérové riešenie, ktoré je lacnejšie ako komerčne predávané zariadenia. Po hardvérovej časti nasledovalo implementovanie softvérovej časti. V tejto časti bol navrhnutý algoritmus, ktorý reprodukuje na výstup realistický zvuk spaľovacieho osemvalcového motora. Funkčnosť výslednej implementácie bola demonštrovaná na reálnom modeli. Počas testovania boli vyhodnotené dosiahnuté výsledky.
 
Tvorbou tejto práce sa mi rozšírili vedomosti vo viacerých oblastiach. Podarilo sa mi nadobudnúť detailné znalosti o tom, ako fungujú modely, či ide o pohon, ovládanie alebo konštrukciu. Znalosti som nadobudol aj v rámci používania hardvérových komponent, mysliac programovanie jednoprocesorových vývojových dosiek a prácu s hardvérom na ozvučenie. Vďaka tejto práci som mal možnosť získané znalosti spojiť, aplikovať a vytvoriť tak funkčný simulátor zvuku.

Na projekte by sa dalo pokračovať aj v budúcnosti. Ako prvým pokračovaním by bolo doimplementovanie spomenutých možností v sekcii možných rozšírení \ref{nedostatky}. Išlo by u rozšírenie počtu zvučiek pre zvolený motor, ktoré by algoritmus využíval. Tento návrh by sa dal rozšíriť ešte viac, a to pridaním viacerých druhov motorov. Užívateľ by tak mal možnosť si vybrať z viacerých možností. Dorobiť by sa mohlo aj lepšie zmiešavanie zvukov. Následne by sa tak otvorila možnosť pridať zvuky pre brzdenie alebo turbomiechadlo. Algoritmus by sa dal rozšíriť aj doplnením preraďovania prevodovky. Uchytenie na modely by bolo zjednodušené vytvorením jednoduchého obalu pomocou 3D tlače. Posledné rozšírenie, ktoré mi napadlo, súvisí so zavedením brzdového svetla. Namiesto používanej zabudovanej LED diódy na ESP32 by sa používalo externé svetlo.



%===============================================================================

% Pro kompilaci po částech (viz projekt.tex) nutno odkomentovat
%\end{document}
