🛠 Automatización en Bucle Cerrado con Driver 4-Encoder

Unit 4-Encoder Motor Driver (DRV8837DSGR) · intermediaire · Configurez une automatisation précise en utilisant la régulation de position en boucle fermée et le stockage d'état via I2C.

Objetivos

Este tutorial tiene como objetivo implementar una automatización precisa utilizando el módulo M5Stack 4-Encoder Motor Driver. Configuraremos el control de posición en bucle cerrado para un motor, simularemos una secuencia simple de automatización industrial (mover, esperar, regresar) y discutiremos la gestión de datos de posición. Este nivel intermedio asume una comprensión básica del protocolo I2C y programación en C++ o Python.

Materiales necesarios

Pasos

  1. Conexión física: Conecte el motor al puerto PH2.0-6P n°1. Asegúrese de que los cables del codificador estén correctamente alineados con los pines dedicados. Conecte la alimentación DC externa al conector adecuado para garantizar la corriente necesaria (hasta 1,2A por canal).
  2. Inicialización I2C: En su código, inicialice el bus I2C. La dirección predeterminada del módulo es 0x24. Verifique la comunicación leyendo un registro de identificación o estado.
  3. Configuración del modo: Escriba en los registros de configuración para habilitar el modo "Control de Posición" (bucle cerrado) en el canal del motor 1. Defina los parámetros PID si su biblioteca lo permite, o use valores predeterminados para una primera prueba.
  4. Secuencia de automatización: Implemente una función que envíe un punto de consigna de posición (en ticks de codificador). Espere a que el registro de estado indique que el motor ha alcanzado la posición objetivo (bit "Done" o equivalente). Agregue un retraso de 2 segundos para simular una tarea industrial.
  5. Regreso al origen: Envíe un punto de consigna de posición de 0 para regresar el motor a su posición inicial. Verifique que el movimiento sea fluido gracias al arranque/parada progresivo integrado.
  6. Lectura de datos: Lea periódicamente la posición actual y la corriente consumida (a través del sensor INA199A integrado) para monitorear el estado del sistema.

Verificación

El motor debe moverse hacia la posición objetivo, detenerse precisamente, esperar y luego regresar a cero. El LED RGB WS2812C puede servir como indicador visual (ej: verde en movimiento, azul en espera). Si el motor vibra o no se detiene, verifique el cableado del codificador y los parámetros de ganancia PID.

Para ir más allá

Explore el modo de suspensión para ahorrar energía entre los ciclos de automatización. También puede extender este sistema a múltiples motores para crear un brazo robótico simple, sincronizando movimientos mediante comandos I2C secuenciales o paralelos.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales