🛠 Automatisation et Boucle Fermée avec le Driver 4-Encoder

Unit 4-Encoder Motor Driver (DRV8837DSGR) · intermediaire · Configurez une automatisation précise en utilisant la régulation de position en boucle fermée et le stockage d'état via I2C.

Objectifs

Ce tutoriel vise à mettre en œuvre une automatisation précise utilisant le module M5Stack 4-Encoder Motor Driver. Nous allons configurer le contrôle de position en boucle fermée pour un moteur, simuler une séquence d'automatisation industrielle simple (déplacement, attente, retour) et discuter de la gestion des données de position. Ce niveau intermédiaire suppose une compréhension basique du protocole I2C et de la programmation en C++ ou Python.

Matériel nécessaire

Étapes

  1. Connexion physique : Connectez le moteur au port PH2.0-6P n°1. Assurez-vous que les fils de l'encodeur sont correctement alignés avec les broches dédiées. Branchez l'alimentation DC externe sur le connecteur adapté pour garantir le courant nécessaire (jusqu'à 1,2A par canal).
  2. Initialisation I2C : Dans votre code, initialisez le bus I2C. L'adresse par défaut du module est 0x24. Vérifiez la communication en lisant un registre d'identification ou de statut.
  3. Configuration du mode : Écrivez dans les registres de configuration pour activer le mode "Position Control" (boucle fermée) sur le canal moteur 1. Définissez les paramètres PID si votre bibliothèque le permet, ou utilisez les valeurs par défaut pour un premier test.
  4. Séquence d'automatisation : Implémentez une fonction qui envoie une consigne de position (en ticks d'encodeur). Attendez que le registre de statut indique que le moteur a atteint la position cible (bit "Done" ou équivalent). Ajoutez une temporisation de 2 secondes pour simuler une tâche industrielle.
  5. Retour à l'origine : Envoyez une consigne de position à 0 pour ramener le moteur à sa position initiale. Vérifiez que le mouvement est fluide grâce au démarrage/arrêt progressif intégré.
  6. Lecture des données : Lisez périodiquement la position actuelle et le courant consommé (via le capteur INA199A intégré) pour surveiller l'état du système.

Vérification

Le moteur doit se déplacer vers la position cible, s'arrêter précisément, attendre, puis revenir à zéro. La LED RGB WS2812C peut servir d'indicateur visuel (ex: vert en mouvement, bleu en attente). Si le moteur vibre ou ne s'arrête pas, vérifiez le câblage de l'encodeur et les paramètres de gain PID.

Pour aller plus loin

Explorez le mode veille pour économiser l'énergie entre les cycles d'automatisation. Vous pouvez également étendre ce système à plusieurs moteurs pour créer un bras robotique simple, en synchronisant les déplacements via des commandes I2C séquentielles ou parallèles.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels