Tabla de contenido:

Controlar Dynamixel 12A mediante el envío de paquetes en serie: 5 pasos
Controlar Dynamixel 12A mediante el envío de paquetes en serie: 5 pasos

Video: Controlar Dynamixel 12A mediante el envío de paquetes en serie: 5 pasos

Video: Controlar Dynamixel 12A mediante el envío de paquetes en serie: 5 pasos
Video: Dynamixel Tutorial 3: How to Set a Position on the AX-12 Motor 2024, Noviembre
Anonim
Controlar Dynamixel 12A enviando paquetes en serie
Controlar Dynamixel 12A enviando paquetes en serie

DINAMIXEL 12A

Paso 1: componentes necesarios

HARDWARE:

1. Dynamixel 12A o cualquier motor Dynamixel

2. USB a Dynamixel.

SOFTWARE:

1. Asistente de Robotis Dynamixel.

2. Python --- Paquete serial instalado

Paso 2: Introducción a Dynamixel 12A

Los motores Dynamixel son altamente precisos y se utilizan principalmente en robótica. Cada motor Dynamixel tiene un microcontrolador STM en su interior. Puede leer el par actual, el voltaje, el consumo de corriente, la temperatura, la posición, etc., desde Dynamixels Motors.

Especificaciones de Dynamixel 12A:

Voltaje de funcionamiento --12v

Peso - 55g

Corriente máxima --900mA

Par de bloqueo - 15,3 kg.cm

Paso 3: Comunicación / control de Dynamixel 12A

  • Dynamixel 12A no es como los servomotores normales que tienen 3 pines GND, PWM, VCC, proporcionan fuente de alimentación y señal PWM y controlan el motor.
  • Podemos controlar motores Dynamixel mediante el protocolo de comunicación Half Duplex UART.

¿Qué es el protocolo de comunicación Half Duplex?

La transmisión de datos semidúplex significa que los datos se pueden transmitir en ambas direcciones en una portadora de señal, pero no al mismo tiempo.

Ahora aprendemos sobre el Protocolo 1.0 para Dynamixels de Robotis para controlar motores Dynamixel.

  • Puede comunicarse con los motores Dynamixel enviando paquetes desde su computadora portátil / microcontrolador como Arduino, r-pi, etc., al microcontrolador que está presente dentro de los motores Dynamixel.
  • Todos los Dynamixels tienen ID que se pueden modificar.
  • Un paquete no es más que un conjunto de bytes.

En caso del protocolo Dynamixel 1.0, tendrá dos tipos de paquetes

  • Paquetes de instrucciones
  • Paquetes de estado

El paquete de instrucciones son los datos de comando enviados al dispositivo.

El paquete de instrucciones tiene este aspecto:

Encabezado1, Encabezado2, ID, Longitud, Instrucción, Param 1… Param, NChecksum

0xFF, 0xFF, ID, longitud, instrucción Param 1… Param, NCHKSUM

El byte de instrucción indica qué hacer, si leer datos o escribir en el motor Dynamixel.

TABLA DE CONTROL DE UN MOTOR DYNAMIXEL.-La Tabla de Control es una estructura que consta de múltiples campos de Datos para almacenar el estado o para controlar el dispositivo.

Leer más sobre la tabla de control HereControl Table Robotis.

Podemos acceder a los datos de la tabla de control desde su dirección y también podemos escribir.

Paso 4: escribir la posición de la meta en el motor Dynamixel

Paquete de instrucciones para escribir la posición del objetivo

cada paquete comienza con un encabezado

H1 H2 ID LONG INST P1 P2 P3 CKSM

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

Byte de instrucción LEN + p1 + p2 + p3 + chk suma = 5 bytes

ID = ID del motor Dynamixel 1: puede configurar la ID de dynamixel utilizando el software robotis dynamixel wizard

INST = reg write-especificando que está escribiendo en el motor.

P1 = Dirección de inicio de los datos: en la tabla de control La posición del objetivo tiene una dirección 30 (0x1E en hexadecimal).

P2 = byte más bajo de datos

P3 = mayor byte de datos

El cálculo de la suma de comprobación se explicará en breve ………………….

Si envía el paquete anterior a Dynamixel en serie utilizando USB2Dynamixel, la posición objetivo del motor Dynamixel se establecerá en 500.

Paso 5: CÓDIGO PYTHON

# Desarrollado por Madhu. Última actualización el 2019-07-19

importar serial

tiempo de importación

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

#cambie el puerto de comunicaciones en consecuencia, la velocidad en baudios de mis motores dynamixel es 57142, puede configurarla usando el software del asistente Dynamixel.

mientras que (1):

gp1 = input ('ingrese la posición objetivo ID1 (0-1023)')

l = gp1 y 255 # byte bajo

h = (gp1 >> 8) & 255 # byte alto

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

# comprobar el cálculo de la suma

crc = suma (li [2:])

low1 = crc y 255

chksum = 255-low1

li.append (chksum) #adding check sum

a = bytearray (li) #convirtiendo lista en bytearray

ser.write (a) # Enviar en serie usando usb2dynamixels.

tiempo. de sueño (0.5)

# Copie el código pegado en Python IDE. Instale el paquete pyserial. conecte el lado USB de usb2dynamixel al puerto USB de la computadora portátil y otro extremo al motor Dynamixel. Proporcione un suministro externo de 12v a USB2DYNAMIXEL.

EJECUTE el código, ingrese el valor de la posición de la meta. Ver motor en marcha.

Recomendado: