🛠 Primer Conexión y Puesta en Marcha del Driver Motor 4-Encoder
Objectifs
Este tutorial le guía en la configuración inicial de la Unit 4-Encoder Motor Driver (DRV8837DSGR) de M5Stack. El objetivo es lograr alimentar el módulo, conectarlo a un controlador anfitrión (como un M5StickC o un Arduino compatible con I2C) y confirmar que la comunicación I2C está establecida. Aún no controlaremos los motores, pero verificaremos la presencia del módulo en el bus.
Matériel nécessaire
- 1x Unit 4-Encoder Motor Driver (DRV8837DSGR)
- 1x Controlador anfitrión compatible con I2C (ej: M5Stack Core2, M5StickC Plus, o Arduino Uno con shield Grove)
- 1x Cable Grove HY2.0-4P
- 1x Fuente de alimentación DC externa (6V a 12V) O alimentación USB del controlador
- Ordenador con IDE de Arduino instalado
Étapes
- Preparación del hardware: Asegúrese de que el controlador anfitrión esté apagado. Localice los dos puertos Grove HY2.0-4P en el módulo DRV8837. Uno es la entrada (IN) y el otro la salida (OUT) para la cadena en serie I2C.
- Conexión I2C: Conecte un cable Grove entre el puerto Grove del controlador anfitrión y el puerto Grove IN del módulo DRV8837. La comunicación I2C utiliza las líneas SDA y SCL. Por defecto, la dirección I2C del módulo es 0x24.
- Alimentación:
- *Opción A (Recomendada para pruebas)*: Si utiliza un controlador M5Stack alimentado por USB, el puerto Grove proporciona 5V. Esto es suficiente para inicializar el módulo y detectar su presencia, pero no permitirá mover motores bajo carga.
- *Opción B (Para motores)*: Conecte una fuente de alimentación DC externa (6-12V) al conector dedicado del módulo. El módulo tiene un convertidor DC-DC integrado que regula la tensión para los motores y puede proporcionar hasta 5V al anfitrión a través del puerto Grove si es necesario.
- Configuración de software: Abra el IDE de Arduino. Instale la biblioteca M5Stack o una biblioteca I2C estándar. Cargue el siguiente código de prueba en su controlador:
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(); // Inicializa el bus I2C
Serial.println("Buscando módulo DRV8837...");
// Dirección por defecto del módulo
byte address = 0x24;
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.println("¡Módulo encontrado en la dirección 0x24!");
} else {
Serial.print("Módulo no encontrado. Error I2C: ");
Serial.println(error);
}
}
void loop() {
// Nada que hacer en el bucle para esta prueba
delay(1000);
}
- Verificación física: Una vez cargado el código, abra el Monitor Serie a 115200 baudios. Si todo es correcto, aparecerá el mensaje "Módulo encontrado". El LED RGB WS2812C integrado puede encenderse según el estado inicial del firmware del módulo.
Vérification
- El Monitor Serie muestra "¡Módulo encontrado en la dirección 0x24!".
- No hay cortocircuitos ni calentamiento anormal del módulo.
- Si el módulo no se encuentra, verifique la orientación del cable Grove y la dirección I2C (configurable entre 0x08 y 0x77).
Pour aller plus loin
Una vez establecida la comunicación, puede explorar comandos básicos para configurar modos de control (lazo abierto vs cerrado) y probar el arranque suave de un motor con engranajes conectado a uno de los cuatro conectores PH2.0-6P.
Otros tutoriales para esta placa
- Descubriendo E/S: LED RGB y lectura de encoders
- Automatiza un chasis robótico con el Driver 4-Encoder
- 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