🛠 Pilotage GPIO et LED RGB sur le Driver Moteur 4-Encodeurs

Unit 4-Encoder Motor Driver (DRV8837DSGR) · intermediaire · Apprenez à utiliser les entrées-sorties et la LED RGB WS2812C intégrée au module DRV8837DSGR via I2C.

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

Étapes

  1. 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.
  1. Initialisation logicielle : Dans votre code Arduino, incluez la bibliothèque M5Stack_M5Stack. Initialisez le module avec M5.begin() puis démarrez le driver moteur avec M5.M5Stack.begin(). Vérifiez que la communication I2C (adresse 0x24) est active.
  1. 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.
  1. 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.
  1. 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

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels