ESP32 - Joystick - Moteur Servo
Dans ce tutoriel, nous allons apprendre à utiliser un ESP32 et un joystick pour contrôler deux moteurs servo ou un kit pan-tilt avec des servos.
Un joystick possède deux potentiomètres intégrés, disposés perpendiculairement l'un à l'autre (appelés axe X et axe Y). Ces potentiomètres fournissent des valeurs analogiques (appelées valeur X et valeur Y) sur les broches VRX et VRY. Nous utiliserons ces valeurs analogiques pour contrôler deux moteurs servo de manière indépendante : la valeur X contrôle le servo #1 et la valeur Y contrôle le servo #2. Dans le cas d'un kit pan-tilt, le mouvement des deux moteurs servo crée un mouvement en 3-D.
Il y a deux cas d'utilisation d'application :
- Cas d'utilisation 1 : Les moteurs servos tournent en fonction du mouvement du pouce du joystick :
- Les angles des moteurs servos sont proportionnels aux valeurs de l'axe X et de l'axe Y du joystick.
- Lorsque nous relâchons le pouce du joystick ⇒ toutes les valeurs reviennent aux valeurs centrales ⇒ les moteurs servos retournent automatiquement à la position centrale
- Cas d'utilisation 2 : utiliser le joystick pour commander les moteurs servos (commandes haut/bas/gauche/droite)
- Lorsque le pouce du joystick est poussé vers la gauche, déplacer le moteur servo #1 dans le sens des aiguilles d'une montre, pas à pas
- Lorsque le pouce du joystick est poussé vers la droite, déplacer le moteur servo #1 dans le sens contraire des aiguilles d'une montre, pas à pas
- Lorsque le pouce du joystick est poussé vers le haut, déplacer le moteur servo #2 dans le sens des aiguilles d'une montre, pas à pas
- Lorsque le pouce du joystick est poussé vers le bas, déplacer le moteur servo #2 dans le sens contraire des aiguilles d'une montre, pas à pas
- Lorsque nous relâchons le pouce du joystick ⇒ les moteurs servos ne retourneront pas à la position centrale
- Si le joystick est pressé (bouton poussoir), les moteurs servos retourneront à la position centrale
- Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
- Faites le câblage comme sur l'image ci-dessus.
- Connectez la carte ESP32 à votre PC via un câble micro USB.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 (par exemple ESP32 Dev Module) et le port COM.
- Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
- Tapez ServoESP32 dans la boîte de recherche, puis cherchez la bibliothèque servo de Jaroslav Paral. Veuillez noter que les versions 1.1.1 et 1.1.0 comportent des bugs. Veuillez choisir une version différente.
- Cliquez sur le bouton Install pour installer la bibliothèque de moteur servo pour ESP32.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload sur l'IDE Arduino pour téléverser le code sur l'ESP32
- Ouvrez le moniteur série
- Poussez le joystick dans une direction
- Observez la rotation du moteur servo
- Consultez le résultat sur le moniteur série
- Cliquez sur l'icône Libraries dans la barre gauche de l'IDE Arduino.
- Recherchez "ezButton", puis trouvez la bibliothèque de boutons par ArduinoGetStarted.com
- Cliquez sur le bouton Install pour installer la bibliothèque ezButton.
- Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
- Cliquez sur le bouton Upload sur Arduino IDE pour téléverser le code sur ESP32
- Ouvrez le moniteur série
- Poussez le joystick dans une direction
- Observez la rotation du moteur servo
- Consultez le résultat sur le moniteur série
Nous explorerons le code pour les deux cas d'utilisation dans les parties suivantes.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du joystick et du moteur servo
Si vous ne connaissez pas le joystick et le moteur servo (brochage, fonctionnement, programmation...), renseignez-vous dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Code ESP32
Code ESP32 - Les moteurs servo tournent selon le mouvement du pouce du joystick.
Étapes rapides
Code ESP32 - Utiliser le joystick pour commander des moteurs servo
Étapes rapides
Explication du code
Lisez l'explication ligne par ligne dans les lignes de commentaire du code source !