En el desarrollo de robótica y en proyectos de investigación, controlar de forma rápida y fiable motores brushless de alto rendimiento para articulaciones es uno de los principales retos para los desarrolladores.
Este tutorial le mostrará cómo utilizar una placa de desarrollo Arduino junto con un módulo CAN MCP2515 para lograr un control preciso mediante joystick del motor de articulación robótica CubeMars AK45-36.
A través de este tutorial, aprenderá los fundamentos del cableado de hardware, la configuración del modo de control MIT y la implementación de la lógica de control, lo que le permitirá integrar fácilmente los motores CubeMars en sus proyectos de robótica.
Antes de comenzar, asegúrese de contar con el siguiente hardware y software:
Hardware:
Placa de desarrollo Arduino (por ejemplo, Arduino Uno)
Módulo CAN MCP2515
Módulo joystick de dos ejes
Fuente de alimentación DC y cables Dupont
Software:
Arduino IDE
Biblioteca mcp_can (instalada previamente)
Un cableado correcto es la base de una comunicación estable.
Debe prestar atención a las siguientes tres conexiones principales:
MCP2515 y Arduino (comunicación SPI): Conecte el módulo MCP2515 al Arduino mediante la interfaz SPI estándar (pines CS, SO, SI, SCK, etc.).
Conexión del bus CAN (al motor): Conecte los pines CAN_H y CAN_L del módulo MCP2515 a las líneas correspondientes CAN_H y CAN_L del motor AK45-36.
Joystick y alimentación: Conecte el pin de señal del eje X del joystick a una entrada analógica del Arduino (por ejemplo, A0)
Finalmente, conecte el motor a una fuente de alimentación DC adecuada. Nota: No invierta nunca la conexión de alimentación del motor ni las líneas de señal CAN.
Para aplicaciones de control dinámico como el seguimiento con joystick, recomendamos encarecidamente el uso del modo de control MIT.
Este modo permite enviar simultáneamente comandos de posición, velocidad y par en un único mensaje CAN, ofreciendo una respuesta extremadamente rápida.
Pasos de configuración:
Utilice el módulo oficial CubeMars USB-CAN para conectar el motor a un ordenador y abrir el software superior de control.
Configure el ID CAN del motor (por ejemplo, 0x01) y la velocidad en baudios (debe coincidir con el código Arduino, normalmente 1 Mbps).
Haga clic en “Entrar en modo MIT”.
En este punto, al girar manualmente el eje del motor, debería sentirse una resistencia evidente, lo que indica que la configuración se ha realizado correctamente.
En el entorno Arduino, la implementación del control del motor mediante joystick es sencilla y se basa principalmente en tres pasos:
Lectura de entrada: Utilice un pin de entrada analógica del Arduino (como A0) para leer en tiempo real los valores del joystick. El rango típico es de 0 a 1023.
Mapeo de datos: Utilice una función de mapeo (como map) para convertir linealmente los valores del joystick al rango de posición o velocidad objetivo soportado por el motor AK45-36.
Envío de mensajes CAN: Utilice la biblioteca de comunicación CAN para empaquetar los datos convertidos en una trama CAN estándar del modo MIT y enviarlos al ID CAN correspondiente del motor.
Consejo: Para obtener el código completo de Arduino, funciones de conversión de datos y documentación del protocolo de comunicación, visite nuestro centro oficial de descargas.
Después de completar la configuración, encienda el motor y el Arduino.Mueva el joystick y debería observar cómo el eje del motor gira suavemente hacia adelante y hacia atrás siguiendo el movimiento del joystick.
Vea el video a continuación para una demostración práctica completa y explicación detallada.
P1: El motor no responde después de encenderlo. No gira al mover el joystick.
R:Verifique si el motor ha recibido correctamente el comando de Enable (activación).
En el modo MIT, el motor está deshabilitado por defecto. Es necesario enviar primero un mensaje CAN específico para activarlo antes de que pueda responder a los comandos de control.
P2: El motor vibra o responde lentamente durante el control con joystick.
R:Esto normalmente está relacionado con la calidad de la comunicación del bus CAN.Asegúrese de que los cables de señal CAN no estén agrupados en paralelo con los cables de alimentación del motor.
Si la distancia de comunicación es larga, active la resistencia de terminación de 120Ω mediante el interruptor DIP del módulo MCP2515.
El AK45-36 es solo uno de los motores de alto rendimiento de la familia CubeMars.Ya sea que esté desarrollando robots cuadrúpedos, humanoides, brazos robóticos u otras plataformas robóticas, CubeMars ofrece soluciones de actuadores compactas y de alto rendimiento adaptadas a sus necesidades.
[Descubra más sobre las especificaciones y dimensiones del CubeMars AK45-36]