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 -










