Exemple ESP32 WebJoystick - Tutoriel sur le contrôle du joystick virtuel
Vue d'ensemble
Le exemple WebJoystick crée une interface de joystick virtuel accessible depuis n'importe quel navigateur Web. Conçu pour ESP32, plateforme éducative dotée de capacités robotiques améliorées, de fonctionnalités de commande de moteur intégrées et d'une intégration transparente avec les modules éducatifs de robotique. Parfait pour piloter des robots, des véhicules ou tout système nécessitant une entrée de position en 2D.

Fonctionnalités
- Joystick virtuel: Contrôle de joystick interactif via une interface Web
- Coordonnées en temps réel: valeurs X/Y de -100 à +100 pour un contrôle précis
- Support tactile et souris: Fonctionne sur ordinateur de bureau, tablette et appareils mobiles
- Retour automatique configurable: Option pour que le joystick revienne au centre lorsqu'il est relâché
- Contrôle de sensibilité: Sensibilité réglable pour éviter des mises à jour excessives
- Rétroaction visuelle: Affichage en temps réel de la position et des valeurs des coordonnées
- Communication WebSocket: Réponse instantanée sans actualisation de la page
- Position centrale: Indicateur clair de position centrale pour un contrôle neutre
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) |
Instructions d'installation
Étapes rapides
Suivez ces instructions étape par étape :
- Si c'est la première fois que vous utilisez l'ESP32, reportez-vous au tutoriel sur Installation du logiciel ESP32..
- Connectez la carte ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte ESP32 appropriée (par exemple ESP32 Dev Module) et le port COM.
- Accédez à l'icône Libraries sur la barre de gauche de l'IDE Arduino.
- Recherchez "DIYables ESP32 WebApps", puis trouvez la bibliothèque DIYables ESP32 WebApps de DIYables
- Cliquez sur le bouton Install pour installer la bibliothèque.

- Il vous sera demandé d'installer d'autres dépendances de bibliothèque
- Cliquez sur le bouton Tout installer pour installer toutes les dépendances de la bibliothèque.

- Dans l'IDE Arduino, allez dans Fichier Exemples DIYables ESP32 WebApps WebJoystick exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
- Configurer les identifiants Wi‑Fi dans le code en mettant à jour ces lignes:
- Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur l'ESP32
- Ouvrez le Moniteur série
- Consultez le résultat dans le Moniteur série. Il est affiché ci-dessous
- Si vous ne voyez rien, redémarrez la carte ESP32.
- Notez l'adresse IP affichée et saisissez cette adresse dans la barre d'adresse d'un navigateur Web sur votre smartphone ou votre PC.
- Exemple : http://192.168.0.2
- Vous verrez la page d'accueil comme sur l'image ci-dessous :

- Cliquez sur le lien Web Joystick, vous verrez l'interface utilisateur de l'application Web Joystick comme ci-dessous :

