Arduino WebJoystick-Beispiel – Tutorial zur virtuellen Joystick-Steuerung
Überblick
Das WebJoystick-Beispiel erstellt eine virtuelle Joystick-Oberfläche, die von jedem Webbrowser aus zugänglich ist. Entworfen für die Arduino Uno R4 WiFi- und DIYables STEM V4 IoT-Bildungsplattform mit erweiterten Robotik-Fähigkeiten, integrierten Motorsteuerungsfunktionen und nahtloser Integration mit Robotik-Lernmodulen. Perfekt zum Steuern von Robotern, Fahrzeugen oder jedem System, das eine 2D-Positionseingabe erfordert.

Funktionen
- Virtueller Joystick: Interaktive Joystick-Steuerung über die Weboberfläche
- Koordinaten in Echtzeit: 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-Funktion: Option, dass der Joystick nach dem Loslassen in die Mitte zurückkehrt
- Empfindlichkeitsregelung: Einstellbare Empfindlichkeit, um übermäßige Aktualisierungen zu verhindern
- Visuelles Feedback: Echtzeit-Positionsanzeige und Koordinatenwerte
- WebSocket-Kommunikation: Sofortige Reaktion ohne Seitenaktualisierung
- Mittelposition: Deutlicher Indikator der Mittelposition für eine neutrale Steuerung
- Plattform-Erweiterbarkeit: Derzeit für Arduino Uno R4 WiFi implementiert, kann jedoch auf andere Hardware-Plattformen erweitert werden. Siehe DIYables_WebApps_ESP32
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables STEM V4 IoT Starter-Kit (Arduino enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Installationsanweisungen
Schnelle Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn dies das erste Mal ist, dass Sie das Arduino Uno R4 WiFi/DIYables STEM V4 IoT verwenden, lesen Sie das Tutorial zum Einrichten der Umgebung für Arduino Uno R4 WiFi/DIYables STEM V4 IoT in der Arduino IDE.
- Schließen Sie das Arduino Uno R4/DIYables STEM V4 IoT-Board über ein USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das geeignete Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
- Navigieren Sie zum Libraries-Symbol in der linken Seitenleiste der Arduino IDE.
- Suchen Sie "DIYables WebApps", und finden Sie dann die DIYables WebApps-Bibliothek von DIYables.
- Klicken Sie auf die Schaltfläche Install, 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.

- Im Arduino IDE gehen Sie zu Datei Beispiele DIYables WebApps WebJoystick Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
- Konfigurieren Sie die WLAN-Zugangsdaten im Code, indem Sie diese Zeilen aktualisieren:
- Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um Code auf den Arduino UNO R4/DIYables STEM V4 IoT hochzuladen.
- Öffnen Sie den Serial Monitor.
- Schauen Sie sich das Ergebnis im Serial Monitor an. Es sieht so aus, wie unten dargestellt.
- Wenn Sie nichts sehen, starten Sie das Arduino-Board neu.
- Notieren Sie sich die angezeigte IP-Adresse und geben Sie diese Adresse in die Adressleiste eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Beispiel: http://192.168.0.2
- Sie sehen die Startseite wie im untenstehenden Bild:

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

- Oder du kannst die Seite auch direkt über die IP-Adresse aufrufen, gefolgt von /web-joystick. Zum Beispiel: http://192.168.0.2/web-joystick
- Versuche, den virtuellen Joystick zu steuern, indem du im Joystick-Bereich klickst und ziehst, und beobachte die X/Y-Koordinatenwerte (-100 bis +100) im Serial 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
So verwenden Sie den Joystick
Weboberflächensteuerungen
Die Joystick-Schnittstelle bietet:
- Joystick-Pad: Kreisförmiger Bedienbereich für Touch-/Maus-Eingaben
- Positionsanzeige: Zeigt die aktuelle Joystick-Position an
- Koordinatenanzeige: Echtzeit-X/Y-Werte (-100 bis +100)
- Zentrumspunkt: Visuelle Referenz für die neutrale Position
Bedienung des Joysticks
Desktop (Maussteuerung)
- Klicken und Ziehen: Klicken Sie auf den Joystick und ziehen Sie ihn, um ihn zu bewegen
- Loslassen: Der Joystick kehrt zur Mitte zurück (falls 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
- Multi-Touch: Ein Finger für präzise Steuerung
- Loslassen: Automatische Rückkehr zur Mitte (falls aktiviert)
Koordinatensystem
Der Joystick liefert Koordinaten in einem standardkartesischen Koordinatensystem:
- X-Achse: -100 (ganz links) bis +100 (ganz rechts)
- Y-Achse: -100 (ganz unten) bis +100 (ganz oben)
- Zentrum: X=0, Y=0 (neutrale Position)
- Ecken: Diagonale Positionen liefern kombinierte X- und Y-Werte
Programmierbeispiele
Einfacher Joystick-Handler
Beispiel für die Motorsteuerung
Servosteuerungsbeispiel
LED-Positionsanzeige
Erweiterte Konfiguration
Laufzeitkonfigurationsänderungen
Implementierung der Totzone
Geschwindigkeitsrampe
Beispiele zur Hardwareintegration
Roboter-Auto-Steuerung
Kamera-Gimbal-Steuerung
RGB-LED-Farbsteuerung
Fehlerbehebung
Häufige Probleme
1. Joystick reagiert nicht
- Überprüfen Sie den WebSocket-Verbindungsstatus in der Browser-Konsole
- Überprüfen Sie die Netzwerkverbindung
- Laden Sie die Browser-Seite neu
- Überprüfen Sie den seriellen Monitor auf Fehler
2. Ruckartige oder unregelmäßige Bewegungen
- Den Empfindlichkeitswert erhöhen, um die Aktualisierungsfrequenz zu verringern
- Totzone-Filterung implementieren
- Eine Geschwindigkeitsrampe für sanfte Übergänge hinzufügen
- Auf Netzwerk-Latenzprobleme prüfen
3. Automatische Rückkehr funktioniert nicht
- AutoReturn-Einstellung prüfen: webJoystickPage.setAutoReturn(true)
- Browser-Kompatibilität prüfen (bei einigen Touch-Geräten gibt es Unterschiede)
- Mit unterschiedlichen Eingabemethoden testen (Maus vs. Touch)
4. Werte erreichen nicht den vollen Bereich
- Überprüfen Sie die Kalibrierung des Joysticks in der Weboberfläche
- Überprüfen Sie die Berechnungen der Koordinaten im Callback
- Testen Sie verschiedene Browser- und Geräte-Kombinationen
Tipps zum Debuggen
Umfassendes Debugging hinzufügen:
Projektideen
Robotik-Projekte
- Ferngesteuertes Roboterauto
- Roboterarmsteuerung
- Drohnenflugsteuerung (Grundbewegungen)
- Navigation von Haustierrobotern
Heimautomatisierung
- Intelligente Vorhangsteuerung (Öffnen/Schließen/Position)
- Kamera-Schwenk- und Neige-Steuerung
- Lichthelligkeit und Farbsteuerung
- Ventilator-Drehzahl- und Richtungssteuerung
Bildungsprojekte
- Lehrwerkzeug für das Koordinatensystem
- Demonstrationen der Motorsteuerung
- Servo-Positionierungsversuche
- Gaming-Controller-Schnittstellen
Kunst und kreative Projekte
- LED-Matrix-Mustersteuerung
- Steuerung der Musikvisualisierung
- Zeichnungsrobotersteuerung
- Interaktive Kunstinstallationen
Integration mit anderen Beispielen
Kombinieren Sie mit WebSlider
Verwenden Sie den Joystick zur Richtungsbestimmung und die Schieberegler für Geschwindigkeit/Intensität:
Mit WebDigitalPins kombinieren
Verwenden Sie Joystick-Positionen, um die Zustände digitaler Pins auszulösen:
Nächste Schritte
Nachdem Sie das WebJoystick-Beispiel beherrscht haben, probieren Sie:
- WebSlider - Zur zusätzlichen analogen Steuerung
- WebDigitalPins - Zur diskreten 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 DIYables-Tutorials: https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-diyables-webapps
- Arduino-Community-Foren