Présentation et Utilisation de la carte ArbotiX-M

.

Mise à jour le 08/10/2020 : Dans  cet article vous trouverez les caractéristiques principales de la carte ArbotiX-M .Ce contrôleur de robot polyvalent est une solution de contrôle avancée pour les actionneurs basés sur BIOLOID et DYNAMIXEL

Carte ArbotiX-M

Carte ArbotiX-M

Sommaire :

 

.

.

separateur-redohm-001

Description de la carte ArbotiX-M

Ce contrôleur de robot polyvalent est une solution de contrôle avancée pour les actionneurs basés sur BIOLOID et DYNAMIXEL. En tant que microcontrôleur compatible Arduino, la carte contrôleur Arbotix bénéficie également d’une énorme communauté open source de bibliothèques et d’exemples. Depuis sa sortie en 2010, l’ArbotiX-M est rapidement devenu un favori parmi les constructeurs du monde entier, du loisir à la recherche de haut niveau.

Cette carte a été spécifiquement conçue pour contrôler les servomoteurs Dynamixel. La carte ArbotiX-M est plus qu’un remplaçant pour la carte de controle CM-5, il s’agit plutôt d’un outil de haut niveau dédié à la construction de robots plus sophistiqués.

.

separateur-redohm-001

Specifications techniques de la carte contrôleur robotique ArbotiX-M

  • microcontrôleur AVR 16 MHz (ATMEGA644p)
  • 2 ports séries, 1 dédié aux servo-contrôleurs Dynamixel, l’autre au module radio XBEE
  • 3 ports de style TTL DYNAMIXEL à 3 broches 
  • 28 E / S numériques, dont 8 peuvent également fonctionner comme entrées analogiques
  • Embases à 3 broches de style servo (gnd, vcc, signal) sur les 28 broches d’E / S
  • Cette carte nécessite un câble FTDI ou un FAI pour la programmation. Pour un câble FTDI, nous recommandons le câble Sparkfun FTDI – USB , vous pouvez également utiliser le programmeur AVR USB .
  • Avec une dimension de 7.11 x 7.11 cm (2.8″ x 2.8 « )

separateur-redohm-001

Compatibilité avec les servo Dynamixel suivant 

AX-12A : Le servo robot AX-12A a la capacité de suivre sa vitesse, sa température, la position de l’arbre, la tension et la charge. De plus l’algorithme de contrôle utilisé pour maintenir la position de l’arbre sur l’actionneur ax-12 peut être ajusté individuellement pour chaque servo, vous permettant de contrôler la vitesse et la force de la réponse du moteur. Toute la gestion des capteurs et le contrôle de position sont gérés par le microcontrôleur intégré du servo. Cette approche distribuée laisse votre contrôleur principal libre d’effectuer d’autres fonctions.

AX-18A : Le servomoteur AX-18A est la prochaine étape par rapport servomoteur AX-12A, offrant près de deux fois la vitesse et 15% de couple en plus! Le servo robot AX-18A conserve le facteur de forme et toutes les mêmes caractéristiques que son prédécesseur: la possibilité de suivre sa vitesse, sa température, la position de l’arbre, la tension et la charge. L’algorithme de contrôle fonctionne de la méme façon que la version AX-12A

  • Compatibilité du moteur avec les cartes suivantes : 
    • Robot-contrôleur ArbotiX-M
    • ROBOTIS CM-530
    • ROBOTIS USB2DYNAMIXEL
    • ROBOTIS CM-700
    • ROBOTIS Open CM 9

AX-12W : Le servomoteur AX-12W de Robotis est une variante à roues du populaire AX-12A. Essentiellement, ce servo est un AX-12A avec un rapport d’engrenage inférieur, de sorte qu’un régime beaucoup plus élevé peut être atteint, ce qui le rend idéal pour une utilisation en mode roue par opposition au mode commun. Le servo robot AX-12W a la capacité de suivre sa température, sa tension et sa charge.L’algorithme de contrôle fonctionne de la méme façon que la version AX-12A , AX-18A

AX-12W Compatible carte ArbotiX-M

AX-12W Compatible carte ArbotiX-M -2

  • Tension de fonctionnement :  12V
  • Couple de décrochage : 2,0 kg-cm / 28 oz-in / 0,2 Nm
  • Vitesse à vide : 470 tr / min (mode roue)
  • Poids : 53g
  • Taille : 50 x 32 x 38 mm
  • Résolution :  0,29 °
  • Servos de résolution :  300 ° / 10 BITS
  • Compatibilité du moteur avec les cartes suivantes : 
    • Robot-contrôleur ArbotiX-M
    • Module de controle Bioloid CM-5
    • Adaptateur Robotis USB2Dynamixel

