RP6 CONTROL M32 Module d'Extension RP6-M32 ©2007 AREXX Engineering www.arexx.
RP6 CONTROL M32 Manuel d'Utilisation - Français (French) Version RP6-M32-FR-20071031 INFORMATIONS IMPORTANTES! A lire absolument! Avant la mise en service de ce module d'extension du RP6, lisez attentivement ce manuel ET le manuel du RP6! Il vous explique la bonne utilisation et attire votre attention sur des dangers éventuels! Par ailleurs, il contient des informations importantes qui ne sont pas forcément connues de tous les utilisateurs.
Impressum ©2007 AREXX Engineering Nervistraat 16 8013 RS Zwolle The Netherlands Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482 "RP6 Robot System" est une marque déposée d'AREXX Engineering. Toutes les autres marques appartiennent à leurs propriétaires respectifs. Ce manuel d'utilisation est protégé par les lois du copyright.
Table des Matières 1. Le Module d'Extension RP6 CONTROL M32 ........................................ 5 1.1. Support technique ................................................................... 6 1.2. Contenu du carton .................................................................. 6 1.3. Propriétés et caractéristiques techniques .................................... 7 2. Montage du Module d'Extension ....................................................... 9 3. RP6 CONTROL Library ........................
RP6 ROBOT SYSTEM - 1. Le Module d'Extension RP6 CONTROL M32 1. Le Module d'Extension RP6 CONTROL M32 Le module d'extension RP6 CONTROL M32 (ou en abrégé „RP6-M32“) vous permet d'ajouter au robot un deuxième microcontrôleur Atmel ATMEGA32 qui est cependant deux fois plus rapide que le contrôleur sur la carte-mère. En outre, le RP6-M32 offre plus de temps de calcul puisqu'il n'est pas occupé par le réglage du moteur, l'ACS, l'IRCOMM, etc.
RP6 ROBOT SYSTEM - 1. Le Module d'Extension RP6 CONTROL M32 contrôleur puisque les fichiers hex sont tous construits de la même manière. Il n'em pêchera donc pas que vous chargiez le programme dans le mauvais contrôleur! Profitez de la fonction du RP6Loader de créer différentes catégories. Pour chaque module d'extension sa propre catégorie... 1.1.
RP6 ROBOT SYSTEM - 1. Le Module d'Extension RP6 CONTROL M32 1.3. Propriétés et caractéristiques techniques Ce paragraphe donne un aperçu des capacités du RP6 CONTROL M32 et introduit en même temps quelques notions et désignations de composants du module.
RP6 ROBOT SYSTEM - 1. Le Module d'Extension RP6 CONTROL M32 ● Port de l'écran à Cristaux Liquides (LCD) ◊ Permet la connexion d'un LCD externe de 16x2 caractères. Vous pouvez également connecter d'autres LCD tels qu'un 16x4 mais dans ce cas, il faudra le fixer à l'aide de deux entretoises et il risque de dépasser d'un côté... Il est recommandé de prendre les dimensions exactes avant l'achat et de commander le matériel de montage adéquat en même temps.
RP6 ROBOT SYSTEM - 2. Montage du Module d'Extension 2. Montage du Module d'Extension La façon dont vous allez fixer le module sur le robot dépend bien sûr aussi du nombre de modules que vous avez peut-être déjà installés sur le robot. Commencez par retirer les quatre vis de la carte-mère.
RP6 ROBOT SYSTEM - 2. Montage du Module d'Extension Si vous avez acheté aussi l'afficheur 16x2 caractères, vous devez le brancher et le monter sur le module d'extension AVANT le montage sur le robot. Le câble en nappe à 14 points de l'afficheur est très flexible et se plie sans problème. Afin qu'il passe bien sous le LCD, vous devriez le plier pour le module d'extension RP6 CONTROL M32 comme indiqué sur la photo.
RP6 ROBOT SYSTEM - 2. Montage du Module d'Extension Maintenant vous pouvez effectuer un petit test de fonctionnement: Reliez d'abord l'interface USB connectée sur le PC via le câble en nappe à 10 points avec le connecteur PROG/UART sur le RP6-M32 et démarrez le RP6Loader. Mettez en suite le robot sous tension. Un message de texte doit s'afficher sur le LCD et une des LED doit clignoter. Si cela a fonctionné, cliquez sur « Connecter » dans le RP6Loader.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library 3.1.1. Initialisation du Microcontrôleur void initRP6Control(void) Comme vous le savez déjà par la RP6Lib, cette fonction doit TOUJOURS être appelée en premier dans la fonction Main. Elle porte seulement un autre nom.. La fonction initialise les modules de matériel du microcontrôleur sur le RP6-M32.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library 3.1.3. Touches A la différence des pare-chocs, les 5 touches sur le RP6-M32 sont connectées sur un canal CAN. Cela présente l'avantage qu'une seule broche suffit pour les 5 touches. L'inconvénient est que sur le circuit simple équipé de 5 résistances égales (voir schéma technique sur le CD-ROM) que nous utilisons ici, une seule touche peut être actionnée à la fois. Mais cela suffit amplement pour des touches de service.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library 3.1.5. Capteur de Microphone Le RP6 CONTROL peut non seulement générer du son mais aussi y réagir. Certes pas à la fréquence mais au volume. Ainsi vous pouvez faire démarrer le robot par des sons forts. Le circuit est conçu comme un « Peak Detector » (détecteur de crête). Il mesure l'amplitude du signal de microphone sur une durée variable et retient la valeur maximale.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library te4BitLCDData: Les données à 8 bits sont réparties sur deux « nibbles » de 4 bits et transmises. void writeLCDCommand(uint8_t cmd) Cette fonction appelle write4BitLCDData mais commute la ligne RS sur low pour envoyer une commande au LCD. void clearLCD(void) Envoie au LCD la commande d'effacer le contenu affiché. void clearPosLCD(uint8_t line, uint8_t pos, uint8_t length) Efface une partie déterminée du LCD.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library Afin de simplifier la sortie de texte sur le LCD, cette fonction permet d'écrire les deux lignes du LCD avec seulement un appel. Le curseur se place automatiquement au bon endroit et le contenu de l'écran précédent est effacé auparavant.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library Comme déjà dit, normalement vous n'avez pas besoin des fonctions SPI mais celles-ci seront utilisées dans les fonctions décrites ci-après afin d'accéder à l'EEPROM connecté sur le bus SPI. uint8_t SPI_EEPROM_readByte(uint16_t memAddr) Lit un seul octet à l'adresse « memAddr » de l'EEPROM.
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library 3.1.8. Les CAN Les CAN sont lus avec la fonction déjà connue de la RP6Lib: uint16_t readADC(uint8_t channel) Une variante automatique qui lit dans l'ordre les canaux CAN en tâche de fond n'existe pas (encore) pour le RP6-M32. Les canaux sont évidemment appelés autrement que dans la RP6Lib. Les canaux suivants sont disponibles: ADC_7 ADC_6 ADC_5 ADC_4 ADC_3 ADC_2 ADC_KEYPAD ADC_MIC --> ADC canal 7 – disponible sur la fiche à 10 broches „ADC“! --> ADC canal 6 ...
RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library Par ailleurs, vous pouvez également activer les résistances de tirage intégrées dans le microcontrôleur en définissant les bits dans le registre PORTx. C'est notamment très utile pour des détecteurs tactiles et autres. Les broches I/O sont librement disponibles sur le RP6 CONTROL M32 (vous trouverez les définitions exactes dans le fichier des en-têtes RP6Control.
RP6 ROBOT SYSTEM - 4. Exemples de Programme 4. Exemples de Programme Vous trouverez quelques exemples de programme sur le CD. Ils présentent les fonctions de base du RP6 CONTROL M32. Tout comme pour le robot, ils ne constituent pas la solution optimale et s'entendent comme points de départ pour vos propres programmes. C'est fait exprès pour vous laisser un peu de travail. Ce serait tout de même ennuyeux d'essayer tout simplement des programmes pré-écrits...
RP6 ROBOT SYSTEM - 4. Exemples de Programme Exemple 2: Touches et Sons Répertoire: \RP6ControlExamples\Example_02_Buttons\ Fichier: RP6Control_Buttons.c Le programme génère des sorties sur l'interface série et le LCD Le robot ne bouge pas dans ce programme! Cet programme démontre l'utilisation des 5 touches sur le RP6 CONTROL. A chaque pression sur une touche, le numéro de touche est indiqué sur le LCD et le Piézo émet une suite de sons.
RP6 ROBOT SYSTEM - 4. Exemples de Programme Il est également possible d'écrire et de lire des octets individuels ce qui sera démontré ci-après. La ligne de mémoire portant l'adresse 4 sera écrite avec 128 et les deux premières pages seront lues, cette fois-ci toutefois octet par octet ce qui prend bien sûr plus de temps qu'une page complète. Lorsque tout cela a été fait, un petit séquenceur de lumière est exécuté.
RP6 ROBOT SYSTEM - 4. Exemples de Programme Exemple 6: Interface Bus I²C – Mode Maître Répertoire: \RP6ControlExamples\Example_06_I2CMaster\ Fichier: RP6Control_06_I2CMaster.c Ce programme démontre 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é le programme Esclave I²C! Ce programme montre comment on peut commander le contrôleur sur la carte-mère en mode Esclave.
RP6 ROBOT SYSTEM - 4. Exemples de Programme task_I2CTWI() dans la boucle principale qui règle le déroulement du transfert I2C. Il n'y aura donc aucun intérêt à utiliser une routine d'interruption. Pour être précis, cela risquerait même de créer des problèmes car des transferts de bus I2C en cours seraient interrompus. C'est pourquoi nous utilisons la fonction task_checkINT0() pour évaluer constamment le signal d'interruption et d'envoyer éventuellement une requête.
RP6 ROBOT SYSTEM - 4. Exemples de Programme Exemple 8: Interface du Bus I²C – petite RP6 Library Répertoire: \RP6ControlExamples\Example_08_I2CMaster\ Fichier: RP6Control_08_I2CMaster.c Ce programme démontre l'utilisation du mode maître du bus I²C.
RP6 ROBOT SYSTEM - 4. Exemples de Programme Exemple 10: Interface bus bus I²C – Robot basé sur le comportement Répertoire: \RP6ControlExamples\Example_10_Move2\ Ficher: RP6Control_10_Move2.c Ce programme illustre comment on peut utiliser le mode maître du bus I²C.
RP6 ROBOT SYSTEM - ANNEXE ANNEXE A – Affectation des Broches Ce chapitre contient les affectations des broches des fiches et cosses à souder les plus importantes. Les broches du connecteur de l'interface série sont affectées exactement de la même façon que sur la carte-mère. Cela s'applique bien sûr également aux connecteurs XBUS et USRBUS! Ports I/O: Sur le connecteur I/O, tous les ports I/O libres et la tension d'alimentation sont disponibles. PC2, PC3, PC4, PC5, PC6, PC7, PD5 et PD6.
RP6 ROBOT SYSTEM - ANNEXE des chemins de câble plus courts!). Connecteur du LCD : Si vous ne souhaitez pas utiliser le LCD standard, vous pouvez confectionner votre propre câble pour le LCD à l'aide des affections ci-contre. Les fils D0, D1, D2 ,D3, RW sont fermement connectés sur la masse (GND) puisque nous n'utilisons le LCD qu'en mode 4 bits et n'avons pas besoin de le lire.