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
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 manre
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 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 utilisation de parties de programme du RP6Lib avec le RP6ControlLib. Les