ESP32 - Joystick - Servomotor
Diese Anleitung zeigt, wie Sie zwei Servomotoren oder ein Pan-Tilt-Kit mit einem ESP32 und einem Joystick unter MicroPython steuern.
Ein Joystick enthält zwei Steuerelemente, sogenannte Potentiometer, die kreuzförmig angeordnet sind und als X-Achse und Y-Achse bezeichnet werden. Diese Potentiometer erzeugen Signale, den X-Wert und den Y-Wert, die von den Pins VRX und VRY des Joysticks kommen. Mit diesen Signalen werden zwei Servomotoren gesteuert: Der X-Wert steuert Servomotor #1, der Y-Wert steuert Servomotor #2. In Verbindung mit einem Pan-Tilt-Kit arbeiten die beiden Servomotoren zusammen, um Bewegungen in drei Dimensionen auszuführen.
Die Anwendung kann auf zwei Arten genutzt werden:
- Anwendungsfall 1: Die Bewegung des Joysticks steuert die Servomotoren:
- Die Winkel der Servomotoren entsprechen den Links-Rechts- (X) und Auf-Ab-Bewegungen (Y) des Joysticks.
- Wird der Joystick losgelassen, kehren er und die Servomotoren in ihre Ausgangsposition zurück.
- Anwendungsfall 2: Den Joystick verwenden, um den Servomotoren Befehle zu geben:
- Wird der Joystick nach links bewegt, dreht sich Servomotor #1 im Uhrzeigersinn.
- Wird der Joystick nach rechts bewegt, dreht sich Servomotor #1 gegen den Uhrzeigersinn.
- Wird der Joystick nach oben bewegt, dreht sich Servomotor #2 im Uhrzeigersinn.
- Wird der Joystick nach unten bewegt, dreht sich Servomotor #2 gegen den Uhrzeigersinn.
- Wird der Joystick losgelassen, behalten die Servomotoren ihre aktuelle Position bei.
- Durch Drücken des Joystick-Knopfes werden die Servomotoren in die Mittelposition zurückgesetzt.
- ESP32 MicroPython Erste Schritte Tutorial
- So verbinden Sie den ESP32 mit Joystick und Servomotor über ein Breadboard
- So verbinden Sie den ESP32 mit Joystick und Servomotor über ein Schraubklemmen-Breakout-Board
- Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
- Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
- Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
- Verbinden Sie das ESP32-Board gemäß dem Schaltplan mit dem Joystick und dem Servomotor.
- Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Thonny IDE auf Ihrem Computer.
- Gehen Sie in der Thonny IDE zu Tools Options.
- Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
- Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
- Navigieren Sie in der Thonny IDE zu Tools Manage packages.
- Suchen Sie nach “DIYables-MicroPython-Servo” und finden Sie die von DIYables erstellte Servomotor-Bibliothek.
- Klicken Sie auf DIYables-MicroPython-Servo und dann auf die Schaltfläche Install, um die Servomotor-Bibliothek zu installieren.
- Suchen Sie nach “DIYables-MicroPython-Joystick” und finden Sie die von DIYables erstellte Joystick-Bibliothek.
- Klicken Sie auf DIYables-MicroPython-Joystick und dann auf die Schaltfläche Install, um die Joystick-Bibliothek zu installieren.
- Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
- Speichern Sie den Code auf Ihrem ESP32:
- Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
- Wählen Sie im Speicherdialog MicroPython device.
- Nennen Sie die Datei main.py.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Drücken Sie den Joystick in eine beliebige Richtung.
- Beobachten Sie, wie sich der Servomotor dreht.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.
- Der ESP32-ADC ist nicht perfekt genau und muss für präzise Ergebnisse eventuell kalibriert werden. Jedes ESP32-Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board erforderlich.
- Die Kalibrierung kann besonders für Anfänger schwierig sein und liefert nicht immer genau die gewünschten Ergebnisse.
- Kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Thonny IDE ein.
- Speichern Sie das Skript auf Ihrem ESP32-Board.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Bewegen Sie den Joystick in eine beliebige Richtung.
- Beobachten Sie, wie sich der Servomotor dreht.
- Sehen Sie sich die Meldung in der Shell unten in Thonny an.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.
Überblick über Joystick and Servo Motor
Wenn Sie neu im Umgang mit Joystick, Servomotor oder der MicroPython-Programmierung für den ESP32 sind, empfehle ich Ihnen diese Tutorials:
Diese Tutorials vermitteln Ihnen ein umfassendes Verständnis der Pinbelegung von Joystick und Servomotor, wie Sie diese Komponenten mit dem ESP32 verbinden und wie Sie ihr Verhalten mit MicroPython-Code effektiv steuern.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP32 MicroPython-Code
ESP32 MicroPython-Code - Die Servomotoren drehen sich entsprechend der Bewegung des Joystick-Hebels
Schnelle Schritte
So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:


※ Notiz:
Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) auslesen, der mit einem Joystick verbunden ist. Der ADC des ESP32 eignet sich für Projekte, die keine hohe Präzision erfordern. Wenn Ihr Projekt jedoch genaue Messungen benötigt, beachten Sie Folgendes:
Für Projekte mit hohen Präzisionsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 verwenden oder einen Arduino wählen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.
ESP32 MicroPython-Code - Mit dem Joystick den Servomotoren Befehle geben
Schnelle Schritte
Code-Erklärung
Sehen Sie sich die Erklärungen in den Kommentaren des Quellcodes an.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.