🛠 Automatiza un chasis robótico con el Driver 4-Encoder
Objetivos
Este tutorial tiene como objetivo configurar el módulo M5Stack 4-Encoder Motor Driver para automatizar un pequeño chasis robótico. Aprenderás a inicializar la comunicación I2C, definir parámetros del motor y ejecutar una secuencia de movimiento autónomo (avanzar, girar, detenerse) utilizando la regulación de velocidad en bucle cerrado. Este caso de uso ilustra la automatización simple en robótica móvil.
Materiales necesarios
- Unidad M5Stack 4-Encoder Motor Driver (DRV8837DSGR)
- Microcontrolador compatible (ej: M5StickC Plus2 o Core2) con puerto Grove I2C
- 4 motores de engranajes de 6 hilos (tipo TT) con codificadores integrados
- Fuente de alimentación DC externa 6-12V (o USB si la carga es baja)
- Cables Grove y cables de motor PH2.0-6P
- Ordenador con Arduino IDE instalado
Pasos
- Ensamblaje de hardware: Conecte los cuatro conectores PH2.0-6P a los motores. Asegúrese de que los cables del codificador estén correctamente alineados. Enchufe el módulo en el puerto Grove I2C de la placa principal.
- Alimentación: Para motores potentes, conecte una fuente DC externa (6-12V) al puerto de alimentación del módulo. Para motores TT pequeños, la alimentación por puerto Grove (5V) puede ser suficiente, pero asegúrese de que la corriente permanezca por debajo de 1,2A por canal.
- Configuración de software: Abra Arduino IDE. Instale la biblioteca
M5Stack_MotorDrivero la proporcionada por M5Stack para este módulo. Seleccione su placa y el puerto serie correspondiente. - Inicialización del código: Comience con
Wire.begin(). El módulo usa la dirección I2C por defecto0x24. Inicialice los cuatro canales del motor en modo de bucle cerrado. - Programar la secuencia: Escriba una función
moveRobot(speed, duration)que envíe comandos de velocidad a los cuatro motores. Para girar, invierta la dirección de los motores de un lado en comparación con el otro. - Carga: Suba el código al microcontrolador.
Verificación
- El LED RGB WS2812C del módulo debe encenderse (indicando alimentación y actividad).
- Los motores deben girar de manera síncrona durante el comando "avanzar".
- Durante un comando de giro, los motores de un lado deben girar en dirección opuesta.
- Si los motores no se mueven, verifique la dirección I2C con un escáner I2C estándar.
Para ir más lejos
Explore el control de posición en bucle cerrado para movimientos precisos. Puede agregar un sensor de distancia para evitar obstáculos, creando una automatización más compleja. Intente modificar la dirección I2C para conectar múltiples módulos en el mismo bus.
Otros tutoriales para esta placa
- Primer Conexión y Puesta en Marcha del Driver Motor 4-Encoder
- Descubriendo E/S: LED RGB y lectura de encoders
- Primera conexión y puesta en marcha del 4-Encoder Motor Driver
- Control de GPIO y LED RGB en el Driver Motor 4-Encoders
- Automatización en Bucle Cerrado con Driver 4-Encoder
- Primer cableado e inicialización del módulo 4-Encoder Motor Driver
Ejemplos de código para esta placa
i2c-motor-spin.inoarduinoclosed-loop-speed-control.inoarduinorelative-position-move.inoarduinorgb-led-status-indicator.inoarduinodifferential-drive-robot.inoarduinoi2c_basic_motor_control.pyPython