User manual
24 9
appuyant sur l’une des 5 touches. La touche T1  rehausse  d’un  un  compteur  et  envoie 
ensuite les commandes setLED avec cette valeur de compteur au Slave. Cette procédure 
affiche un compteur binaire avec les 6 LED de statut de la carte mère. 
En  appuyant  sur  la  touche T2,  tous  les  registres  sont  lus  et  transmis  sur  l’interface 
séquentielle. Par contre, uniquement les valeurs des capteurs de lumières sont lues et 
affichées sur l’écran LC. 
Avec T4  et T5 est envoyée  une commande  « Rotate »  et  le  robot  effectue  une  petite 
rotation vers la droite ou la gauche (vous pouvez appuyer plusieurs fois sur les touches 
afin de continuer à faire tourner le robot…).
Le  programme  peut  bien  évidemment  être  modifié  –  tout  comme  les  autres  –  et  est 
parfaitement adapté pour tester votre nouvel appareil I²C ou les fonctions que vous avez 
ajoutées sur votre programme d’exemple. 
Peut-être avez-vous déjà  remarqué  le signal d’interruption  sur le connecteur  XBUS  du 
RP6 ? Vous pouvez l’utiliser pour réagir sur les modifications de capteur, sans consulter 
constamment le Slave. Chaque accès aux Bus vous fait perdre du temps.
Un  bon  exemple  pour  l’utilisation  du  signal  d’interruption est  l’ACS du  robot.  Le statut 
du capteur ne change relativement que très rarement et il ne serait pas très efficace de 
consulter le bus pour vérifier si quelque chose a changé. Dès que le statut ACS change ; 
le programme  Slave passe le  signal  INT1  au  plus haut  niveau. Puisque  INT1  est relié 
à  l’entrée  d’interruption  0  du  MEGA32  du  RP6  CONTROL  M32,  le  contrôleur  peut 
directement réagir à cet événement et vérifier le statut du contrôleur de la carte mère.
Toutefois, nous n’avons pas besoin d’un sous-programme d’interruption dans le programme 
d’exemple, pour r
éagir à cet événement, mais pour consulter le statut des pins à chaque 
ex
écution de la boucle principale. Puisque les transferts Bus I2C sont interrompus et il ne 
peut y avoir lieu de nouvelle transmission pendant un sous-programme d’interruption. 
La  fonction  task_I2CTWI()  doit  toujours  être  appelée  dans  la  boucle  principale, 
puisqu’elle  règle  le  déroulement  des  transferts  I2C. Ainsi,  il  n’y  a  aucun  avantage 
à  utiliser  un  sous-programme  d’interruption,  cela  serait  même  un  problème,  car 
les  transferts  bus  I2C  déjà  en  cours  pourraient  être  interrompus. La  fonction  task_
checkINT0() sera donc la seule à être utilisée pour réévaluer le signal d’interruption et 
effectuer une consultation le cas échéant. Dès que le registre de statut 0 du slave est 
lu,  le  signal  d’interruption  est  réinitialisé. Vous  pouvez  trouver  dans  les  trois premiers 
registres du slave, ce qui a déclenché l’interruption.
Vous pouvez ensuite vissez les 4 boulons d’écartement 25mm M3 avec les écrous M3 
dans les trous de fixation de la carte mère, comme représenté sur la photo. 
Sur l’image au dessus, les 8 boulons d’écartement  sont  vissés, et également  ceux  du 
circuit imprimé du module d’extension !
Installez le module d’extension sur les boulons d’écartement et fixez le avec les 4 vis M3. 
Enfin, connectez les deux câbles ruban – c’est fini. 
Nous  vous  recommandons  de  monter le  RP6  CONTROL M32  à l’arrière  du  monceau 
d’extension du robot – comme module principal, afin que les touches et l’écran restent 
accessibles.  Les  deux  branchements  de  programmation  sont  alors  aussi  accessibles 
depuis  la  même  face  du  robot. Vous  pouvez  fixer  à  l’avant  du  robot  les  modules 
d’expérimentation fournis avec le robot.
Si vous avez acheté l’écran LC 16x2 lignes, vous devez d’abord le brancher et le monter 
au module d’extension avant de l’installer sur le robot. 