separateur-redohm-001

Information complementaire sur la carte ArbotiX-M

  • Vous ne pouvez pas programmer l’ArbotiX pendant qu’un XBee est branché sur l’ArbotiX ou l’UartSBee. Vous devez débrancher tout XBees de l’ArbotiX-M ou UartSBee pendant la programmation. En effet, le XBee et le câble FTDI sont connectés au même port série. Si vous souhaitez programmer la carte alors qu’un XBee est branché, vous devez utiliser la programmation ISP

 

Retour au sommaire

.

Explication de la partie Hardware de la carte 

 

.

Cablage des entrée analogiques 

Les broches analogiques font également office de broches d’E / S numériques. Vous pouvez y accéder dans l’IDE Arduino en adressant les broches numériques 24-31 pour accéder aux broches analogiques A0-A7.

.

Entrée analogique sur la carte Arbotix-M

Entrée analogique sur la carte Arbotix-M

.

Retour au sommaire

.

 

Alimentation du bus pour les servomoteurs type RC

Avoir ces quatre ports sur un bus d’alimentation séparé est idéal pour utiliser à la fois les servos RC et les servos DYNAMIXEL du même ArbotiX. La plupart des servos DYNAMIXEL ont besoin de 11-12V pour fonctionner, mais la plupart des servomoteurs RC  fonctionnent à partir de 5-6v. Comme le régulateur 5v a une puissance de sortie limitée, il n’est pas judicieux d’alimenter les servomoteurs à partir du BUS 5v. En ajoutant une autre alimentation, il est facile d’alimenter en toute sécurité ses servos RC

.

Code pour le pilotage d’un servo RC et d’un servomoteur Dynamixel

.

Retour au sommaire

.

separateur-redohm-001

Téléchargez  Arduino 1.0.6 et installez 

L’Arduino IDE est une application que vous pouvez utiliser pour programmer et interagir avec des microcontrôleurs basés sur Arduino comme l’ArbotiX-M. Les bibliothèques ArbotiX-M ont été minutieusement testées avec IDE Arduino 1.0.6. Les bibliothèques actuelle ne prenne pas en charge les anciennes versions d’Arduino (beta 18-23) ou Arduino 1.6. Les utilisateurs peuvent télécharger l’IDE Arduino compressé et le décompresser à l’emplacement de leur choix. Les utilisateurs de Windows peuvent également utiliser Windows Installer pour automatiser ce processus.

Retour au sommaire

.

.

separateur-redohm-001

Comment connaitre les macro de la bibliotheque Bioloid

Il est toujours très intéressant de connaître le contenu d’une bibliothèque et en l’occurrence du fichier d’en-tête. Quelquefois on peut passer à côté de certains codes ou macros qui sont très intéressantes.

De quoi est composée la bibliothèque.

C’est un dossier qui contient :

  • Le fichier d’entête. Repérable par « .h »
  • Le fichier sources. Repérable par « .cpp »
  • Le dossier « exemple ». Qui contient des codes sources  des exemples.

 

  • Arduino
    • libraries
      • Bioloid
        • ax12.ccp
        • ax12.h
        • BioloidController.cpp
        • BioloidController.h
        • keywords.txt

Quand vous avez trouvé l’emplacement du fichier « Bioloid.h », ouvrez-le.

A première vue, on a pas l’impression que ce fichier est un code programme car il est présenté sous format » texte ». De ce fait, il est exploitable par un éditeur de texte comme « NotePad », « WordPad » ou le « Bloc-notes ».

A savoir : N’apportez surtout pas de modifications à ce fichier et n’accepter jamais d’enregistrer d’éventuelles modifications car cela entraînerait à coup sûr un mauvais fonctionnement de la bibliothèque.

Vous pourrez constater que le fichier nous donne un grand nombre de macros et à droite des noms des macros vous avez le numéro de registre correspondant.

.

Retour au sommaire

.

separateur-redohm-001

Table de controle de la zone EEPROM et RAM du servo AX-12

.

Definition de la table de controle des servomoteurs.

La table de contrôle est une structure de données implémentée dans l’appareil. Les utilisateurs peuvent lire des données spécifiques pour obtenir l’état de l’appareil avec les paquets d’instructions de lecture, et modifier également les données pour contrôler l’appareil avec les paquets d’instructions WRITE.

Tableau de contrôle,données,adresse 

