Tabla de contenido:
- Paso 1: componentes necesarios
- Paso 2: Introducción a Dynamixel 12A
- Paso 3: Comunicación / control de Dynamixel 12A
- Paso 4: escribir la posición de la meta en el motor Dynamixel
- Paso 5: CÓDIGO PYTHON
Video: Controlar Dynamixel 12A mediante el envío de paquetes en serie: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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:
Controlar el brillo del LED mediante Raspberry Pi y una página web personalizada: 5 pasos
Control del brillo del LED mediante Raspberry Pi y página web personalizada: usando un servidor apache en mi pi con php, encontré una manera de controlar el brillo de un LED usando un control deslizante con una página web personalizada que es accesible en cualquier dispositivo conectado a la misma red que su pi .Hay muchas formas en las que esto se puede hacer
Barco RC de madera que puede controlar manualmente o mediante un sitio web: 9 pasos
Barco RC de madera que puedes controlar manualmente o mediante un sitio web: Hola, soy un estudiante de Howest y construí un barco RC de madera que puedes controlar mediante un controlador o un sitio web. Estaba cansado de que los vehículos rc se averiaran tan rápido. y quería algo con lo que divertirme cuando vivía en el mar
Sistema de asistencia mediante el envío de datos RFID al servidor MySQL usando Python con Arduino: 6 pasos
Sistema de asistencia mediante el envío de datos RFID al servidor MySQL usando Python con Arduino: En este proyecto, conecté RFID-RC522 con arduino y luego envío datos de RFID a la base de datos phpmyadmin. A diferencia de nuestros proyectos anteriores, no estamos usando ningún escudo ethernet en este caso, aquí solo estamos leyendo los datos en serie que provienen de ar
SmartPost: Casillero inteligente para paquetes postales: 7 pasos
SmartPost: Smart Postal Package Locker: Para finalizar mi primer año de Nuevos Medios y Tecnología de la Comunicación (NMCT), tuve que hacer un proyecto en el que integre todos los cursos del año pasado, se me ocurrió la idea de hacer un smart armario. Puedo usarlo para automatizar un punto de recolección para pa
Barco de aire RC usando cinta para paquetes: 5 pasos
Barco RC Air usando cinta de paquetes: Hola En este proyecto, he hecho un barco RC AIR. El casco está hecho de una lámina de espuma de poliestireno y, como saben, esas láminas son un poco porosas y el agua entra fácilmente en su interior, lo que dificulta que el casco del barco lo mantenga flotante en el agua. Entonces