🛠 Premier branchement et mise en route du Driver Moteur 4-Encoder
Objectifs
Ce tutoriel vous guide dans la configuration initiale de l'Unit 4-Encoder Motor Driver (DRV8837DSGR) de M5Stack. L'objectif est de réussir à alimenter le module, à l'associer à un contrôleur hôte (comme un M5StickC ou un Arduino compatible I2C) et à confirmer que la communication I2C est établie. Nous ne piloterons pas encore les moteurs, mais nous vérifierons la présence du module sur le bus.
Matériel nécessaire
- 1x Unit 4-Encoder Motor Driver (DRV8837DSGR)
- 1x Contrôleur hôte compatible I2C (ex: M5Stack Core2, M5StickC Plus, ou Arduino Uno avec shield Grove)
- 1x Câble Grove HY2.0-4P
- 1x Alimentation DC externe (6V à 12V) OU alimentation via USB du contrôleur hôte
- Ordinateur avec l'IDE Arduino installé
Étapes
- Préparation du matériel : Assurez-vous que le contrôleur hôte est éteint. Repérez les deux ports Grove HY2.0-4P sur le module DRV8837. L'un est l'entrée (IN) et l'autre la sortie (OUT) pour la daisy-chain I2C.
- Connexion I2C : Connectez un câble Grove entre le port Grove du contrôleur hôte et le port Grove IN du module DRV8837. La communication I2C utilise les lignes SDA et SCL. Par défaut, l'adresse I2C du module est 0x24.
- Alimentation :
- *Option A (Recommandée pour les tests)* : Si vous utilisez un contrôleur M5Stack alimenté par USB, le port Grove fournit 5V. Cela suffit pour initialiser le module et détecter sa présence, mais ne permettra pas de faire tourner les moteurs sous charge.
- *Option B (Pour les moteurs)* : Connectez une alimentation DC externe (6-12V) au connecteur dédié du module. Le module possède un convertisseur DC-DC intégré qui régule la tension pour les moteurs et peut fournir jusqu'à 5V à l'hôte via le port Grove si nécessaire.
- Configuration logicielle : Ouvrez l'IDE Arduino. Installez la bibliothèque M5Stack ou une bibliothèque I2C standard. Téléversez le code de test suivant sur votre contrôleur :
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(); // Initialise le bus I2C
Serial.println("Recherche du module DRV8837...");
// Adresse par défaut du module
byte address = 0x24;
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.println("Module trouvé à l'adresse 0x24 !");
} else {
Serial.print("Module non trouvé. Erreur I2C : ");
Serial.println(error);
}
}
void loop() {
// Rien à faire en boucle pour ce test
delay(1000);
}
- Vérification physique : Une fois le code téléversé, ouvrez le Moniteur Série à 115200 bauds. Si tout est correct, le message "Module trouvé" s'affiche. La LED RGB WS2812C intégrée peut s'allumer selon l'état initial du firmware du module.
Vérification
- Le moniteur série affiche "Module trouvé à l'adresse 0x24 !".
- Il n'y a pas de court-circuit ou d'échauffement anormal du module.
- Si le module n'est pas trouvé, vérifiez le sens du câble Grove et l'adresse I2C (elle est configurable entre 0x08 et 0x77).
Pour aller plus loin
Une fois la communication établie, vous pouvez explorer les commandes de base pour configurer les modes de contrôle (boucle ouverte vs fermée) et tester le démarrage progressif d'un moteur à engrenages connecté sur l'un des quatre connecteurs PH2.0-6P.
Autres tutoriels pour cette carte
- 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
- 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