La table de contrôle est une structure qui se compose de plusieurs champs de données pour stocker l’état ou pour contrôler le périphérique. Les utilisateurs peuvent vérifier l’état actuel de l’appareil en lisant des données spécifiques de la table de contrôle avec des paquets d’instructions de lecture. Les paquets d’instructions WRITE permettent aux utilisateurs de contrôler le périphérique en modifiant des données spécifiques dans la table de contrôle. L’adresse est une valeur unique lors de l’accès à des données spécifiques dans la table de contrôle avec des paquets d’instructions. Pour lire ou écrire des données, les utilisateurs doivent désigner une adresse spécifique dans le paquet d’instructions. 

Zone EEPROM et RAM

La table de contrôle est divisée en 2 zones. Les données de la zone RAM sont réinitialisées à leurs valeurs initiales lorsque l’alimentation est réinitialisée (volatile). D’autre part, les données dans la zone EEPROM sont conservées même lorsque l’appareil est hors tension (non volatile).

.
separateur-redohm-001AX_MODEL_NUMBER_L  et   AX_MODEL_NUMBER_H
Registre  0 et Registre  1 en EEPROM

Cette adresse stocke le numéro du modèle du servo Dynamixel.octet de poids faible 

Adresse Fonction  Exemple de lecture du  registre Objectif
0
 
Donne le numéro de modèle
 
ax12GetRegister (1, AX_MODEL_NUMBER_L, 1);
ou     
  ax12GetRegister (1,0,1);
 
 
Accès  -> Lecture Valeur initiale en mémoire EEPROM -> 12

.

Exemple de code

.

Retour au sommaire

.

separateur-redohm-001

AX_VERSION 
 Registre  2 
en EEPROM

Cette adresse stocke la version du firmware du servomoteur Dynamixel.

Adresse Fonction  Exemple de lecture du  registre Objectif
2 la version du firmware    
Accès  -> Lecture    

.

Retour au sommaire

.

separateur-redohm-001

AX_ID
Registre 3 
en EEPROM

L’ID est une valeur unique dans le réseau pour identifier chaque DYNAMIXEL avec un paquet d’instructions. Les valeurs 0 ~ 252 (0xFC) peuvent être utilisées comme ID, et 254 (0xFE) sont occupées comme ID de diffusion. L’ID de diffusion (254, 0xFE) peut envoyer simultanément un paquet d’instructions à tous les DYNAMIXEL connectés.

Adresse Fonction  Exemple d’ecriture dans le registre Objectif
3 Lecture de l’identifiant     
R/W      

.

Exemple de code : Modification de l’identifiant du servo

.

Le but de ce tutoriel est de vous initier aux changements de l’identifiant sur les servomoteurs dynamixel par le biais de la carte Arbotix-M

.

.

Retour au sommaire

.separateur-redohm-001

AX_BAUD_RATE
Registre 4 
en EEPROM

Le débit en bauds détermine la vitesse de communication série entre un contrôleur et les servomoteurs Dynamixel.

Adresse Fonction  Exemple d’ecriture dans le registre Objectif

4

R/W

Fixe la vitesse de communication valeur par defaut 1M avec une marge d’erreur de 0.000%

 

ax12SetRegister(1,4,1); Valeur par defaut 1M bauds

A savoir :  moins de 3% de la marge d’erreur du débit en bauds n’affectera pas la communication UART.

.

.

Vitesse de transmission des servomoteurs Dynamixel

Vitesse de transmission des servomoteurs Dynamixel

.

Le but de ce tutoriel est de vous familiariser avec les commandes de changement de vitesse et d’identifiant pour les servomoteurs Dynamixel. Le problème est le suivant, la connexion d’un servomoteur MX-106 et d’un servo AX-12 sur la même carte. En sachant que ces deux servomoteurs ne possèdent pas la même vitesse de communication par défaut, et possèdent le même identifiant par défaut. Il faut donc changer la vitesse de communication dans un des servomoteurs pour que les deux fonctionnent sur le même réseau, et enfin que chacun des servomoteurs possède un identifiant propre.

.

.

Retour au sommaire

separateur-redohm-001

AX_TORQUE_ENABLE
Registre 24 en RAM

Adresse Fonction  Exemple d’ecriture dans le registre Objectif

24

R/W

pour activer / désactiver le couple au servo..   0 = Coupez le couple 
  1= le couple et verrouillez dans la zone RAM

.

Retour au sommaire

separateur-redohm-001

AX_LED 
Registre 26 
en RAM

Adresse Fonction  Exemple d’ecriture dans le registre Objectif

25

R/W

Macro pour activer / désactiver la LED sur le servo. ax12SetRegister(1, 25, 1) ; Allume la led
ax12SetRegister(1, 25, 0) ;  

