Taula de continguts:

Control de Dynamixel 12A mitjançant l’enviament de paquets en sèrie: 5 passos
Control de Dynamixel 12A mitjançant l’enviament de paquets en sèrie: 5 passos

Vídeo: Control de Dynamixel 12A mitjançant l’enviament de paquets en sèrie: 5 passos

Vídeo: Control de Dynamixel 12A mitjançant l’enviament de paquets en sèrie: 5 passos
Vídeo: 12 DoF (dynamixel ax-12a servos) quadruped 2024, De novembre
Anonim
Control de Dynamixel 12A mitjançant l’enviament de paquets de manera seriosa
Control de Dynamixel 12A mitjançant l’enviament de paquets de manera seriosa

DYNAMIXEL 12A

Pas 1: components necessaris

HARDWARE:

1. Dynamixel 12A o qualsevol motor Dynamixel

2. USB a Dynamixel.

PROGRAMARI:

1. Assistent Robotis Dynamixel.

2. Python --- Paquet sèrie instal·lat

Pas 2: Introducció a Dynamixel 12A

Els motors Dynamixel són molt precisos i s’utilitzen sobretot en robòtica. Tots els motors Dynamixel tenen microcontrolador STM al seu interior. Podeu llegir el parell de corrent, la tensió, el consum de corrent, la temperatura, la posició, etc., des de Dynamixels Motors.

Especificacions de Dynamixel 12A:

Voltatge de funcionament - 12v

Pes: 55 g

Corrent màxim -900mA

Parell de parada: 15,3 Kg.cm

Pas 3: Comunicació / control de Dynamixel 12A

  • El Dynamixel 12A no és com els servomotors normals que tenen GND de 3 pins, PWM, VCC, proporcionen font d'alimentació i senyal PWM i controlen el motor.
  • Podem controlar motors Dynamixel mitjançant el protocol de comunicació UART Half Duplex.

Què és el protocol de comunicació Half Duplex?

La transmissió de dades semidúplex significa que les dades es poden transmetre en ambdues direccions en un portador de senyal, però no al mateix temps.

Ara coneixem el protocol 1.0 per a Dynamixels de Robotis per controlar motors Dynamixel.

  • Podeu comunicar-vos amb motors Dynamixel enviant paquets des del vostre portàtil / microcontrolador com Arduino, r-pi, etc., al microcontrolador que hi ha dins dels motors Dynamixel.
  • Tots els Dynamixels tenen identificadors que es poden modificar.
  • Un paquet no és més que un conjunt de bytes.

Incloent el protocol Dynamixel 1.0 tindreu dos tipus de paquets

  • Paquets d’instruccions
  • Paquets d'estat

El paquet d’instruccions són les dades d’ordres enviades al dispositiu.

El paquet d’instruccions té aquest aspecte:

Capçalera1, Capçalera2, ID, Longitud, Instrucció, Param 1 … Param, NChecksum

0xFF, 0xFF, ID, Longitud, Instrucció Param 1 … Param, NCHKSUM

El byte d’instrucció indica què cal fer, si cal llegir dades o escriure al motor Dynamixel.

TAULA DE CONTROL D’UN MOTOR DYNAMIXEL.-La Taula de Control és una estructura que consta de múltiples camps de dades per emmagatzemar l’estat o controlar el dispositiu.

Llegiu més sobre la taula de control HereControl Table Robotis.

Podem accedir a les dades de la taula de control des de la seva adreça i també podem escriure.

Pas 4: escriure la posició de l'objectiu al motor Dynamixel

Paquet d'instruccions per escriure la posició de l'objectiu

cada paquet comença amb una capçalera

H1 H2 ID LEN INST P1 P2 P3 CKSM

0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2

LEN-byte d'instruccions + p1 + p2 + p3 + chk sum = 5 bytes

ID = ID de motor Dynamixel 1: podeu definir l'ID de Dynamixel mitjançant el programari de l'assistent de robotix Dynamixel

INST = reg write-especificant que escriviu al motor.

P1 = Adreça inicial de la taula de control Data-In La posició de l'objectiu té una adreça 30 (0x1E en hexadecimal).

P2 = byte de dades inferior

P3 = byte de dades més alt

En breu s’explicarà el càlcul de la suma de verificació ………………….

Si envieu el paquet anterior a Dynamixel en sèrie mitjançant USB2Dynamixel, la posició de l'objectiu del motor de Dynamixel s'establirà a 500.

Pas 5: CODI DE PITÓ

#Desenvolupat per Madhu. Darrera actualització el 2019-07-19

importació de sèrie

temps d'importació

ser = serial. Serial ('com36', '57142')

#change com port en conseqüència, la velocitat de transmissió dels motors Dynamixel és de 57142, podeu configurar-lo mitjançant el programari de l'assistent Dynamixel.

mentre (1):

gp1 = input ('introduïu la posició de l'objectiu ID1 (0-1023)')

l = gp1 i 255 # octet baix

h = (gp1 >> 8) i 255 # octet alt

li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]

#check càlcul de la suma

crc = suma (li [2:])

baix1 = crc i 255

chksum = 255-baix1

li.append (chksum) #adding check sum

a = bytearray (li) #converting list in bytearray

ser.write (a) # Enviament en sèrie mitjançant usb2dynamixels.

time.sleep (0,5)

#Copieu el codi enganxat a IDE de python. Instal·leu el paquet pyserial. connecteu el costat USB d'usb2dynamixel al port USB del portàtil i un altre extrem al motor Dynamixel. Doneu un subministrament extern de 12v a USB2DYNAMIXEL.

EXECUTEU el codi i introduïu el valor de la posició de l'objectiu. Veure motor en marxa.

Recomanat: