Exemple Arduino WebJoystick - Tutoriel sur le contrôle du joystick virtuel
Vue d'ensemble
L'exemple WebJoystick crée une interface de joystick virtuelle accessible depuis n'importe quel navigateur web. Conçu pour la plateforme éducative Arduino Uno R4 WiFi et DIYables STEM V4 IoT, avec des capacités robotiques améliorées, des fonctionnalités de contrôle de moteur intégrées et une intégration transparente avec les modules éducatifs en 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 interactif du joystick 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é ajustable 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
- Plateforme extensible: Actuellement implémentée pour Arduino Uno R4 WiFi, mais peut être étendue à d'autres plates-formes matérielles. Voir DIYables_WebApps_ESP32
Préparation du matériel
Ou vous pouvez acheter les kits suivants:
1 | × | Kit de Démarrage DIYables STEM V4 IoT (Arduino 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'Arduino Uno R4 WiFi/DIYables STEM V4 IoT, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
- Connectez la carte Arduino Uno R4/DIYables STEM V4 IoT à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
- Accédez à l'icône Libraries dans la barre de gauche de l'IDE Arduino.
- Recherchez "DIYables WebApps", puis trouvez la bibliothèque DIYables WebApps par 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 Install All pour installer toutes les dépendances de bibliothèque

- Dans l'IDE Arduino, allez dans Fichier Exemples DIYables WebApps WebJoystick exemple, ou copiez le code ci-dessus et collez-le dans l’éditeur de l’IDE Arduino
- Configurez les identifiants WiFi dans le code en mettant à jour ces lignes :
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'Arduino UNO R4/DIYables STEM V4 IoT
- Ouvrez le moniteur série
- Vérifiez le résultat dans le moniteur série. Il ressemble à ce qui suit
- Si vous ne voyez rien, redémarrez la carte Arduino.
- Notez l'adresse IP affichée et saisissez cette adresse dans la barre d'adresse d'un navigateur 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 directement à la page 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. Configurer les 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 :
- Zone de joystick: Zone circulaire de contrôle pour les entrées tactiles 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)
- Cliquer et glisser: Cliquez sur le joystick et faites-le glisser pour le déplacer
- Relâcher: Le joystick revient au centre (si autoReturn=true)
- Position du clic: Cliquez directement pour définir la position du joystick
Mobile/Tablette (Contrôle tactile)
- Toucher et glisser: Touchez le joystick et faites glisser le doigt pour vous déplacer
- 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: -100 (à gauche au maximum) à +100 (à droite au maximum)
- Axe Y: -100 (en bas au maximum) à +100 (en haut au maximum)
- Centre: X=0, Y=0 (position neutre)
- Coins: Les positions diagonales fournissent des valeurs X/Y combinées
Exemples de programmation
Gestionnaire de joystick basique
Exemple de contrôle moteur
Exemple de contrôle du servomoteur
Indicateur de position LED
Configuration avancée
Modifications de la configuration d'exécution
Implémentation de la zone morte
Rampe de vitesse
Exemples d'intégration matérielle
Contrôle de voiture robotisée
Contrôle du cardan de la caméra
Contrôle de la couleur de la 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
2. Mouvement saccadé ou incohérent
- Augmenter la valeur de sensibilité afin de réduire la fréquence de mise à jour
- Mettre en place un filtrage de la zone morte
- Ajouter une rampe de vitesse pour des transitions en douceur
- Vérifier les problèmes de latence du réseau
- Le retour automatique ne fonctionne pas
- Vérifier le paramètre autoReturn : webJoystickPage.setAutoReturn(true)
- Vérifier la compatibilité du navigateur (certains appareils tactiles peuvent varier)
- Tester avec différentes méthodes d'entrée (souris et tactile)
4. Des valeurs qui n'atteignent pas la plage complète
- Vérifier l'étalonnage du joystick dans l'interface web
- Vérifier les calculs de coordonnées dans le callback
- 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 robot télécommandée
- Contrôle du bras robotique
- Contrôle de vol du drone (mouvements de base)
- Navigation d'un robot de compagnie
Domotique
- Contrôle des rideaux intelligents (ouverture/fermeture/position)
- Contrôle 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 moteur
- Expériences de positionnement des 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 et l'intensité :
Combiner avec WebDigitalPins
Utilisez les positions du joystick pour déclencher les états des broches numériques :
Étapes suivantes
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 déboguer les valeurs du joystick
- MultipleWebApps - Pour combiner le joystick avec d'autres contrôles
Assistance
Pour obtenir de l'aide supplémentaire :
- Consultez la documentation de référence de l’API
- Consultez les tutoriels DIYables : https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-diyables-webapps
- Forums de la communauté Arduino