🛠 Automatización distribuida: Control preciso y telemetría con la Encoder Motor Driver Unit

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · avance · Intégrez l'unité DRV8837DSGR dans un système IoT pour un contrôle en boucle fermée synchronisé et une remontée de données en temps réel.

Objetivos

Este tutorial avanzado tiene como objetivo diseñar un nodo de automatización autónomo utilizando la Unidad Encoder Motor Driver (DRV8837DSGR). La meta es ir más allá del control manual para implementar una estrategia de control en bucle cerrado (PID) basada en datos del codificador, mientras se integra la tarjeta en una red IoT para telemetría. Aprovecharemos las capacidades de detección de corriente INA199A para la protección del motor y el LED RGB para la indicación de estado local.

Hardware Necesario

Pasos

Conecte la unidad al puerto Grove I2C de su placa principal. Asegúrese de que la fuente de alimentación externa esté conectada al conector DC de la unidad (6-12V). Por defecto, la dirección I2C es 0x2F. Para una red multinodo, debe configurar una dirección única (entre 0x08 y 0x77) a través de las líneas AD0/AD1 si están disponibles, o mediante el comando de software inicial si el firmware lo permite, para evitar conflictos de bus.

  1. Configuración de Hardware y Direccionamiento

Inicialice la comunicación I2C en el código. Configure el modo de funcionamiento en "Closed Loop" (bucle cerrado). Calibre la resolución del codificador. La unidad admite codificadores de 3 a 15 PPR (Pulsos por Revolución). Defina la constante PPR según su motor específico para convertir pulsos en grados o revoluciones.

  1. Inicialización y Calibración del Codificador

No se limite a enviar una consigna de velocidad. Lea los datos de posición y velocidad a través de los registros I2C. Implemente un algoritmo PID simple en la placa principal: calcule el error entre la posición objetivo y la posición actual, luego ajuste la consigna PWM enviada a la unidad. Utilice los modos "Start/Stop progresivo" para evitar choques mecánicos durante los cambios de consigna.

  1. Implementación del Bucle de Control PID

Cada 500ms, lea los registros de estado: consumo de corriente (INA199A), velocidad actual y posición. Publique estos datos en un broker MQTT. Utilice el circuito de detección de corriente para definir un umbral de seguridad: si la corriente supera 1.2A (límite de carga), detenga inmediatamente el motor para evitar el sobrecalentamiento.

  1. Integración de Red y Telemetría

Controle el LED WS2812C integrado para reflejar el estado del sistema: Verde (funcionamiento nominal), Rojo (error de posición o sobrecorriente), Azul (conexión de red activa). Esto permite un diagnóstico visual inmediato sin pantalla.

  1. Retroalimentación Visual mediante LED RGB

Verificación

Para Ir Más Allá

Explore la sincronización multi-eje utilizando varias unidades en el mismo bus I2C con direcciones distintas. Integre un algoritmo de filtro de Kalman para suavizar los datos del codificador AB y mejorar la estabilidad del control PID a alta velocidad.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales