% !TEX root = main.tex

\subsection{Robotkomponenter}
Følgende utstyr har blitt benyttet:

\begin{figure}[h]
	\centering
	\includegraphics[scale=0.015]{fig/dynamixelax12.png}
	\includegraphics[scale=0.75]{fig/usb2dynamixel.jpg}
	\includegraphics[scale=0.33]{fig/smps2dynamixel.jpg}
	\caption{Dynamixel AX-12+ servomotor, USB2Dynamixel og SMPS2Dynamixel}
\end{figure}

\begin{description}
\item[AX-12+]\cite{dynamixelax} er en servomotor som kan rotere til en bestemt vinkel mellom 0\degree og 300\degree, med en oppløsning på 0.29\degree (1024 steg). Alternativt kan den settes i hjulmodus uten vinkelbegrensing, men der man kun kan angi rotasjonshastighet.
\item[USB2Dynamixel] er en komponent som fungerer som grensesnitt mellom servomotorene og en PC. Denne konverterer signaler mellom den serielle bussen der servoene er koblet sammen, og en virtuell serieport for PC-en.
\item[SMPS2Dynamixel] gjør det mulig å bruke en 12V DC nettadapter til å forsyne servoene med strøm.
\end{description}

Komponenter i dynamixelsystemet kobles sammen via et \emph{daisy chain}.
Det vil si at komponentene er koblet sammen på samme buss, der hver enhet har to
	konnektorer.
Én konnektor for å kople seg til bussen, og én konnektor for å koble neste enhet
	til bussen.
Dynamixel-bussen består kun av tre ledere; VDD, DATA og GND.
På DATA-linjen vil PC og servomotorer utveksle informasjon via \emph{TTL level
	multi-drop UART}.

Signaleringen for en UART er vist i figur \ref{fig:uart}.
Når det ikke kommuniseres på bussen, holdes spenningen ved 5V.
Under sending vil først en start bit (0V) sendes, etterfulgt av 8 data bit, og
	avsluttes med ett stopp-bit (5V).
Hensikten med start-bittet er å synkronisere mottaker til senderens
	sendefrekvens.
Hensikten med et stopp-bit er å returnere linjen til 5V.
\emph{TTL} refererer til spenningsnivåene 0V og 5V, som er brukt.
\emph{Multi-drop} vil si at det er flere mottakere som er koblet på samme buss.

\begin{figure}[h]
\includegraphics[scale=4]{fig/uart.pdf}
\caption{Signalering for en UART}\label{fig:uart}
\end{figure}

Datamaskinen som styrer systemet sender ut en rekke bytes (en pakke) serielt på
	DATA-linjen.
Hver enhet på bussen har en unik ID, og dersom pakken er adressert til enheten
	sin egen ID, vil enheten kunne svare.
Pakker inneholder instruksjoner for enten lesing eller skriving til
	minnelokasjoner.
Verdien som lagres i hver minnelokasjon har en betydning avhengig av enheten som
	er koblet til.
For AX-12+ for eksempel, kan man skrive til adresse 30 og 31 for å sette ønsket
	vinkel.
