User manual
RP6 ROBOT SYSTEM - 4. Exemples de Programme
Exemple 8: Interface du Bus I²C – petite RP6 Library
Répertoire: <RP6Examples>\RP6ControlExamples\Example_08_I2CMaster\
Fichier: RP6Control_08_I2CMaster.c
Ce programme démontre l'utilisation du mode  maître du bus I²C. Le contrôleur 
sur   la   carte-mère   du   robot   doit   avoir   chargé   l'exemple   de   programme   Esclave 
I²C!
Etant donné que les programmes perdent rapidement de leur clarté lorsque l'on y met 
trop de choses, l'exemple 7 sera divisé en deux fichiers C et un peu complété. Dès le 
début, il a été conçu de telle façon que l'on dispose d'une petite bibliothèque pour la 
commande du robot via le bus I²C qui s'utilise presque comme la RP6Lib normale pour 
le contrôleur sur la carte-mère. Un grand nombre de fonctions et de variables portent 
le même nom que celles dans la RP6Lib. Cela facilite l'utilisation commune de parties 
du programmes par la RP6Lib et la RP6ControlLib. Les fameux Event Handler pour 
l'ACS, l'IRCOMM et les pare-chocs sont à nouveau disponibles. A cela s'ajoutent de 
nouveaux Event Handlers pour l'état de faible charge des accus et les requêtes Watch-
dog. Dans l'exemple suivant, nous ajouterons encore les fonctions pour le contrôle de 
mouvement.
A part cela, le programme est similaire à l'exemple 7. Les seuls changements sont le  
rajout du timer Watchdog dont les requêtes apparaissent également sur le LCD, et la 
lecture de tous les registres des détecteurs et leur sortie sur l'interface série. L'ACS, 
les pare-chocs et les événements RC5 continuent à être représentés.
Exemple 9: Interface du bus I²C – Fonctions de mouvement
Répertoire: <RP6Examples>\RP6ControlExamples\Example_09_Move\
Fichier: RP6Control_09_Move.c
Ce programme illustre comment on peut utiliser le mode maître du bus I²C. Le 
contrôleur sur la carte-mère du robot doit avoir chargé l'exemple de programme 
Esclave I²C!
ATTENTION: Le robot se déplace dans cet exemple! 
Maintenant nous ajoutons à la nouvelle bibliothèque quelques fonctions de mouve-
ment qui sont déjà connues par la RP6Lib: move, rotate, moveAtSpeed, changeDirec-
tion et stop. L'utilisation de ces fonctions est identique à celles de la RP6Lib. Dans cet 
exemple, nous avons tout retiré ce qui était déjà dans les autres exemples afin d'amé-
liorer la clarté, à l'exception de l'indication du Watchdog, et utiliser le mode bloquant 
des   fonctions   de   mouvement   (quelques   fonctions   comme   l'indication   Heartbeat   ne 
fonctionneraient de toute manière pas). Dans cet exemple, le robot  avance et recule 
et   tourne   à   180°   -   tout   comme   dans   l'exemple   7   pour   la   RP6Lib 
(„RP6Base_Move_02.c“). 
- 25 -










