Cuprins:

Controlul Dynamixel 12A prin trimiterea pachetelor în serie: 5 pași
Controlul Dynamixel 12A prin trimiterea pachetelor în serie: 5 pași

Video: Controlul Dynamixel 12A prin trimiterea pachetelor în serie: 5 pași

Video: Controlul Dynamixel 12A prin trimiterea pachetelor în serie: 5 pași
Video: DYNAMIXEL Quick Start Guide with RC protocols 2024, Iulie
Anonim
Controlul Dynamixel 12A prin trimiterea pachetelor în serie
Controlul Dynamixel 12A prin trimiterea pachetelor în serie

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.

Recomandat: