Moteurs XL-320

Les servo-moteurs XL-320 sont légers, rapides, précis et offre d’importante possibilités de contrôle. De plus, ils sont très bon marché. Ces moteurs sont parfaits pour commencer la robotique et ils peuvent même permettre de fabriquer des robots très complexes. Ils ont cependant un couple faible (0.39 N.m) et ne permettront de faire que des robots de petite taille.

Dynamixel-XL-320step-4-2

Le montage et le démontage des moteurs est facilité par l’utilisation des rivets Ollo.

ollo_rivets_size

Ces moteurs n’ont actuellement pas d’équivalent sur le marché, ce sont les seuls moteurs « low-cost » atteignant un tel niveau de performance. Ils sont fabriqué par l’entreprise Coréenne Robotis.


Caractéristiques techniques :

Poids 16.7g
Dimensions 24 x 36 x 27 mm
Signal de commande : Paquet Numérique
Couple (kg.cm) 3.98
Couple (N.m) 0.39
Vitesse (tr/min) 114
Tension d’alimentation 6 ~ 8.4V
Tension maximale 8.4V
Tension recommandée 7.4V
Rapport de réduction 238 : 1
Rotation minimum : Environ 0.29 degrés x 1024
Type de protocole : Série Asynchrone Half Duplex (8 Bit, 1 Stop, sans parité)
Tension : 7.4 V
Température de fonctionnement : -5° ~ +70°
Lien (physique) : Niveau TTL Multi Drop
ID : 254 ID (0~253)
Vitesse de transmission : 7843bps ~ 1 Mbps
Retour d’informations : Position, de température, de charge, tension d’entrée, etc
Moteur Cored

Ces servo-moteurs comprennent un moteur monté sur une carte électronique avec un contrôleur magnétique de position.

xl-320_demonte

Le microcontrôleur de la carte électronique embarqué dans le moteur sert à gérer la communication avec l’extérieur ainsi que les réglages de position ,de vitesse et de couple.

L’ensemble des données accessibles sur les registres du moteurs sont représentées dans le tableau suivant :

Area Address (Hexadecimal) Size(byet) Name Description Access Inital Value Min Max
E

E

P

R

O

M

0 2 Model Number Model number R 350
2 1 Version of Firmware Information on the version of firmware R
3 1 ID ID of Dynamixel RW 1 0 252
4 1 Baud Rate Baud Rate of Dynamixel RW 3 0 3
5 1 Return Delay Time Return Delay Time RW 250 0 254
6 2 CW Angle Limit clockwise Angle Limit RW 0 0 1023
8 2 CCW Angle Limit  counterclockwise Angle Limit RW 1023 0 1023
11 1 Control Mode Control Mode RW 2 1 2
12 1 Limit Temperature Internal Limit Temperature RW 65 0 150
13 1 lower Limit Voltage Lowest Limit Voltage RW 60 50 250
14 1 Upper Limit Voltage Upper Limit Voltage RW 90 50 250
15 2 Max Torque Lowest byte of Max. Torque RW 1023 0 1023
17 1 Return Level Return Level RW 2 0 2
18 1 Alarm Shutdown Shutdown for Alarm RW 3 0 7
R7

A

M

24 1 Torque Enable Torque On/Off RW 0 0 1
25 1 LED LED On/Off RW 0 0 7
27 1 D Gain D Gain RW 0 0 254
28 1  I Gain  I Gain RW 0 0 254
29 1 P Gain P Gain RW 32 0 254
30 2 Goal Position Goal Position RW 0 1023
32 2 Goal Velocity Goal Speed RW 0 2047
35 2 Goal Torque Goal Torque RW 0 1023
37 2 Present Position  Current Position R
39 2 Present Speed Current Speed R
41 2 Present Load  Current Load R
45 1 Present Voltage Current Voltage R
46 1 Present Temperature Present temperature R
47 1 Registered Instruction Registered Instruction R 0
49 1 Moving Moving R 0
50 1 Hardware Error Status Hardware error status R 0
51 2 Punch Punch RW 32 0 1023

Il est donc possible de donner des objectifs de position, de vitesse et de couple maximum, ainsi que de gérer un asservissement de type PID. Les valeurs de position, de vitesse, de couple, de température peuvent être lues et le moteur peut fonctionner en mode « articulation » (-150°/+150°) ou en mode « roue » (rotation continue).

Le protocole de communication est en half-duplex (le même fil pour l’aller et le retour des informations) , TTL ( le signal est en 0-5V), asynchrone (il faut indiquer au moteur quel est l’unité de temps de découpage du signal) . Les trames envoyées doivent respecter le protocole de communication dynamixel 2.0.

La notice technique complète est disponible sur le site du fabricant du moteur (également les côtes du moteur XL-320).


Utilisation :

Il est bien entendu possible de contrôler le moteur en utilisant une carte de communication UART et les informations du protocole mais cela représente beaucoup de travail et il existe déjà des solutions prêtes à l’emploi pour contrôler efficacement le moteur. Voici un extrait des possibilités les plus couramment utilisées.

Contrôler le moteur depuis une Raspberry Pi

C’est la meilleure solution, car la Raspberry pourra être embarquée sur le robot. Vous aurez besoin d’une Raspberry Pi (2 ou 3) et d’une carte PIXL permettant la communication avec les moteurs.

La Raspberry doit être paramétrée correctement afin de fonctionner avec la carte. Le plus simple est de récupérer une version de Raspbian déjà paramétrée et de l’installer sur une carte mémoire pour votre Raspberry.

Rasp.Pi 2 :  (utilisateur : poppy / mot de passe :poppy / hostname : poppy ) télécharger.

Rasp.Pi 3 : voir la section download.

Néanmoins si vous désirez, paramétrer votre propre Raspbian, la procédure est décrite ici.

Une fois votre Raspberry correctement configuré, connectez un seul moteur à la carte  car vous allez devoir d’abord attribuer des ID différents à vos différents moteurs. C’est la librairie python Pypot qui permet de contrôler les moteurs.

Voir un exemple de code python commenté qui montre les commandes de bases des moteurs et comment changez l’ID d’un moteur.  Les commandes Python sont passées depuis un notebook Jupyter (accessible sur http://roboticia.local:8888 si vous avez récupéré l’image citée précédemment).

Contrôler le moteur depuis un ordinateur

Ce peut être une solution pour des montages fixes ou pour tester les moteurs. Il vous faudra un USB2AX et une carte d’alimentation.

Fichier 25-07-2016 17 38 20

Contrôler le moteur depuis une carte Arduino

Pour des montages simples car la complexité des programmes sera limitée par la puissance du microcontrôleur. Des explications sur ce forum.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *