Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
DYNAMIXEL 12A
Schritt 1: Erforderliche Komponenten
HARDWARE:
1. Dynamixel 12A oder jeder Dynamixel-Motor
2. USB zu Dynamixel.
SOFTWARE:
1. Robotis Dynamixel-Assistent.
2. Python ---Serielles Paket installiert
Schritt 2: Einführung in Dynamixel 12A
Dynamixel-Motoren sind hochpräzise und werden hauptsächlich in der Robotik verwendet. Jeder Dynamixel-Motor hat einen STM-Mikrocontroller im Inneren. Sie können aktuelles Drehmoment, Spannung, Stromaufnahme, Temperatur, Position usw. von Dynamixels Motors ablesen.
Spezifikationen von Dynamixel 12A:
Betriebsspannung --12v
Gewicht--55g
Maximaler Strom --900mA
Stillstandsdrehmoment - 15,3 kg.cm
Schritt 3: Kommunikation/Steuerung von Dynamixel 12A
- Dynamixel 12A ist nicht wie normale Servomotoren, die über 3-Pin-GND, PWM, VCC verfügen, Stromversorgung und PWM-Signal geben und den Motor steuern.
- Wir können Dynamixel-Motoren mit dem Halbduplex-UART-Kommunikationsprotokoll steuern.
Was ist das Halbduplex-Kommunikationsprotokoll?
Halbduplex-Datenübertragung bedeutet, dass auf einem Signalträger Daten in beide Richtungen übertragen werden können, jedoch nicht gleichzeitig.
Jetzt lernen wir das Protokoll 1.0 für Dynamixels von Robotis kennen, um Dynamixel-Motoren zu steuern.
- Sie können mit Dynamixel-Motoren kommunizieren, indem Sie Pakete von Ihrem Laptop/Mikrocontroller wie Arduino, r-pi usw. an den Mikrocontroller senden, der in den Dynamixel-Motoren vorhanden ist.
- Alle Dynamixels haben IDs, die geändert werden können.
- Ein Paket ist nichts anderes als ein Satz von Bytes.
Im Falle des Dynamixel-Protokolls 1.0 haben Sie zwei Arten von Paketen
- Anleitungspakete
- Statuspakete
Befehlspaket sind die an das Gerät gesendeten Befehlsdaten.
Anleitungspaket sieht so aus:
Header1, Header2, ID, Länge, Anweisung, Param 1…Param, NChecksum
0xFF, 0xFF, ID, Länge, Anweisung Param 1…Param, NCHKSUM
Das Anweisungsbyte sagt, was zu tun ist, ob Daten gelesen oder in den Dynamixel-Motor geschrieben werden sollen.
STEUERTABELLE EINES DYNAMIXEL-MOTORS.-Die Steuertabelle ist eine Struktur, die aus mehreren Datenfeldern besteht, um den Status zu speichern oder das Gerät zu steuern.
Lesen Sie mehr über Steuertisch hierSteuertisch Robotis.
Wir können von ihrer Adresse aus auf Daten in der Steuertabelle zugreifen und auch schreiben.
Schritt 4: Schreiben der Zielposition in den Dynamixel-Motor
Anweisungspaket zum Schreiben der Zielposition
Jedes Paket beginnt mit einem Header
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-Befehlsbyte+p1+p2+p3+chk sum=5 Bytes
ID = Dynamixel-Motor-ID 1 - Sie können die Dynamixel-ID mit der Robotis Dynamixel Wizard-Software einstellen
INST=reg write-gibt an, dass Sie in den Motor schreiben.
P1=Startadresse des Data-In in der Steuertabelle Die Zielposition hat eine Adresse 30(0x1E in hexadezimal).
P2=unteres Datenbyte
P3=höheres Datenbyte
Die Berechnung der Prüfsumme wird in Kürze erklärt………………….
Wenn Sie das obige Paket seriell über USB2Dynamixel an Dynamixel senden, wird die Motorzielposition von Dynamixel auf 500 gesetzt.
Schritt 5: PYTHON-CODE
#Entwickelt von Madhu. Letzte Aktualisierung am 19.07.2019
Seriennummer importieren
Importzeit
ser=serial. Serial('com36', '57142')
#com-Port entsprechend ändern, die Baudrate meiner Dynamixel-Motoren beträgt 57142, Sie können sie mit der Dynamixel-Assistentensoftware einstellen.
während(1):
gp1=input('Zielposition ID1 eingeben(0-1023)')
l=gp1&255 #niedriges Byte
h=(gp1>>8)&255 #High-Byte
li=[0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#Prüfsummenberechnung
crc=sum(li[2:])
low1=crc & 255
Prüfsumme=255-low1
li.append(chksum) #Prüfsumme hinzufügen
a=bytearray(li) #konvertieren der Liste in bytearray
ser.write(a) #Seriell mit usb2dynamixels senden.
time.sleep(0.5)
#Kopieren Sie die Codepaste in die Python-IDE. pyserial-Paket installieren. Verbinden Sie die USB-Seite von usb2dynamixel mit dem USB-Port des Laptops und ein anderes Ende mit dem Dynamixel-Motor. Versorgen Sie USB2DYNAMIXEL mit einer externen 12-V-Versorgung.
FÜHREN Sie den Code aus, geben Sie den Zielpositionswert ein. Siehe Motor läuft.