ROBOTIS a développé un BUS nommé BUS DYNAMIXEL qui permet de relier un mode « daisy chain » les actuateurs de ROBOTS. Suivant le type d’actuateur ; le protocole Dynamixel est basé sur le standard TTL (série AX) ou bien RS RS485 (série RX, EX).
La description d’un actuateur ROBOTIS est donnée ci-dessous.
Aujourd’hui seuls des actuateurs peuvent se connecter sur le BUS DYNAMIXEL. Mais si quelqu’un souhaite connecteurs des capteurs au bus DYNAMIXEL, il ne le peut pas.
Après quelques recherches, j’ai pu découvrir qu’une société, en fait, un homme Jon Hylands proposait en 2008 le Bioloid I/O Board, exactement ce que je cherche. Le logiciel a été réalisé par Dave Hylands, oui une affaire de famille ! Le logiciel est disponible ici.
Hélas le Bioloid I/O Board n’est plus disponible aujourd’hui. Il faut donc le concevoir à nouveau !
Caractéristiques des Actuateurs Robot Dynamixel Robotis :
• Communication en Réseau: Les Dynamixels peuvent être mis en chaîne et communiquent jusqu'à 1Mbps. Les Dynamixels qui ont un ID unique sont contrôlés avec la communication par paquet sur un bus.
• Contrôle précis de la position: Offrent une excellente résolution de 1024 divisions.
• Feedback puissant: Ils peuvent fournir leur position actuelle ou leur vitesse en plus de l'information concernant leur température interne, voltage de l'alimentation ainsi que leur destination cible.
• Fonction Alarme: Quand la température interne, le couple ou le voltage d'alimentation dépassent les limites définies, le Dynamixel fournit un feedback et peut automatiquement corriger la situation.
• "Compliance Driving": Contrôlez le montant de force élastique dans le contrôle de la position.
• Établissement du couple: Le couple peut être établi sur 1023 pas du couple maximal à l'état de rotation libre.
• Opération bas courant/haut voltage: Son efficacité est haute puisqu'il opère à un voltage plus élevé. La performance de votre système robotique est aussi améliorée par sa basse consommation de courant.
• LED d'état: Il a une DEL qui sert d'affichage visuel sur l'état du Dynamixel.
Caractéristiques du Bioloid I/O Board:
- Possibilité de changer l’identifiant (par défaut 122)
- Possibilité de changer le baud rate, return delay time, status return level
- Table de contrôle partiellement créée dans l’EEPROM
- Mise à jour de la table 100 Hz
Control Table
EEPROM Table
Address |
Item |
Access |
Initial Value |
0 (0x00) |
Model Number(L) |
RD |
12 |
1 (0x01) |
Model Number(H) |
RD |
68 |
2 (0x02) |
Firmware Version |
RD |
? |
3 (0x03) |
ID |
RD,WR |
122 |
4 (0x04) |
Baud Rate |
RD,WR |
1 |
5 (0x05) |
Return Delay Time |
RD,WR |
250 |
6 (0x06) |
Digital Port 0 Direction |
RD,WR |
0 |
7 (0x07) |
Digital Port 1 Direction |
RD,WR |
0 |
8 (0x08) |
Digital Port 2 Direction |
RD,WR |
0 |
9 (0x09) |
Digital Port 3 Direction |
RD,WR |
0 |
10 (0x0A) |
PWM Type |
RD,WR |
0 |
11 (0x0B) |
Reserved |
- |
0 |
12 (0x0C) |
Reserved |
- |
0 |
13 (0x0D) |
Reserved |
- |
0 |
14 (0x0E) |
Reserved |
- |
0 |
15 (0x0F) |
Reserved |
- |
0 |
16 (0x10) |
Status Return Level |
RD,WR |
2 |
17 (0x11) |
Reserved |
- |
0 |
18 (0x12) |
Reserved |
- |
0 |
19 (0x13) |
Reserved |
- |
0 |
20 (0x14) |
Reserved |
- |
0 |
21 (0x15) |
Reserved |
- |
0 |
22 (0x17) |
Reserved |
- |
0 |
23 (0x18) |
Reserved |
- |
0 |
RAM Table
Address |
Item |
Access |
Initial Value |
24 (0x18) |
Reserved |
- |
0 |
25 (0x19) |
LED |
RD,WR |
0 |
26 (0x1A) |
ADC Port 0 (L) |
RD |
? |
27 (0x1B) |
ADC Port 0 (H) |
RD |
? |
28 (0x1C) |
ADC Port 1 (L) |
RD |
? |
29 (0x1D) |
ADC Port 1 (H) |
RD |
? |
30 (0x1E) |
ADC Port 2 (L) |
RD |
? |
31 (0x1F) |
ADC Port 2 (H) |
RD |
? |
32 (0x20) |
ADC Port 3 (L) |
RD |
? |
33 (0x21) |
ADC Port 3 (H) |
RD |
? |
34 (0x22) |
ADC Port 4 (L) |
RD |
? |
35 (0x23) |
ADC Port 4 (H) |
RD |
? |
36 (0x24) |
ADC Port 5 (L) |
RD |
? |
37 (0x25) |
ADC Port 5 (H) |
RD |
? |
38 (0x26) |
Digital Port 0 |
RD,WR |
0 |
39 (0x27) |
Digital Port 1 |
RD,WR |
0 |
40 (0x28) |
Digital Port 2 |
RD,WR |
0 |
41 (0x29) |
Digital Port 3 |
RD,WR |
0 |
42 (0x2A) |
Motor A Speed |
RD,WR |
0 |
43 (0x2B) |
Motor A Direction |
RD,WR |
0 |
44 (0x2C) |
Motor B Speed |
RD,WR |
0 |
45 (0x2D) |
Motor B Direction |
RD,WR |
0 |
Les emplacements 6-9 dans la table de contrôle définissent la direction des 4 ports numériques I/O. Par défaut, 0, le port est define comme Entrée, et 1 comme sortie.
L’emplacement 10 dans la table de contrôle indique soit « sign magnitude PWM » soit « locked antiphase PWM ». Plusieurs circuits intégrés type HBridge utilize l’option « sign magnitude » (comme le L293/L298). D’autres produits (comme ceux de Sabertooth) utilise l’option « locked antiphase ».
Mettre 0 dans l’emplacement 10 positionne l’option “sign magnitude”, et donc autorise l’utilisation des broches Direction (et l’entrée direction dans la table de contrôle) ainsi que les broches PWM.
Mettre 1 dans l’emplacement 10 positionne l’option “locked antiphase”, et donc invalide l’utilisation des broches de direction.
Pour l’option “ locked antiphase”, la valeur 127 stoppe le motor, 126-0 marche arrière, and 128-255 la marche avant.
Commands
Les commandes suivantes sont mise en oeuvre:
Instruction |
Function |
Value |
# of Parms |
PING |
No action. Used for obtaining a Status Packet |
0x01 |
0 |
READ_DATA |
Reading values in the Control Table |
0x02 |
2 |
WRITE_DATA |
Writing values to the Control Table |
0x03 |
2+ |
RESET |
Changes the control table values back to the Factory Default Values |
0x06 |
0 |