ESP32 WebJoystick-Beispiel – Tutorial zur virtuellen Joystick-Steuerung
Überblick
Das WebJoystick-Beispiel erstellt eine virtuelle Joystick-Schnittstelle, die von jedem Webbrowser aus zugänglich ist. Es ist für die ESP32-Bildungsplattform konzipiert und bietet erweiterte Robotik-Fähigkeiten, integrierte Motorsteuerungsfunktionen und nahtlose Integration in Robotik-Bildungsmodule. Perfekt zum Steuern von Robotern, Fahrzeugen oder jedem System, das eine 2D-Positionseingabe erfordert.

Funktionen
- Virtueller Joystick: Interaktive Joystick-Steuerung über Weboberfläche
- Echtzeitkoordinaten: X/Y-Werte von -100 bis +100 für präzise Steuerung
- Touch- und Mausunterstützung: Funktioniert auf Desktop-, Tablet- und Mobilgeräten
- Konfigurierbare Auto-Rückkehr: Option, dass der Joystick beim Loslassen zur Mitte zurückkehrt
- Empfindlichkeitsregelung: Einstellbare Empfindlichkeit, um übermäßige Aktualisierungen zu verhindern
- Visuelles Feedback: Echtzeitanzeige der Position und der Koordinatenwerte
- WebSocket-Kommunikation: Sofortige Reaktion ohne Seitenaktualisierung
- Mittelposition: Klare Anzeige der Mittelposition für eine neutrale Steuerung
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Installationsanleitung
Schnelle Schritte
Befolgen Sie diese Anweisungen Schritt für Schritt:
- Wenn Sie den ESP32 zum ersten Mal verwenden, lesen Sie das Tutorial zur Einrichtung der ESP32-Umgebung in der Arduino-IDE.
- Schließen Sie das ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino-IDE auf Ihrem Computer.
- Wählen Sie das passende ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
- Navigieren Sie zum Symbol Bibliotheken in der linken Leiste der Arduino-IDE.
- Suchen Sie "DIYables ESP32 WebApps", dann finden Sie die DIYables ESP32 WebApps-Bibliothek von DIYables.
- Klicken Sie auf die Schaltfläche Installieren, um die Bibliothek zu installieren.

- Sie werden aufgefordert, weitere Bibliotheksabhängigkeiten zu installieren.
- Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliotheksabhängigkeiten zu installieren.

- In der Arduino IDE gehen Sie zu Datei Beispiele DIYables ESP32 WebApps WebJoystick Beispiel, oder kopieren Sie den obigen Code und fügen ihn in den Editor der Arduino IDE ein
- Konfigurieren Sie die WLAN-Zugangsdaten im Quellcode, indem Sie diese Zeilen aktualisieren:
- Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den ESP32 hochzuladen.
- Öffnen Sie den Serial Monitor.
- Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht wie folgt aus.
- Wenn Sie nichts sehen, starten Sie das ESP32-Board neu.
- Notieren Sie sich die angezeigte IP-Adresse und geben Sie diese in die Adresszeile eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Beispiel: http://192.168.0.2
- Sie sehen die Startseite wie im unten gezeigten Bild.

- Klicken Sie auf den Web-Joystick-Link; Sie sehen dann die Benutzeroberfläche der Web-Joystick-App, wie unten dargestellt:

- Oder Sie können auch direkt über die IP-Adresse auf die Seite zugreifen, gefolgt von /web-joystick. Zum Beispiel: http://192.168.0.2/web-joystick
- Versuchen Sie, den virtuellen Joystick zu steuern, indem Sie im Joystick-Bereich klicken und ziehen, und beobachten Sie die X-/Y-Koordinatenwerte (-100 bis +100) im seriellen Monitor.
Kreative Anpassung - Passen Sie den Code an Ihr Projekt an
2. Joystick-Einstellungen konfigurieren
Der Joystick kann mit verschiedenen Parametern konfiguriert werden:
Grundkonfiguration
Erweiterte Konfiguration
Wie man den Joystick benutzt
Bedienelemente der Weboberfläche
Die Joystick-Schnittstelle bietet:
- Joystick-Pad: Kreisförmiger Bedieneingabebereich für Touch-/Maus-Eingaben
- Positionsanzeige: Zeigt die aktuelle Joystick-Position
- Koordinatenanzeige: X-/Y-Werte in Echtzeit (-100 bis +100)
- Zentrumspunkt: Visueller Bezugspunkt für die neutrale Position
Bedienung des Joysticks
Desktop (Maussteuerung)
- Klicken und Ziehen: Klicken Sie auf den Joystick und ziehen Sie ihn, um sich zu bewegen
- Loslassen: Der Joystick kehrt zur Mitte zurück (wenn autoReturn=true)
- Klickposition: Direkter Klick, um die Joystick-Position festzulegen
Mobil/Tablet (Touch-Steuerung)
- Berühren und Ziehen: Berühre den Joystick und ziehe den Finger, um dich zu bewegen
- Mehrfachberührung: Ein Finger für präzise Steuerung
- Loslassen: Automatische Rückkehr in die Mitte (falls aktiviert)
Koordinatensystem
Der Joystick liefert Koordinaten in einem standardmäßigen kartesischen Koordinatensystem:
- X-Achse: -100 (ganz links) bis +100 (ganz rechts)
- Y-Achse: -100 (ganz unten) bis +100 (ganz oben)
- Mitte: X=0, Y=0 (neutrale Position)
- Ecken: Diagonale Positionen liefern kombinierte X/Y-Werte
Programmierbeispiele
Grundlegender Joystick-Handler
Beispiel zur Motorsteuerung
Beispiel zur Servosteuerung
LED-Positionsanzeige
Erweiterte Konfiguration
Änderungen der Laufzeitkonfiguration
Implementierung der Totzone
Geschwindigkeitsrampe
Beispiele für Hardware-Integration
Roboter-Auto-Steuerung
Kameragimbalsteuerung
RGB-LED-Farbsteuerung
Fehlerbehebung
Häufige Probleme
1. Joystick reagiert nicht
- Überprüfen Sie den Verbindungsstatus von WebSocket in der Browser-Konsole
- Überprüfen Sie die Netzwerkverbindung
- Laden Sie die Browserseite neu
- Überprüfen Sie den seriellen Monitor auf Fehler
2. zuckende oder unregelmäßige Bewegung
- Erhöhen Sie den Empfindlichkeitswert, um die Aktualisierungsfrequenz zu reduzieren.
- Implementieren Sie die Totzone-Filterung.
- Fügen Sie eine Geschwindigkeitsrampe hinzu, um sanfte Übergänge zu ermöglichen.
- Prüfen Sie Netzwerklatenzprobleme.
- Automatische Rückgabe funktioniert nicht
- Überprüfen Sie die autoReturn-Einstellung: webJoystickPage.setAutoReturn(true)
- Überprüfen Sie die Browser-Kompatibilität (bei einigen Touch-Geräten kann es Unterschiede geben)
- Testen Sie mit verschiedenen Eingabemethoden (Maus vs. Touch)
- Werte erreichen nicht den vollen Wertebereich
- Überprüfe die Kalibrierung des Joysticks in der Weboberfläche
- Überprüfe die Koordinatenberechnungen in der Callback-Funktion
- Teste verschiedene Browser- und Geräte-Kombinationen
Tipps zum Debuggen
Umfassendes Debugging hinzufügen:
Projektideen
Robotik-Projekte
- Ferngesteuertes Roboterauto
- Roboterarmsteuerung
- Drohnenflugsteuerung (grundlegende Bewegungen)
- Haustierroboter-Navigation
Hausautomation
- Intelligente Vorhangsteuerung (Öffnen/Schließen/Position)
- Kamera-Schwenk- und Neigesteuerung
- Lichthelligkeit und Farbsteuerung
- Ventilator-Drehzahl- und Richtungssteuerung
Bildungsprojekte
- Koordinatensystem-Lehrmittel
- Motorsteuerungsdemonstrationen
- Servo-Positionierungsversuche
- Gaming-Controller-Schnittstellen
Kunst und kreative Projekte
- LED-Matrix-Mustersteuerung
- Musikvisualisierungssteuerung
- Zeichnungsrobotersteuerung
- Interaktive Kunstinstallationen
Integration mit anderen Beispielen
Mit WebSlider kombinieren
Verwenden Sie den Joystick für die Richtung und Regler für Geschwindigkeit/Intensität:
Mit WebDigitalPins kombinieren
Verwende Joystick-Positionen, um digitale Pin-Zustände auszulösen:
Nächste Schritte
Nachdem Sie das WebJoystick-Beispiel gemeistert haben, versuchen Sie es:
- WebSlider - Für zusätzliche analoge Steuerung
- WebDigitalPins - Für diskrete Ein/Aus-Steuerung
- WebMonitor - Zum Debuggen der Joystick-Werte
- MultipleWebApps - Joystick mit anderen Steuerelementen kombinieren
Unterstützung
Für weitere Hilfe:
- Überprüfen Sie die API-Referenzdokumentation
- Besuchen Sie die Tutorials von DIYables: https://esp32io.com/tutorials/diyables-esp32-webapps
- ESP32-Community-Foren