Dans le développement robotique et les projets de recherche, la manière de contrôler rapidement et de manière fiable des moteurs brushless haute performance pour articulations constitue un défi majeur pour les développeurs.
Ce tutoriel vous guidera dans l’utilisation d’une carte de développement Arduino associée à un module CAN MCP2515, afin de réaliser un contrôle précis par joystick du moteur d’articulation robotique CubeMars AK45-36.
Grâce à ce tutoriel, vous apprendrez les bases du câblage matériel, de la configuration du mode de contrôle MIT et de l’implémentation de la logique de commande, afin d’intégrer facilement les moteurs CubeMars dans vos projets robotiques.
Avant de commencer, assurez-vous de disposer des équipements matériels et logiciels suivants :
Matériel :
Carte de développement Arduino (par exemple Arduino Uno)
Module CAN MCP2515
Module joystick double axe
Alimentation DC et câbles Dupont
Logiciel :
Arduino IDE
Bibliothèque mcp_can (installée au préalable)
Un câblage correct est la base d’une communication stable.Vous devez vous concentrer sur les trois connexions principales suivantes :
MCP2515 et Arduino (communication SPI): Connectez le module MCP2515 à l’Arduino via l’interface SPI standard (broches CS, SO, SI, SCK, etc.).
Connexion du bus CAN (vers le moteur): Connectez les broches CAN_H et CAN_L du module MCP2515 aux lignes correspondantes CAN_H et CAN_L du moteur AK45-36.
Joystick et alimentation: Connectez la broche de signal de l’axe X du joystick à une entrée analogique de l’Arduino (par exemple A0).
Ensuite, connectez le moteur à une alimentation DC appropriée. Remarque : Ne branchez jamais à l’envers l’alimentation du moteur et les lignes de signal CAN.
Pour les applications de contrôle dynamique telles que le suivi par joystick, nous recommandons fortement l’utilisation du mode de contrôle MIT.
Ce mode permet d’envoyer simultanément des commandes de position, de vitesse et de couple dans une seule trame CAN, offrant ainsi une réponse extrêmement rapide.
Étapes de configuration :
Utilisez le module officiel CubeMars USB-CAN pour connecter le moteur à un ordinateur, puis ouvrez le logiciel de contrôle supérieur.
Configurez l’ID CAN du moteur (par exemple 0x01) ainsi que le débit de communication.
(Il doit correspondre au code Arduino, généralement 1 Mbps.) Cliquez sur « Entrer en mode MIT ».
À ce moment-là, lorsque vous tournez manuellement l’arbre du moteur, vous devriez ressentir une résistance évidente, indiquant que la configuration est réussie.
Dans l’environnement Arduino, la mise en œuvre du contrôle moteur par joystick est simple et comprend principalement trois étapes :
Lecture des entrées: Utilisez une entrée analogique Arduino (comme A0) pour lire en temps réel la valeur du joystick. La plage habituelle est de 0 à 1023.
Conversion des données (Mapping): Utilisez une fonction de conversion (comme map) afin de transformer linéairement la valeur d’entrée du joystick vers la plage de position ou de vitesse cible supportée par le moteur AK45-36.
Envoi des messages CAN: Utilisez la bibliothèque de communication CAN pour convertir les données cibles en une trame CAN standard du mode MIT, puis envoyez-la à l’ID CAN correspondant du moteur.
Conseil : Pour obtenir le code Arduino complet, les fonctions de conversion des données et la documentation du protocole de communication, veuillez consulter notre centre officiel de téléchargement.
Après avoir terminé la configuration, mettez sous tension le moteur et l’Arduino.Déplacez le joystick : l’arbre du moteur doit suivre le mouvement du joystick avec une rotation avant et arrière fluide.
Regardez la vidéo ci-dessous pour découvrir une démonstration pratique complète ainsi que des explications détaillées.
Q1 : Le moteur ne réagit pas après la mise sous tension. Il ne tourne pas lorsque le joystick est manipulé.
R :Vérifiez que le moteur a bien reçu la commande Enable (activation).
En mode MIT, le moteur est désactivé par défaut. Vous devez d’abord envoyer une trame CAN spécifique pour activer le moteur avant qu’il puisse répondre aux commandes de contrôle.
Q2 : Le moteur tremble ou répond lentement pendant le contrôle par joystick.
R :Cela est généralement lié à la qualité de la communication sur le bus CAN.Assurez-vous que les câbles de signal CAN ne sont pas regroupés parallèlement aux câbles d’alimentation du moteur.
Si la distance de communication est importante, activez la résistance de terminaison de 120Ω via le commutateur DIP du module MCP2515.
L’AK45-36 n’est qu’un membre de la famille de moteurs haute performance CubeMars. Que vous développiez un robot quadrupède, un robot humanoïde, un bras robotique ou d’autres plateformes robotiques, CubeMars fournit des solutions d’actionnement compactes et haute performance adaptées à vos besoins.
[En savoir plus sur les caractéristiques techniques et les dimensions du CubeMars AK45-36]