.

Retour au sommaire

separateur-redohm-001

AX_PRESENT_POSITION_L et AX_PRESENT_POSITION_H
Registre 36 et 37 
en RAM

Position actuelle de votre servomoteur Dynamixel La plage de la valeur est 0 ~ 1023 (0x3FF) et l’unité est 0,29 [°].
ATTENTION : S’il est réglé sur Mode roue, la valeur ne peut pas être utilisée pour mesurer la distance de déplacement et la fréquence de rotation.

Adresse Fonction  Exemple de lecture des registres Objectif

 36 

37

Obtenir la position actuelle du servo ax12GetRegister (1, AX_PRESENT_POSITION_L ,2);
   

Exemple de code.

.

Retour au sommaire

separateur-redohm-001AX_PRESENT_VOLTAGE 
 Registre 42 
en RAM

C’est la valeur de la tension actuelle fournie. Cette valeur est 10 fois supérieure à la tension réelle. Par exemple, lorsque 10 V est fourni, la valeur des données est 100 (0x64) Si la valeur de la tension actuelle (42) est hors plage, le bit d’erreur de plage de tension (Bit0) du paquet d’état est renvoyé comme ‘1’ et l’alarme est déclenchée et définie. l’adresse 17 et réglez 1 sur le bit 0 de l’adresse 18.

Adresse Fonction  Exemple de lecture du  registre Objectif
42 obtenir la tension actuelle du servo. Ax12GetRegister (1, AX_PRESENT_VOLTAGE, 1) Cette valeur est 10 fois superieur à la tension réelle il faut donc diviser la valeur par 10 
  Ax12GetRegister (1, 42, 1)

.

Exemple de code pour lire la tension presente sur le servomoteur

.

Retour au sommaire

.separateur-redohm-001

AX_PRESENT_TEMPERATURE
Registre 43 en RAM

Il s’agit de la température interne de DYNAMIXEL en Celsius.
La valeur des données est identique à la température réelle en degrés Celsius. Par exemple, si la valeur des données est 85 (0x55), la température interne actuelle est de 85 ° C.

Adresse Fonction  Exemple lecture du registre Objectif
43 obtenir la température actuelle du servo. ax12GetRegister (1, AX_PRESENT_TEMPERATURE, 1) la valeur donné est identique a la temperature réelle 
ax12GetRegister (1, AX_43, 1)  

.

Exemple de code

.

Retour au sommaire

.

separateur-redohm-001

AX_REGISTERED_INSTRUCTION
Registre 44 
en RAM

Adresse Fonction  Exemple lecture du registre Objectif
44 Macro permettant de savoir si le servo a une commande enregistrée

ax12GetRegister (1, AX_REGISTERED_INSTRUCTION,1);
OU
ax12GetRegister (1, 44,1);

Valeur = 0 L’instruction REG_WRITE n’est pas reçue 
Valeur = 1 L’instruction REG_WRITE est reçue

.

Exemple de code

.

Retour au sommaire

separateur-redohm-001AX_PAUSE_TIME  

Adresse Fonction  Exemple d’ecriture dans le registre Objectif
45      
       

.

Retour au sommaire

separateur-redohm-001

AX_MOVING

Adresse Fonction  Exemple lecture du registre Objectif
46      
       

.

Retour au sommaire

.

separateur-redohm-001

Pilotage de la led sur le servomoteur avec la carte ArbotiX-M

.

.

Retour au sommaire

.

separateur-redohm-001

Exemple utilisation des moteurs  Dynamixel

.

Robot hexapode

.

Retour au sommaire

 

.

Lien utile pour la carte contrôleur Arbotix

 

Fournisseur   : 

https://www.trossenrobotics.com/p/arbotix-robot-controller.aspx

Information technique : 

Déscription de la table de contrôle du servo AX-12+,AX-12A par Robotis :

 

.

A savoir sur l’utilisation des informations de cette article

.

Les informations sur les caractéristiques et spécificités de la carte ArbotiX-M et ses interfaces associées qui sont fournis sur cette page correspondent  aux informations des fiches techniques du constructeur si malgré le soin apporté à la réalisation de cet article une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable.

Les programmes , schémas et autres que ceux donnés par le constructeur font parti des montages utiles à nos applications si malgré le soin apporté à nos montages une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable .

L’ensemble des informations techniques de cet article a été utilisé pour nos applications, elles vous sont fournies comme un exemple de document de travail. Mais nous ne pourrions être tenu responsables d’une mauvaise utilisation de celle-ci.

.

Retour au sommaire