Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
DYNAMIXEL 12A
Pasul 1: Componente necesare
HARDWARE:
1. Dynamixel 12A sau orice motor Dynamixel
2. USB la Dynamixel.
SOFTWARE:
1. Expertul Robotis Dynamixel.
2. Python --- Pachetul serial instalat
Pasul 2: Introducere în Dynamixel 12A
Motoarele Dynamixel sunt extrem de precise și utilizate în cea mai mare parte în robotică. Fiecare motor Dynamixel are microcontroler STM în interior. Puteți citi cuplul de curent, tensiunea, consumul de curent, temperatura, poziția etc. din Dynamixels Motors.
Specificații pentru Dynamixel 12A:
Tensiune de funcționare - 12v
Greutate - 55g
Curent maxim - 900mA
Cuplu de blocare - 15,3 Kg.cm
Pasul 3: Comunicarea / controlul Dynamixel 12A
- Dynamixel 12A nu este ca servomotorele normale care au 3 pini GND, PWM, VCC, oferă sursa de alimentare și semnal PWM și controlează motorul.
- Putem controla motoarele Dynamixel utilizând protocolul de comunicare Half Duplex UART.
Ce este protocolul de comunicare Half Duplex?
Transmiterea datelor semi-duplex înseamnă că datele pot fi transmise în ambele direcții pe un purtător de semnal, dar nu în același timp.
Acum aflăm despre Protocolul 1.0 pentru Dynamixels de la Robotis pentru a controla motoarele Dynamixel.
- Puteți comunica cu motoarele Dynamixel trimițând pachete de la laptop / microcontroler precum Arduino, r-pi etc. la microcontrolerul prezent în motoarele Dynamixel.
- Fiecare Dynamixel are ID-uri care pot fi modificate.
- Un pachet nu este altceva decât Set de octeți.
În cazul protocolului Dynamixel 1.0, veți avea două tipuri de pachete
- Pachete de instrucțiuni
- Pachete de stare
Pachetul de instrucțiuni este datele de comandă trimise dispozitivului.
Pachetul de instrucțiuni arată astfel:
Header1, Header2, ID, Length, Instruction, Param 1 … Param, NChecksum
0xFF, 0xFF, ID, Lungime, Instrucțiune Param 1 … Param, NCHKSUM
Octetul de instrucțiuni spune ce trebuie să faceți, dacă să citiți date sau să scrieți pe motorul Dynamixel.
TABEL DE CONTROL AL UNUI MOTOR DINAMIXEL. - Tabelul de control este o structură care constă din mai multe câmpuri de date pentru a stoca starea sau pentru a controla dispozitivul.
Citiți mai multe despre tabelul de control Aici tabelul de control Robotis.
Putem accesa datele din tabelul de control de la adresa sa și, de asemenea, putem scrie.
Pasul 4: Scrierea poziției obiectivului pe motorul Dynamixel
Pachet de instrucțiuni pentru a scrie poziția obiectivului
fiecare pachet începe cu un antet
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-octet de instrucțiuni + p1 + p2 + p3 + chk sum = 5 octeți
ID = ID motor 1 Dynamixel-puteți seta ID-ul dinamic folosind software-ul robotis wizard dinamixel
INST = reg write-specificând că scrieți la motor.
P1 = Adresa de pornire a tabelului de control Data-In Poziția obiectivului are o adresă 30 (0x1E în hexazecimal).
P2 = octet mai mic de date
P3 = octet de date mai mare
Calculul sumei de verificare va fi explicat în scurt timp ………………….
Dacă trimiteți pachetul de mai sus la Dynamixel Serial utilizând USB2Dynamixel, poziția obiectivului motorului Dynamixel va fi setată la 500.
Pasul 5: CODUL PITONULUI
#Dezvoltat de Madhu. Ultima actualizare pe 2019-07-19
import Serial
timpul de import
ser = serial. Serial ('com36', '57142')
#change com port în consecință, rata mea de transmisie a motoarelor dinamixel este 57142, o puteți seta utilizând software-ul vrăjitorului Dynamixel.
în timp ce (1):
gp1 = input („introduceți poziția obiectivului ID1 (0-1023)”)
l = gp1 & 255 # octet scăzut
h = (gp1 >> 8) & 255 # octet mare
li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#check calcul sum
crc = sum (li [2:])
low1 = crc & 255
chksum = 255-low1
li.append (chksum) #adding check sum
a = bytearray (li) #converting list in bytearray
ser.write (a) #Serial send using usb2dynamixels.
time.sleep (0,5)
#Copiați codul de lipire în IDE python. Instalați pachetul pyserial. conectați partea USB a usb2dynamixel la portul USB al laptopului și un alt capăt la motorul Dynamixel. Acordați o sursă externă de 12v USB2DYNAMIXEL.
RUN codul, introduceți valoarea poziției obiectivului. Vedeți motorul în funcțiune.