- Ou vous pouvez également accéder à la page directement en utilisant l'adresse IP suivie de /web-joystick. Par exemple : http://192.168.0.2/web-joystick
- Essayez de contrôler le joystick virtuel en cliquant et en faisant glisser dans la zone du joystick et observez les valeurs des coordonnées X/Y (-100 à +100) dans le moniteur série.
Personnalisation créative - Adaptez le code à votre projet
2. Configuration des paramètres du joystick
Le joystick peut être configuré avec différents paramètres :
Configuration de base
Configuration avancée
Comment utiliser le joystick
Contrôles de l'interface Web
L'interface du joystick fournit :
- Pad de joystick: Zone de contrôle circulaire pour l'entrée tactile et souris
- Indicateur de position: Affiche la position actuelle du joystick
- Affichage des coordonnées: Valeurs X/Y en temps réel (-100 à +100)
- Point central: Référence visuelle pour la position neutre
Utilisation du joystick
Bureau (Contrôle de la souris)
- Cliquez et faites glisser: Cliquez sur le joystick et faites-le glisser pour bouger
- Relâcher: Le joystick revient au centre (si autoReturn=true)
- Position de clic: Clic direct pour définir la position du joystick
Mobile/Tablette (Contrôle tactile)
- Toucher et Glisser: Touchez le joystick et faites glisser votre doigt pour bouger
- Multi-touch: Un seul doigt pour un contrôle précis
- Relâcher: Retour automatique au centre (si activé)
Système de coordonnées
Le joystick fournit des coordonnées dans un système cartésien standard :
- Axe X: de -100 (plein à gauche) à +100 (plein à droite)
- Axe Y: de -100 (plein en bas) à +100 (plein en haut)
- Centre: X=0, Y=0 (position neutre)
- Coins: Les positions diagonales fournissent des valeurs combinées X/Y
Exemples de programmation
Gestionnaire de joystick basique
Exemple de commande du moteur
Exemple de contrôle du servomoteur
Indicateur de position de la DEL
Configuration avancée
Modifications de la configuration d'exécution
Mise en œuvre de la zone morte
Rampe de vitesse
Exemples d'intégration matérielle
Contrôle de la voiture robotisée
Contrôle du cardan de la caméra
Contrôle de la couleur des LED RVB
Dépannage
Problèmes courants
- Le joystick ne répond pas
- Vérifier l'état de la connexion WebSocket dans la console du navigateur
- Vérifier la connectivité réseau
- Actualiser la page du navigateur
- Vérifier le moniteur série pour les erreurs
- Mouvements saccadés ou irréguliers.
- Augmenter la valeur de sensibilité pour réduire la fréquence de mise à jour
- Implémenter un filtrage de zone morte
- Ajouter une rampe de vitesse pour des transitions en douceur
- Vérifier les problèmes de latence du réseau
3. Le retour automatique ne fonctionne pas
- Vérifiez le réglage autoReturn : webJoystickPage.setAutoReturn(true)
- Vérifiez la compatibilité du navigateur (certains appareils tactiles varient)
- Testez avec différentes méthodes d'entrée (souris et écran tactile)
- Des valeurs qui n’atteignent pas toute la plage.
- Vérifier l'étalonnage du joystick dans l'interface Web
- Vérifier les calculs de coordonnées dans la fonction de rappel
- Tester avec différentes combinaisons de navigateurs et d'appareils
Astuces de débogage
Ajouter un débogage exhaustif :
Idées de projets
Projets de robotique
- Voiture télécommandée robotisée
- Contrôle du bras robotique
- Contrôle de vol du drone (mouvements de base)
- Navigation d'un robot pour animaux de compagnie
Domotique
- Contrôle intelligent des rideaux (ouvrir/fermer/position)
- Commande de panoramique et d'inclinaison de la caméra
- Contrôle de la luminosité et de la couleur de la lumière
- Contrôle de la vitesse et de la direction du ventilateur
Projets éducatifs
- Outil pédagogique sur les systèmes de coordonnées
- Démonstrations du contrôle des moteurs
- Expériences de positionnement de servomoteurs
- Interfaces de manettes de jeu
Arts et Projets Créatifs
- Contrôle des motifs de matrice LED
- Contrôle de la visualisation musicale
- Contrôle du robot dessinateur
- Installations d'art interactives
Intégration avec d'autres exemples
Combiner avec WebSlider
Utilisez le joystick pour la direction et les curseurs pour la vitesse/intensité :
Combiner avec WebDigitalPins
Utilisez les positions du joystick pour déclencher les états des broches numériques :
Prochaines étapes
Après avoir maîtrisé l'exemple WebJoystick, essayez :
- WebSlider - Pour un contrôle analogique supplémentaire
- WebDigitalPins - Pour un contrôle discret marche/arrêt
- WebMonitor - Pour le débogage des valeurs du joystick
- MultipleWebApps - Combiner le joystick avec d'autres contrôles
Assistance
Pour obtenir une aide supplémentaire :
- Consultez la documentation de référence de l’API
- Consultez les tutoriels DIYables : https://esp32io.com/tutorials/diyables-esp32-webapps
- Forums de la communauté ESP32