🛠 Pilotage GPIO et LED RGB sur le Driver Moteur 4-Encodeurs
Objectifs
Ce tutoriel vise à maîtriser les fonctionnalités d'entrée-sortie (GPIO) et l'affichage lumineux du module M5Stack 4-Encoder Motor Driver. Contrairement aux drivers classiques, ce module intègre un microcontrôleur STM32F030C8T6 qui gère les périphériques. Nous allons configurer les ports Grove pour lire des états logiques et piloter la LED RGB WS2812C pour afficher l'état du système, tout en gardant le contrôle des moteurs via I2C.
Matériel nécessaire
- Module M5Stack 4-Encoder Motor Driver (DRV8837DSGR)
- Carte hôte compatible M5Stack (Core2, CoreS3, etc.) ou ESP32 avec bibliothèque M5Unified
- Câbles Grove HY2.0-4P
- Un bouton poussoir ou un capteur numérique connecté à un port Grove
- Alimentation externe 6-12V DC (recommandée pour les tests moteurs)
Étapes
- Connexion matérielle : Insérez le module dans le port Grove de votre carte hôte. Connectez un bouton poussoir à l'un des deux ports Grove HY2.0-4P disponibles sur le module. Assurez-vous que le module est alimenté soit via le port Grove (5V), soit par l'entrée DC externe.
- Initialisation logicielle : Dans votre code Arduino, incluez la bibliothèque
M5Stack_M5Stack. Initialisez le module avecM5.begin()puis démarrez le driver moteur avecM5.M5Stack.begin(). Vérifiez que la communication I2C (adresse 0x24) est active.
- Configuration des GPIO : Le module expose des lignes GPIO via ses ports Grove. Utilisez les fonctions spécifiques du driver pour définir la direction des broches. Par exemple, configurez la broche associée au port Grove utilisé comme entrée numérique (
INPUT_PULLUP) pour lire l'état du bouton.
- Pilotage de la LED RGB : La LED WS2812C est adressable via le bus I2C. Envoyez une commande pour définir la couleur. Par exemple, allumez la LED en vert si le bouton est relâché, et en rouge si le bouton est pressé. Utilisez la fonction
setRGB(r, g, b)fournie par la bibliothèque du driver.
- Boucle de lecture : Dans la fonction
loop(), lisez l'état du GPIO connecté au bouton. Mettez à jour la couleur de la LED en conséquence. Ajoutez un délai de 10ms pour éviter les rebonds mécaniques et la saturation du bus I2C.
Vérification
Ouvrez le moniteur série à 115200 bauds. Affichez l'état du bouton lu par le GPIO. Appuyez sur le bouton : la LED du module doit changer de couleur instantanément. Vérifiez que les moteurs restent immobiles si aucun ordre de mouvement n'est envoyé, confirmant que la configuration GPIO n'affecte pas les ponts en H.
Pour aller plus loin
Explorez l'utilisation du capteur de courant INA199A intégré. Vous pouvez lire le courant consommé par chaque moteur et faire clignoter la LED RGB en fonction de la charge détectée, créant ainsi un système de diagnostic visuel pour vos robots.
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
- Automatiser un châssis robotique avec le Driver 4-Encoder
- Premier branchement et mise en route du 4-Encoder Motor Driver
- 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