\section{Realizace senzoriky}

\subsection{Naše volba senzoru}

V případě této části senzoriky jsme nepoužívali žádná dosud neznámá zařízení, ale vybrali jsme IR snímač polohy od firmy Sharp, který se již v laboratoři používal.

\begin{figure}[htbp]
\begin{center}
\includegraphics[scale=0.4]{images/SHARP.jpg}
\\[3mm]
\caption{IR senzor polohy: Sharp GP2Y0A21YK0F \cite{sharp}}
\end{center}
\end{figure}

\newpage

Dále jsme vybrali vhodný AD převodník. Dobře nám posloužilo zařízení ADS1015 od firmy Texas Instruments \cite{ADS1015_www}. Uveďme jen některé základní vlastnosti, které nám vyhovovaly:

\begin{itemize}

\item I2C rozhraní
\item 4 vstupní kanály
\item vhodný rozsah napájecího napětí (2.0 - 5.5 V)

\end{itemize}

Pro převodník byla navržena deska, přičemž jsme nachystali vstupy i pro senzory polohy tlumičů. Nakonec tedy na vozidlo byly umístěny 2 desky (na každé 2 kolizní senzory a 2 senzory polohy tlumičů)

\begin{figure}[htbp]
\begin{center}
\includegraphics[scale=0.3]{images/ADS1015_board_and_full.jpg}
\\[3mm]
\caption{Vyrobená a osazená deska AD převodníku}
\end{center}
\end{figure}

\subsection{Problémy se značným šumem výstupního signálu}

Ačkoliv výše uvedený senzor dává spojitý signál na svém výstupu, měří vzdálenost periodicky s frekvencí přibližně 25 Hz. Tím do obvodu zanáší značný šum. Když byl na převodník připojen pouze jeden senzor, výstupní naměřený signál měl velmi "pěkný" průběh. Dva senzory se však navzájem značně ovlivňovaly. Proto bylo velmi problematické naměřená data nějakým způsobem dále zpracovávat a využívat.


Největší nepřesnost se na senzorech projevila, když před sebou něměl žádnou překážku. V takovém případě se na výstupu sice objevily nízké hodnoty napětí, ale s tak silným šumem, že nebylo vyjímkou, když některá hodnota z AD převodníku odpovídala i~vzdálenosti okolo 10 cm. 


Pokud již senzor nějakou překážku před sebou měl, šum se z části uklidnil, avšak ne úplně. Problém je v tom, že bylo nutno detekovat právě okamžik, kdy se před senzorem nějaká překážka nachází, aby systém mohl včas vyslat povel pro zastavení (resp. pro opačný záběr motoru). Ale tento stav v podstatě splývá se stavem, kdy senzor žádnou překážku neměří.

\begin{figure}[htbp]
\begin{center}
\includegraphics[scale=0.3]{images/SHARP_graph.jpg}
\\[3mm]
\caption{Závislosti výstupního napětí na vzdálenosti detekované překážky \cite{sharp} }
\end{center}
\end{figure}


\subsection{Filtrování signálu}

Pro tento problém byl navržen postupný filtr.
V první části se signál kontroluje na \emph{"extrémní šum"}, který znamená, že před autem nic není a může pokračovat v jízdě. Pokud není tento stav detekován, pokračuje algoritmus v další filtraci, tentokrát již v oblasti malého šumu, a pokud naměříme několikrát za sebou hodnotu větší, než je hodnota předdefinovaná, znamená to detekci překážky a povel pro zastavení vozidla. Stejně tak ještě následuje ověření, zda před senzorem skutečně nic není. Jiným slovy, jeden povel pro možnost pokračování ve směru jízdy není validní a těchto příkazů musí následovat několik po sobě.

Po delším ladění jednotlivých konstant ve filtru bylo dosaženo poměrně slušného výsledku, kdy senzory detekovaly objekt přibližně ve vzdálenosti 55 cm. Interval, při kterém byl senzor nejistý ve vyhodnocování přítomnosti překážky, pak nebyl ani 5 cm.

\begin{figure}[htbp]
\begin{center}
\includegraphics[scale=0.47]{images/SHARP_Filter.jpg}
\\[3mm]
\caption{Schéma postupného filtrování signálu}
\end{center}
\end{figure}
\newpage
\subsection{Aplikace senzoriky na model řízení}

Po úspěšné filtraci signálu ze senzorů byl systém implementován do modelu řízení. Byl navržen jednoduchý algoritmus, který při detekci překážek na krátký okamžik změní polaritu PWM jednotlivých motorů a následně motory vypne. to se ukázalo jako velmi účinné zejména při vyšších rychlostech vozidla, neboť v takovém případě pouhé vypnutí motorů nestačí a vozidlo se ještě v poměrně značné rychlosti střetne s~překážkou z důvodu své setrvačnosti.
Na vozidlo byly umístěny dohromady 4 senzory - 2 dopředu a 2 dozadu.

Dále byl model systému kolizních senzorů upraven tak, aby zjišťoval aktuální směr pohybu vozidla a podle toho používal k vyhodnocování překážek pouze jednu dvojici senzorů.