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 modif 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é
à lentrée dinterruption 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 dinterruption, 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.