User manual
8 25
2. Montage du module d’extension
La  façon  dont  vous  allez  montez  le  module  sur  le  robot  dépend  des  autres  modules 
d’extension, que vous pourriez déjà avoir installé sur le robot.
Afin  de  monter  le module sur  le  robot,  vous devez d’abord  dévisser  4  vis de  la  carte 
mère. Vous  pouvez  également,  si  vous  le  souhaitez,  détacher  prudemment  un  petit 
connecteur de la platine bumper, afin de soulever entièrement la carte mère. Cependant, 
cela n’est pas nécessaire, si vous vous servez de vos doigts pour atteindre ce qu’il y a en 
dessous de la carte mère et pour visser les boulons d’écartement avec les écrous M3. 
Attention : Lorsque vous rebranchez le câble de la platine bumper, maintenez le platine 
du capteur par derrière avec un doigt afin d’éviter qu’elle ne soit poussée trop fortement 
vers l’arrière ! Autrement, vous pouvez également dévissez les 2 vis de la platine bumper 
et faire passer le câble…
Ce programme d’exemple permet d’effectuer ceci, en affichant l’état actuel des ACS sur 
les 4 LED, l’écran, l’interface séquentielle et le bipeur duRP6 CONTROL et en le rendant 
audible. 
L’énergie d’émission du ACS est encore réglée sur un bus I²C au démarrage du programme. 
En  plus  du  ACS, le programme  r
éagit  aussi  au  bumper  et  aux éventuels transferts  RC5 
émis depuis une radio commande ou un autre robot.
Vous  pouvez vous  en  servir  de la même  façon que tous les  autres  capteurs du robot. 
Egalement pour de futurs modules d’extension avec des capteurs supplémentaires. 
Un autre aspect  du  programme est l’affichage « Heartbeat », c’est-à-dire  « battements 
de  cœur ». La  fonction  task8LCDHeartbeat()  permet  de  faire  clignoter  de  manière 
continue  le caractère ‘*’ sur le LCD, avec une fréquence de 1 Hz. Cela est très utile afin 
de constater si le programme a entièrement planté ou si il s’agit juste d’une partie précise 
qui présente une erreur. Lorsque vous  écrivez votre propre programme et  qu’il semble 
s’être entièrement planté, il peut être très utile pour délimiter une source d’erreurs. Le fait 
que le programme plante peut mal passer pendant le développement. 
C’est pour cela que le programme d’exemple pour le Slave I²C du contrôleur de la carte 
mère intègre aussi une fonction « Software watchdog ». Le master ne réagit pas dans un 
laps de temps déterminé (dans la mesure où le registre 0 est lu), tous les systèmes de 
l’unité de base du robot sont éteints et le programme stoppé. Il faut avant tout éteindre 
les moteurs !  Imaginez que  le slave reçoive  la commande  d’avancer  à une  vitesse de 
10cm/s et que le master plante ! Cela provoquerait un crash du robot contre le prochain 
obstacle rencontré et ce, à haute vitesse…
Désactivez  tout  d’abord  le  logiciel Watchdog Timer.  Afin  d’activer  le Watchdog,  vous 
devez préalablement envoyer une commande sur le bus I²C. Il est également possible de 
configurer le Watchdog, de manière à ce que l’interruption se déclenche afin de vérifier 
que le contrôleur master y réagit encore. C’est ce que nous allons utiliser dans l’exemple 
suivant.
Le  programme  peut  être  rapidement  embrouillé,  lorsqu’on  ajoute  plusieurs  fonctions 
dans un  seul  fichier. C’est  pour  cela  que  l’exemple  7  est  partagé  entre  deux  fichiers 
C  et  d’y  ajouter  quelques  fonctionnalités.  C’est  une  sorte  de  RP6Lib  réduite,  pour  le 
contrôle du robot via les bus IC et qui vous permet de l’utiliser de façon identique que 
la bibliothèque du RP6Lib normal pour le contrôleur de la carte mère. De nombreuses 
fonctions et variables sont nommées de la même façon que dans le RP6Lib. Cela facilite 
de  la  réutilisation  de  parties  de  programme  du  RP6Lib  avec  le  RP6ControlLib.  Les 










