Skip to content
Snippets Groups Projects
Commit 369409f5 authored by duc anh vu's avatar duc anh vu
Browse files

add documentation for camera and ultra sonic sensor

parent 05db70bd
Branches
No related merge requests found
......@@ -4,6 +4,13 @@
\input{../modules/cruiseControl/docCACC-content}
\subsection{Ultraschallsensor}
An den Fahrzeugen ist ein Ultraschallsensor vom Modell SRF02 angebaut.
An den Fahrzeugen ist ein Ultraschallsensor vom Modell SRF02 angebaut. Der Sensor ist so am Odroid angeschlossen, dass er im I2C Modus l\"auft. Um mit dem Sensor zu interagieren braucht man die Device-Id, welche auf dem Sensor draufgeklebt ist, z.B. 0x74. Um den Ost der Ger\"atedatei unter Linux zu finden, kann i2c-detect verwendet werden, welches im i2c-tools Paket verf\"ugbar ist. In unserem Fall ist /dev/i2c-1 die Ger\"atedatei f\"ur den Sensor. Unter \url{http://www.robot-electronics.co.uk/htm/srf02techI2C.htm} stehen die verschiedenen Register die man schreiben und lesen kann, um den Sensor zu bedienen. 0x00 ist das Command-Register, in das geschrieben werden kann, um eine Messung zu beginnen. Schreibt man den Wert 0x51 in das Command-Register, beginnt der Sensor mit der Messung und gibt das Ergebnis in centimeter zur\"uck. In der technischen Spezifikation wird angegeben, dass eine Messung mindestens 65ms dauert bis das Ergebnis zur Verf\"ugung steht. In unserem Code warten wir nach dem Beginn einer Messung 70ms, um sicher das Ergebnis zu bekommen. Am Ende der Messung steht das 16bit Ergebnis in den jeweils 8bit großen Registern 0x02 und 0x03 und kann einfach ausgelesen werden.
\\\\
Um einfach auf die Register zugreifen zu k\"onnen benutzen wir die wiringPi Library \url{https://github.com/hardkernel/wiringPi}. Mithilfe dieser Library k\"onnte eine Messung wie folgt durchgef\"uhrt werden:\\
\lstinputlisting[language=C]{sections/uss_example.c}
\subsection{Kamera}
An den Fahrzeugen ist eine Kamera vom Model DFM 22BUC03-ML angebaut. Der Hersteller der Kamera stellt die Software zur Bedienung der Kamera \"uber \url{https://github.com/TheImagingSource/tiscamera} zur Verf\"ugung. Hat man sich das Repository runtergeladen, kann man das Projekt nach der angegeben Anleitung zun\"achst bauen. Wenn das Projekt gebaut ist, muss die Firmware auf die Kamera geladen werden. Dazu einfach der Anleitung unter \url{https://github.com/TheImagingSource/tiscamera/wiki/Getting-Started-with-USB-2.0-CMOS-Cameras} folgen. Wenn die Firmware erfolgreich geladen wurde, ist die Kamera einsatzbereit. Im Repository sind auch Beispiele vorhanden, die man direkt ausf\"uhren kann, um Daten von der Kamera zu lesen.
\end{document}
\ No newline at end of file
#include "wiringPiI2C.h"
#include <unistd.h>
const int COMMAND_REGISTER = 0x00;
const int RESULT_HIGH_BYTE = 0x02;
const int RESULT_LOW_BYTE = 0x03;
const int RANGING_MODE_CM = 0x51;
const int DELAY = 70;
int getDistance() {
char *device = "/dev/i2c-1";
int devId = 0x74;
int fd = wiringPiI2CSetupInterface(device, this->devId);
wiringPiI2CWriteReg8(fd, COMMAND_REGISTER, RANGING_MODE_CM);
usleep(DELAY * 1000);
int distance = wiringPiI2CReadReg16(fd, RESULT_LOW_BYTE);
return distance;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment