Contrôler un potentiomètre
Le noyau M5Stack est un module de développement modulaire, empilable et programmable conçu pour construire des projets IoT et créer des prototypes rapidement et facilement. Ce module est basé sur le microcontrôleur ESP32 et est livré avec une variété de capteurs, d'entrées, de sorties et d'un écran couleur à cristaux liquides (LCD). De plus, le noyau M5Stack est conditionné sous la forme d'un module rectangulaire mesurant 54 x 54 x 18 mm et dispose d'un écran LCD à transistor à couche mince (TFT) de 2 pouces.
Comme mentionné, cet appareil dispose de plusieurs options d'entrée et de sortie, telles que trois boutons-poussoirs, un haut-parleur et un emplacement pour carte microSD. La figure 1 illustre le cœur de M5Stack.
L'une des caractéristiques les plus uniques du noyau M5Stack est son écosystème de conception modulaire. Le module peut être facilement empilé avec d'autres modules M5Stack permettant aux utilisateurs d'ajouter des fonctionnalités supplémentaires et d'étendre les capacités de leurs projets. L'écosystème modulaire M5Stack propose divers modules, tels qu'un appareil photo, un GPS et des modules de batterie.
Dans cet article, nous allons explorer les unités de capteur d'angle et de servomoteur avec le noyau M5Stack. Le résultat de ce projet pratique est la construction d'un contrôleur de servomoteur basé sur un potentiomètre avec un écran TFT central M5Stack.
Le projet de contrôleur de servomoteur basé sur un potentiomètre de base M5Stack illustrera la polyvalence et la facilité avec lesquelles les dispositifs d'interaction homme-machine (HCI) peuvent être construits à l'aide de produits électroniques et de logiciels prêts à l'emploi. L'intention de ce projet est d'illustrer comment des concepts HCI tels que l'engagement humain avec des systèmes peuvent être réalisés à l'aide d'un petit contrôleur basé sur ESP32. La plate-forme basée sur ESP32 aura une interaction informatique physique-humaine avec des objets électromécaniques. Ce projet permettra au lecteur de comprendre comment les données d'interaction peuvent être affichées et obtenues à partir de systèmes électromécaniques à l'aide de l'écran LCD TFT du noyau M5Stack. Ces données peuvent être utilisées pour explorer les concepts d'apprentissage automatique des systèmes cyber-physiques (CPS) à l'aide de langages de programmation tels que Python, PyTorch et Pandas.
En tant que source technique clé pour ce projet, il est recommandé de référencer le livre de plans électroniques M5Stack. Plus précisément, le chapitre deux, « Pratique avec les unités M5Stack », fournit des informations techniques sur les circuits électroniques et la configuration du contrôleur modulaire ESP32 et des unités de détection et de contrôle programmables. Ce livre comprend également des projets pratiques et des quiz interactifs pour engager le lecteur. Fondamentalement, vous pouvez considérer ce projet comme une extension du livre ; par conséquent, les instructions détaillées de configuration du logiciel ne seront pas expliquées dans ce projet.
Vous trouverez ci-dessous une liste de pièces électroniques à construire et à explorer le projet de contrôleur de servomoteur basé sur un potentiomètre de base M5Stack.
Nomenclature (BOM):
Le kit de démarrage M5Go IoT comprend une variété de capteurs, des fils de connexion, une LED RVB et un câble USB C. Le capteur d'angle est inclus dans le kit. Dans le projet, le potentiomètre 10 KΩ et la résistance 1 KΩ seront utilisés pour construire une version homebrew du capteur d'angle M5Stack. Le chapitre 2 fournit des détails sur le câblage électrique des composants électroniques sur une planche à pain sans soudure et sur la fixation du capteur homebrew au contrôleur central M5Stack.
Le concept global du projet est d'illustrer la construction d'un prototype d'un petit contrôleur de servomoteur utilisant le noyau M5Stack comme plate-forme embarquée ESP32 principale. La configuration initiale de ce projet consiste à ajouter un potentiomètre externe pour contrôler un servomoteur. Le potentiomètre fournira des informations de rotation au noyau M5Stack. Ensuite, le noyau M5Stack convertira les données de division de tension analogiques en signaux de commande de modulation de largeur d'impulsion (PWM) équivalents, actionnant ainsi le servomoteur électrique câblé. La figure 2 montre un schéma fonctionnel du système du prototype.
Ensuite, le circuit du potentiomètre est câblé électriquement au microcontrôleur ESP32 du noyau M5Stack en utilisant les mêmes composants électroniques internes du capteur d'angle. Le capteur d'angle M5Stack est construit à l'aide d'une résistance de 1 KΩ câblée en série avec un potentiomètre de 10 KΩ. Cette configuration de circuit fournit une fonction de division de tension qui permet à une gamme de valeurs de signaux analogiques discrètes d'être présentes sur une broche d'entrée-sortie à usage général (GPIO) analogique-numérique ESP32 désignée. La figure 3 montre le capteur d'angle M5Stack.
De plus, cette approche de circuit permet à une tension de sortie maximale du potentiomètre par rapport à la masse d'être de +3,3 V, et les broches GPIO du microcontrôleur ESP32 sont conformes à +3,3 V. Par conséquent, la tension de sortie maximale du circuit diviseur de tension de +3,3 V n'endommagera pas le microcontrôleur ESP32. Le schéma de principe du circuit électronique du capteur d'angle homebrew est illustré à la figure 4.
Notez que le désignateur de référence J1 représente le connecteur femelle à quatre broches soudé au PCB des capteurs d'angle.
À partir de là, vous pouvez câbler le circuit électronique sur une planche à pain sans soudure en utilisant le schéma de câblage électrique illustré à la figure 5 comme référence pour fixer le capteur d'angle homebrew au noyau M5Stack.
Gardez à l'esprit que la disposition LCD TFT du noyau M5Stack peut être conçue à l'aide du logiciel UiFlow - nous y reviendrons dans la section suivante.
Ensuite, vous utiliserez des fils Dupont pour créer un faisceau d'extension entre le noyau M5Stack et le circuit de planche à pain sans soudure du capteur d'angle homebrew. L'insertion de trois fils Dupont, comme illustré à la figure 5, dans le connecteur d'en-tête femelle à quatre broches blanc est utilisée pour interfacer électriquement le circuit avec le contrôleur central M5Stack. La figure 6 illustre cette méthode de connexion et de fixation de l'interface de câblage électrique.
Pour ce projet, j'ai utilisé un programme appelé UiFlow. UiFlow est une plate-forme de développement logiciel conçue pour simplifier le processus de programmation et de prototypage pour le produit M5Stack de contrôleurs, modules, capteurs et unités. Ce logiciel offre une interface utilisateur graphique (GUI) pour programmer le microcontrôleur M5Stack core ESP32. Les développeurs peuvent faire glisser et déposer des blocs de code et créer un code logique pour programmer le microcontrôleur ESP32. L'UiFlow permet le codage à l'aide d'un éditeur en ligne ou d'un progiciel téléchargeable sur le bureau.
L'éditeur en ligne UiFlow peut être obtenu sur le site Web de M5Stack à l'adresse URL suivante ici. Une version de bureau est également disponible pour les machines Windows, Apple et Linux.
La conception de la disposition de l'écran LCD TFT du noyau M5Stack pour afficher les données de rotation du potentiomètre est illustrée à la Figure 7.
Pour en savoir plus sur UiFlow, vous pouvez consulter le chapitre 2 du livre de plans électroniques M5Stack pour plus d'informations.
Avec le potentiomètre câblé au noyau M5Stack, le logiciel est nécessaire pour afficher les valeurs de rotation du composant électrique. Le logiciel UiFlow sera utilisé pour afficher l'angle de rotation du potentiomètre en degrés, et les blocs de code consistent en trois opérations principales pour le contrôleur de servomoteur.
Les fonctions des blocs de code d'instruction consistent en :
Les blocs de code UiFlow sont illustrés à la Figure 8.
En plus des blocs de code, les unités d'asservissement et de capteur d'angle sont incluses dans la palette de blocs de code. Ces unités ajouteront un ensemble de nouveaux blocs de code pour le bon fonctionnement de ces appareils dans le prototype global du contrôleur. Comme le montre la figure 8, "servo_0, servo_0 tournent d'un degré" et "get angle_0 value" sont les nouvelles instructions d'unité ajoutées à la palette de blocs de code. Vous pouvez inclure ces blocs de code en sélectionnant le bouton unités plus. La sélection des unités d'asservissement et d'angle dans une liste d'appareils ajoutera les blocs de code nécessaires à la palette pour terminer la construction du code pour le contrôleur du projet. Les blocs de code UiFlow seront exécutés sur le noyau M5Stack en sélectionnant le bouton RUN sur le panneau de contrôle IDE du logiciel.
Outre l'affichage de l'angle de rotation du potentiomètre, les blocs de code UiFlow, illustrés à la Figure 8, contrôlent le servomoteur. La fixation du servomoteur au noyau M5Stack nécessite la même technique de câblage électrique que celle utilisée pour le potentiomètre. Le schéma partiel du circuit électronique, illustré à la figure 9, illustre le câblage électrique du servomoteur fixé à la broche ESP32 GPIO13 du noyau M5Stack.
Le connecteur J2_A sur le schéma du circuit électronique représente le port A sur le noyau M5Stack. Alors que le désignateur de référence J2_B représente les broches du faisceau de câbles électriques insérées dans le connecteur femelle noir à trois broches du servomoteur.
Le câblage électrique du M5Stack Core au servomoteur est illustré à la Figure 10.
Le prototype de contrôleur de servomoteur basé sur un potentiomètre de base M5Stack est illustré à la figure 11.
Comme référence finale pour le projet, la figure 12 montre le schéma de principe complet du circuit électronique du contrôleur de servomoteur basé sur le potentiomètre M5Stack.
Le réglage du potentiomètre fera tourner le servomoteur à la position angulaire affichée sur l'écran LCD TFT du noyau M5Stack. Le servomoteur ayant une plage de balayage de rotation de 0˚ à 180˚, l'écran LCD TFT permettra de composer ces angles avec le potentiomètre et de les afficher en conséquence. Un court clip vidéo a été fourni pour montrer le contrôleur de servomoteur en fonctionnement. Pour voir le prototype de contrôleur de servomoteur en action, vous pouvez voir la vidéo ici, ou vous pouvez la regarder ci-dessous.
L'aspect intentionnel de ce projet était d'illustrer une approche unique et innovante de l'utilisation d'une plate-forme ESP32 pour créer un contrôleur de servomoteur HCI. Le noyau M5Stack est un écosystème IoT modulaire basé sur ESP32 qui permet de prototyper facilement une variété d'appareils CPS à l'aide de composants et d'unités électroniques prêts à l'emploi. Ce projet a illustré comment un langage de programmation visuel (VPL) peut aider le développeur à construire rapidement un prototype fonctionnel en quelques minutes. Avec le petit facteur de forme du M5Stack Core, de petits contrôleurs portables et des interfaces homme-machine (IHM) peuvent être développés et déployés dans des domaines tels que l'automatisation, la robotique, les maisons intelligentes et les arènes de développement de technologies éducatives.
Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12.