Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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.