Arduino Nano ESP32 Web-Joystick mit DIYables ESP32 WebApps-Bibliothek
Übersicht
Dieses Tutorial behandelt die Klasse DIYablesWebJoystickPage aus der DIYables ESP32 WebApps-Bibliothek. Die Browser-Seite rendert einen berührungsempfindlichen und mausfähigen virtuellen Joystick, der X/Y-Koordinaten an den Arduino Nano ESP32 über WebSocket sendet. Die Skizze registriert einen Callback, der diese Werte empfängt und sie auf Motor-Treiber, Servo-Steuerungen oder jede Richtungshardware anwenden kann.

Was dieses Tutorial abdeckt
- Instanziierung der Joystick-Seite mit Auto-Return- und Empfindlichkeitseinstellungen
- Empfangen von X/Y-Positionswerten in einem Sketch-Callback
- Verwendung von Koordinaten zur Steuerung eines differentiellen Antriebsmotorsystems
- Zurückgeben der aktuellen Joystick-Position an den Browser auf Anfrage
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn Sie den Arduino Nano ESP32 zum ersten Mal verwenden, lesen Sie das Tutorial zum Einrichten der Arduino Nano ESP32-Entwicklungsumgebung.
- Verbinden Sie die Arduino Nano ESP32-Platine mit Ihrem Computer über ein USB-Kabel.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie die entsprechende Platine (z. B. Arduino Nano ESP32) und den COM-Port aus.
- Navigieren Sie zum Symbol Bibliotheken in der linken Leiste der Arduino IDE.
- Suchen Sie nach "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.
- Search for DIYables ESP32 WebApps created by DIYables and click the Install button.
- Sie werden aufgefordert, einige andere 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 Sie ihn in den Editor der Arduino IDE ein
- Aktualisieren Sie die WiFi-Anmeldedaten in der Skizze:
- Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um Code zum Arduino Nano ESP32 hochzuladen
- Öffnen Sie den seriellen Monitor
- Die Ausgabe des seriellen Monitors sollte wie folgt aussehen:
- Wenn nichts angezeigt wird, drücken Sie die Reset-Taste auf der Platine.
- Geben Sie die IP-Adresse aus dem seriellen Monitor in einen Browser im selben Netzwerk ein.
- Beispiel: http://192.168.0.2
- Die Startseite zeigt eine Karte für die Joystick-Anwendung:

- Wählen Sie die Web-Joystick-Karte, um die Steuerungsseite zu öffnen:

- Die Seite ist auch direkt unter http://192.168.0.2/web-joystick erreichbar.
- Ziehen Sie den Joystick und beobachten Sie die X/Y-Werte, die im seriellen Monitor gedruckt werden.
Joystick-Konfiguration
Standardeinstellungen
Benutzerdefinierte Einstellungen
Koordinatensystem
- X-Achse: –100 (ganz links) bis +100 (ganz rechts)
- Y-Achse: –100 (ganz unten) bis +100 (ganz oben)
- Mitte: X = 0, Y = 0 (neutral)
Callbacks
Position-Updates empfangen
Position an den Browser liefern
Wird aufgerufen, wenn sich ein Browser verbindet und den aktuellen Status anfordert:
Motor-Steuerungsbeispiel
Joystick X/Y zu einem differentiellen Antriebsmotorsystem zuordnen:
Problembehandlung
Joystick bewegt sich im Browser, aber der serielle Monitor zeigt nichts an
- Überprüfen Sie, dass onJoystickValueFromWeb vor webAppsServer.begin() registriert ist
- Bestätigen Sie, dass die WebSocket-Statusanzeige „verbunden" im Browser anzeigt
Joystick springt nicht in die Mitte zurück
- autoReturn muss true im Konstruktor sein (standardmäßig ist es true)
- Der Browser handhabt die Snap-Back-Animation; die Platine empfängt nur Positionsereignisse
Zu viele Updates pro Sekunde verursachen Lag
- Erhöhen Sie den Parameter sensitivity (z. B. von 5 auf 15 ändern)
- Fügen Sie eine Prüfung mit minimalem Intervall im Callback vor der Ausführung von Hardware-Aktionen hinzu
Platine nicht erreichbar
- Sowohl die Platine als auch das Browser-Gerät müssen sich im selben 2,4-GHz-Netzwerk befinden
- Bestätigen Sie, dass die IP-Adresse aus dem seriellen Monitor korrekt ist