Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
DYNAMIXEL 12A
Étape 1: Composants requis
MATÉRIEL:
1. Dynamixel 12A ou n'importe quel moteur Dynamixel
2. USB vers Dynamixel.
LOGICIEL:
1. Assistant Robotis Dynamixel.
2. Python --- Paquet série installé
Étape 2: Présentation du Dynamixel 12A
Les moteurs Dynamixel sont très précis et principalement utilisés en robotique. Chaque moteur Dynamixel a un microcontrôleur STM à l'intérieur. Vous pouvez lire le couple actuel, la tension, l'appel de courant, la température, la position, etc., à partir de Dynamixels Motors.
Spécifications du Dynamixel 12A:
Tension de fonctionnement --12v
Poids-55g
Courant maximum --900mA
Couple de décrochage - 15,3 Kg.cm
Étape 3: Communiquer/contrôler Dynamixel 12A
- Dynamixel 12A n'est pas comme les servomoteurs normaux qui ont 3 broches GND, PWM, VCC, fournissent une alimentation et un signal PWM et contrôlent le moteur.
- Nous pouvons contrôler les moteurs Dynamixel en utilisant le protocole de communication Half Duplex UART.
Qu'est-ce que le protocole de communication semi-duplex ?
La transmission de données en semi-duplex signifie que les données peuvent être transmises dans les deux sens sur un support de signal, mais pas en même temps.
Maintenant, nous découvrons le protocole 1.0 pour Dynamixels de Robotis pour contrôler les moteurs Dynamixel.
- Vous pouvez communiquer avec les moteurs Dynamixel en envoyant des paquets depuis votre ordinateur portable/microcontrôleur comme Arduino, r-pi, etc., vers le microcontrôleur présent à l'intérieur des moteurs Dynamixel.
- Tous les Dynamixels ont des identifiants qui peuvent être modifiés.
- Un paquet n'est rien d'autre qu'un ensemble d'octets.
Dans le cas du protocole Dynamixel 1.0, vous aurez deux types de paquets
- Paquets d'instructions
- Paquets d'état
Le paquet d'instructions correspond aux données de commande envoyées à l'appareil.
Le paquet d'instructions ressemble à ceci:
En-tête1, En-tête2, ID, Longueur, Instruction, Param 1…Param, NChecksum
0xFF, 0xFF, ID, Longueur, Instruction Param 1…Param, NCHKSUM
L'octet d'instruction indique quoi faire, s'il faut lire les données ou écrire sur le moteur Dynamixel.
TABLE DE CONTRLE D'UN MOTEUR DYNAMIXEL.-La table de contrôle est une structure composée de plusieurs champs de données pour stocker l'état ou contrôler l'appareil.
En savoir plus sur la table de contrôle HereControl Table Robotis.
Nous pouvons accéder aux données de la table de contrôle à partir de son adresse et nous pouvons également écrire.
Étape 4: Écriture de la position de l'objectif sur le moteur Dynamixel
Paquet d'instructions pour écrire la position de l'objectif
chaque paquet commence par un en-tête
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
Octet d'instruction LEN+p1+p2+p3+chk sum=5 octets
ID = ID du moteur Dynamixel 1 - vous pouvez définir l'ID dynamixel à l'aide du logiciel assistant robotis dynamixel
INST=reg write-spécifiant que vous écrivez sur le moteur.
P1=Adresse de départ du Data-In de la table de contrôle La position de l'objectif a une adresse 30 (0x1E en hexadécimal).
P2=octet inférieur de données
P3=octet de données supérieur
Le calcul de la somme de contrôle sera expliqué sous peu………………….
Si vous envoyez le paquet ci-dessus à Dynamixel en série en utilisant USB2Dynamixel, la position d'objectif du moteur Dynamixel sera définie sur 500.
Étape 5: CODE PYTHON
#Développé par Madhu. Dernière mise à jour le 2019-07-19
importer la série
heure d'importation
ser=serial. Serial('com36', '57142')
#changez le port com en conséquence, le débit en bauds de mes moteurs dynamixel est de 57142, vous pouvez le définir à l'aide du logiciel assistant Dynamixel.
tandis que(1):
gp1=input('entrez la position de l'objectif ID1 (0-1023)')
l=gp1&255 #octet bas
h=(gp1>>8)&255 #octet de poids fort
li=[0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#calcul de la somme de contrôle
crc=somme(li[2:])
bas1=crc & 255
chksum=255-low1
li.append(chksum) #ajout d'une somme de contrôle
a=bytearray(li) #conversion de la liste en bytearray
ser.write(a) #Envoyer en série en utilisant usb2dynamixels.
temps.sommeil (0,5)
#Copiez le code coller dans python IDE. Installez le paquet pyserial. connectez le côté USB d'usb2dynamixel au port USB de l'ordinateur portable et une autre extrémité au moteur Dynamixel. Donnez une alimentation externe 12v à USB2DYNAMIXEL.
Exécutez le code, entrez la valeur de la position de l'objectif. Voir moteur en marche.