ESP32 - joystick - servomoteur
Ce guide montrera comment contrôler deux servomoteurs ou un kit pan-tilt en utilisant un ESP32 et un joystick avec MicroPython.
Un joystick contient deux composants de commande, appelés potentiomètres, disposés en motif croisé, désignés par les axes X et Y. Ces potentiomètres génèrent des signaux, les valeurs X et Y, qui proviennent des broches VRX et VRY du joystick. Ces signaux servent à piloter deux servomoteurs : la valeur X commande le servomoteur n°1, tandis que la valeur Y commande le servomoteur n°2. Lorsqu'ils sont utilisés avec un kit pan-tilt, les deux servomoteurs fonctionnent ensemble pour se déplacer dans les trois dimensions.
L'application peut être utilisée de deux façons :
- Cas d'utilisation 1 : Le déplacement du joystick contrôle les servomoteurs:
- Les angles des servomoteurs correspondent aux mouvements gauche-droite (X) et haut-bas (Y) du joystick.
- En relâchant le joystick, celui-ci et les servomoteurs reviennent à leurs positions initiales.
- Cas d'utilisation 2 : Utilisez le joystick pour diriger les servomoteurs:
- En déplaçant le joystick vers la gauche, le servomoteur n°1 tourne dans le sens des aiguilles d'une montre.
- Déplacer le joystick vers la droite fait tourner le servomoteur n°1 dans le sens antihoraire.
- Déplacer le joystick vers le haut fait tourner le servomoteur n°2 dans le sens horaire.
- Le déplacement du joystick vers le bas fait tourner le servomoteur n°2 dans le sens antihoraire.
- Relâcher le joystick maintient les positions actuelles des servomoteurs.
- Appuyer sur le bouton du joystick réinitialise les servomoteurs à la position centrale.

Préparation du matériel
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 (ESP32 inclus) | |
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du joystick et du servomoteur
Si vous débutez avec le joystick, le servomoteur ou la programmation MicroPython pour l'ESP32, je vous recommande de consulter ces tutoriels :
- ESP32 - Premiers pas. tutorial
Ces tutoriels vous donneront une compréhension complète des brochages du joystick et du moteur servo, de la manière de connecter ces composants à l'ESP32 et de la manière de contrôler efficacement leur comportement à l'aide du code MicroPython.
Diagramme de câblage
- Comment connecter l'ESP32 avec un joystick et un servomoteur en utilisant breadboard

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Comment connecter l'ESP32 avec un joystick et un servomoteur en utilisant carte d'extension à bornes à vis

Code MicroPython ESP32
Code MicroPython ESP32 - Les servomoteurs tournent en fonction du mouvement du pouce du joystick.
Étapes rapides
Voici les instructions sur la façon de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :
- Assurez-vous que Thonny IDE est installé sur votre ordinateur.
- Assurez-vous que le firmware MicroPython est chargé sur votre carte ESP32.
- Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour des instructions étape par étape.
- Reliez la carte ESP32 au joystick et au servomoteur selon le schéma fourni.
- Connectez la carte ESP32 à votre ordinateur avec un câble USB.
- Ouvrez Thonny IDE sur votre ordinateur.
- Dans Thonny IDE, allez dans Outils Options.
- Sous l'onglet Interpreter, sélectionnez MicroPython (ESP32) dans le menu déroulant.
- Assurez-vous que le bon port est sélectionné. Thonny IDE le détecte généralement automatiquement, mais vous devrez peut-être le choisir manuellement (comme COM12 sur Windows ou /dev/ttyACM0 sur Linux).
- Accédez à Outils Gérer les paquets dans Thonny IDE.
- Recherchez “DIYables-MicroPython-Servo”, puis trouvez la bibliothèque Servo-moteur créée par DIYables.
- Cliquez sur DIYables-MicroPython-Servo, puis cliquez sur le bouton Install pour installer la bibliothèque Servo-moteur.

- Recherchez “DIYables-MicroPython-Joystick”, puis trouvez la bibliothèque Joystick créée par DIYables.
- Cliquez sur DIYables-MicroPython-Joystick, puis cliquez sur le bouton Install pour installer la bibliothèque Joystick.

- Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
- Enregistrez le code sur votre ESP32 en procédant comme suit :
- Cliquez sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
- Dans la boîte de dialogue d'enregistrement, choisissez périphérique MicroPython.
- Nommez le fichier main.py.
- Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
- Poussez le joystick dans n'importe quelle direction.
- Observez le servomoteur tourner.
- Consultez le message dans le Shell en bas de Thonny.
※ Note:
Ce tutoriel montre comment utiliser la fonction adc.read() pour lire les valeurs d'un ADC (convertisseur analogique-numérique) connecté à un joystick. L'ADC de l'ESP32 convient pour des projets qui n'exigent pas une grande précision. Cependant, si votre projet nécessite des mesures précises, gardez à l'esprit les points suivants :
- L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter une calibration pour des résultats précis. Chaque carte ESP32 peut présenter de légères variations, il est donc nécessaire de calibrer chaque carte individuellement.
- La calibration peut être difficile, surtout pour les débutants, et pourrait ne pas toujours donner les résultats exacts que vous souhaitez.
Pour les projets nécessitant une grande précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 ou optez pour un Arduino, qui possède un ADC plus fiable. Si vous souhaitez encore calibrer l'ADC de l'ESP32, consultez le Pilote de calibration de l'ADC ESP32.
Code MicroPython pour ESP32 - Utiliser le joystick pour commander des servomoteurs
Étapes rapides
- Copiez le code ci-dessus et collez-le dans l’éditeur de l’IDE Thonny.
- Enregistrez le script sur votre carte ESP32.
- Cliquez sur le bouton vert Lancer (ou appuyez sur F5) pour exécuter le script.
- Déplacez le joystick dans n'importe quelle direction.
- Observez le servomoteur en rotation.
- Consultez le message dans le Shell en bas de Thonny.
Explication du code
Consultez les explications dans les commentaires du code source.