🛠 Automatiser un châssis robotique avec le Driver 4-Encoder
Objectifs
Ce tutoriel vise à configurer le module M5Stack 4-Encoder Motor Driver pour automatiser un petit châssis robotique. Vous apprendrez à initialiser la communication I2C, à définir les paramètres des moteurs et à exécuter une séquence de mouvement autonome (avancer, tourner, s'arrêter) en utilisant la régulation de vitesse en boucle fermée. Ce cas d'usage illustre l'application de l'automatisation simple dans la robotique mobile.
Matériel nécessaire
- Carte M5Stack 4-Encoder Motor Driver Unit (DRV8837DSGR)
- Un microcontrôleur compatible (ex: M5StickC Plus2 ou Core2) avec port Grove I2C
- 4 moteurs à engrenages à 6 fils (type TT) avec encodeurs intégrés
- Alimentation DC externe 6-12V (ou USB si la charge est faible)
- Câbles Grove et câbles moteur PH2.0-6P
- Ordinateur avec Arduino IDE installé
Étapes
- Assemblage matériel : Connectez les quatre connecteurs PH2.0-6P aux moteurs. Assurez-vous que les fils des encodeurs sont correctement alignés. Branchez le module sur le port Grove I2C de votre carte principale.
- Alimentation : Si vous utilisez des moteurs puissants, connectez une source DC externe (6-12V) au port d'alimentation du module. Pour les petits moteurs TT, l'alimentation via le port Grove (5V) peut suffire, mais vérifiez que le courant reste sous 1,2A par canal.
- Configuration logicielle : Ouvrez l'Arduino IDE. Installez la bibliothèque
M5Stack_MotorDriverou celle fournie par M5Stack pour ce module. Sélectionnez votre carte et le port série correspondant. - Initialisation du code : Démarrez avec
Wire.begin(). Le module utilise l'adresse I2C par défaut0x24. Initialisez les quatre canaux moteur en mode boucle fermée. - Programmer la séquence : Écrivez une fonction
moveRobot(speed, duration)qui envoie les commandes de vitesse aux quatre moteurs. Pour tourner, inversez la direction des moteurs d'un côté par rapport à l'autre. - Téléversement : Chargez le code sur le microcontrôleur.
Vérification
- La LED RGB WS2812C du module doit s'allumer (indiquant l'alimentation et l'activité).
- Les moteurs doivent tourner de manière synchrone lors de la commande "avancer".
- Lors d'une commande de rotation, les moteurs d'un côté doivent tourner en sens opposé.
- Si les moteurs ne bougent pas, vérifiez l'adresse I2C avec un scanner I2C standard.
Pour aller plus loin
Explorez la régulation de position en boucle fermée pour des mouvements précis. Vous pouvez ajouter un capteur de distance pour éviter les obstacles, créant ainsi une automatisation plus complexe. Essayez de modifier l'adresse I2C pour connecter plusieurs modules sur le même bus.
Autres tutoriels pour cette carte
- Premier branchement et mise en route du Driver Moteur 4-Encoder
- Découverte des entrées-sorties : LED RGB et lecture d'encodeurs
- Premier branchement et mise en route du 4-Encoder Motor Driver
- Pilotage GPIO et LED RGB sur le Driver Moteur 4-Encodeurs
- Automatisation et Boucle Fermée avec le Driver 4-Encoder
- Premier branchement et initialisation du module 4-Encoder Motor Driver
Exemples de code pour cette carte
i2c-motor-spin.inoarduinoclosed-loop-speed-control.inoarduinorelative-position-move.inoarduinorgb-led-status-indicator.inoarduinodifferential-drive-robot.inoarduinoi2c_basic_motor_control.pyPython