User manual

RP6 ROBOT SYSTEM - 4. Beispielprogramme
Beispiel 8: I²C Bus Interface – kleine RP6 Library
Verzeichnis: <RP6Examples>\RP6ControlExamples\Example_08_I2CMaster\
Datei: RP6Control_08_I2CMaster.c
Dieses Programm demonstriert wie man den Master Modus des I²C Busses verwenden
kann. Der Controller auf dem Roboter Mainboard muss das I2C Slave Beispielpro-
gramm geladen haben!
Da Programme schnell etwas unübersichtlich werden können, wenn man soviel in eine
Datei reinpackt, wird jetzt das Beispiel 7 in zwei C Dateien aufgeteilt und noch etwas
ergänzt. Dabei wurde es gleich so angelegt, das man eine kleine Bibliothek zur Steue-
rung des Roboters über den I²C Bus hat, die sich fast wie die normale RP6Lib für den
Controller auf dem Mainboard verwenden lässt. Viele Funktionen und Variablen sind
identisch zur RP6Lib benannt. Das vereinfacht es, Teile von Programmen für die
RP6Lib auch mit der RP6ControlLib weiterzuverwenden. Auch die bekannten Event
Handler für ACS, IRCOMM und Bumper sind wieder verfügbar. Neu sind Event Handler
für niedrigen Akkuladezustand und die Watchdog Requests. Im nächsten Beispiel wer-
den noch die Funktionen für die Bewegungssteuerung hinzugefügt.
Das Programm ist ansonsten ähnlich zu Beispiel 7. Neu hinzugekommen sind nur wie
schon erwähnt der weitere Watchdog Timer dessen Requests auch auf dem LC-Display
dargestellt werden und es werden alle Sensorregister ausgelesen und über die serielle
Schnittstelle ausgegeben. Wie gehabt werden auch weiterhin ACS, Bumper und RC5
Events dargestellt.
Beispiel 9: I²C Bus Interface – Bewegungsfunktionen
Verzeichnis: <RP6Examples>\RP6ControlExamples\Example_09_Move\
Datei: RP6Control_09_Move.c
Dieses Programm demonstriert wie man den Master Modus des I²C Busses verwenden
kann. Der Controller auf dem Roboter Mainboard muss das I2C Slave Beispielpro-
gramm geladen haben!
ACHTUNG: Der Roboter bewegt sich in diesem Beispielprogramm!
Jetzt fügen wir der neuen Library ein paar der bereits von der RP6Lib bekannten Be-
wegungsfunktionen hinzu: move, rotate, moveAtSpeed, changeDirection und stop. Die
Funktionen können identisch zu denen in der RP6Lib benutzt werden. In diesem Bei-
spiel haben wir alles aus den vorherigen Beispielen bis auf die Anzeige für den Watch-
dog wieder entfernt, damit es übersichtlicher ist und ausserdem der blockierende Mo-
dus der Bewegungsfunktionen verwendet wird (dann würden ein paar Sachen wie die
Heartbeat Anzeige ohnehin nicht funktionieren). Der Roboter bewegt sich in diesem
Beispiel hin und her und dreht sich dabei um etwa 180° - genau wie in Beispiel 7 zur
RP6Lib („RP6Base_Move_02.c“).
- 25 -