Raspberry Pi - Joystick
Dieses Tutorial zeigt Ihnen, wie Sie einen Joystick mit dem Raspberry Pi verwenden. Wir werden Folgendes erkunden:
- Die Grundlagen der Funktionsweise eines Joysticks
- Verbindung des Joysticks mit dem Raspberry Pi und Programmierung
- Umwandlung der Werte vom Joystick in steuerbare Werte wie XY-Koordinaten, Motor-Richtungen (auf/ab/links/rechts)...

Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den 2-Achsen Joystick
Sie haben möglicherweise schon einen Joystick an verschiedenen Stellen angetroffen, wie z.B. bei einem Spiele-Controller, einem Spielzeug-Controller oder sogar bei einer großen Maschine wie einem Bagger-Controller.
Der Joystick besteht aus zwei Potentiometern, die in einer quadratischen Anordnung platziert sind, und einem Druckknopf. Er bietet die folgenden Ausgänge:
- Einen analogen Wert von 0 bis 1023, der der horizontalen Position entspricht (bekannt als X-Koordinate)
- Einen analogen Wert von 0 bis 1023, der der vertikalen Position entspricht (bekannt als Y-Koordinate)
- Einen digitalen Wert des Druckknopfs (entweder HIGH oder LOW)
Die Kombination der zwei analogen Werte kann 2D-Koordinaten erzeugen, wobei das Zentrum die Werte sind, wenn sich der Joystick in seiner Ruheposition befindet. Um die tatsächliche Richtung der Koordinaten zu bestimmen, kann ein Test-Code ausgeführt werden (wird im nächsten Abschnitt vorgestellt).
Einige Anwendungen verwenden alle drei Ausgänge, während andere nur einige davon nutzen.
Die Joystick-Pinbelegung
Ein Joystick hat 5 Pins:
- GND Pin: Dieser muss mit GND (0V) verbunden werden.
- VCC Pin: Dieser muss mit VCC (5V) verbunden werden.
- VRX Pin: Dieser gibt einen analogen Wert aus, der der horizontalen Position entspricht (bekannt als X-Koordinate).
- VRY Pin: Dieser gibt einen analogen Wert aus, der der vertikalen Position entspricht (bekannt als Y-Koordinate).
- SW Pin: Dies ist der Ausgang des Druckknopfs im Inneren des Joysticks. Er ist normalerweise geöffnet. Wenn ein Pull-up-Widerstand an diesem Pin verwendet wird, ist der SW Pin HIGH wenn er nicht gedrückt wird, und LOW wenn er gedrückt wird.

Funktionsweise
- Wenn Sie den Joystick-Daumen nach links oder rechts bewegen, ändert sich die Spannung am VRX Pin. Diese Spannung reicht von 0V bis 5V, wobei 0V links und 5V rechts ist, was zu einem Messwert am analogen Pin des Raspberry Pi von 0 bis 1023 führt.
- Ähnlich ändert sich die Spannung am VRY Pin, wenn Sie den Joystick-Daumen nach oben oder unten bewegen. Diese Spannung reicht von 0V bis 5V, wobei 0V oben und 5V unten ist, was zu einem Messwert am analogen Pin des Raspberry Pi von 0 bis 1023 führt.
- Wenn Sie den Joystick-Daumen in eine beliebige Richtung bewegen, ändert sich die Spannung sowohl am VRX als auch am VRY Pin proportional zur Projektion der Position auf jeder Achse.
- Wenn Sie den Joystick-Daumen von oben nach unten drücken, schließt sich der Druckknopf im Inneren des Joysticks. Wenn wir einen Pull-up-Widerstand am SW Pin verwenden, ändert sich der Ausgang vom SW Pin von 5V auf 0V, was dazu führt, dass sich der Messwert am digitalen Pin des Raspberry Pi von HIGH auf LOW ändert.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Code
Dieser Abschnitt präsentiert die folgenden Raspberry Pi Beispiel-Codes:
- Beispiel-Code: Analoge Werte vom Joystick erhalten
- Beispiel-Code: Analoge Werte und Button-Status vom Joystick erhalten
- Beispiel-Code: Umwandlung analoger Werte in MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN Befehle
- Beispiel-Code: Umwandlung analoger Werte in Winkel zur Steuerung von zwei Servo-Motoren (z.B. bei einer Pan-Tilt-Kamera)
Liest analoge Werte vom Joystick
Schnelle Schritte
- Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, wenn Sie Bibliotheken installieren müssen.
- Falls Sie den Raspberry Pi zum ersten Mal verwenden, siehe Raspberry Pi einrichten
- Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe PC mit Raspberry Pi über SSH verbinden.
- Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
- Installieren Sie die Adafruit_ADS1x15 Bibliothek, indem Sie folgende Befehle in Ihrem Raspberry Pi Terminal ausführen:
- Erstellen Sie eine Python-Skriptdatei joystick.py und fügen Sie folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal eingeben:
- Drücken Sie den Joystick-Daumen auf sein Maximum und drehen Sie ihn dann im oder gegen den Uhrzeigersinn.
- Überprüfen Sie die Ergebnisse im Terminal.
Behalten Sie das Terminal im Auge, während Sie den Joystick-Daumen drehen.
Wenn der X-Wert 0 ist, notieren oder merken Sie sich die aktuelle Position als links, wobei die entgegengesetzte Richtung rechts ist.
Wenn der Y-Wert 0 ist, notieren oder merken Sie sich die aktuelle Position als oben, wobei die entgegengesetzte Richtung unten ist.
Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Strg + C im Terminal drücken.
Liest analoge Werte und den Button-Status vom Joystick
Schnelle Schritte
- Erstellen Sie eine Python-Skriptdatei joystick_sw.py und fügen Sie folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal eingeben:
- Bewegen Sie den Joystick-Daumen nach links, rechts, oben oder unten.
- Drücken Sie den Joystick-Daumen von oben.
- Überprüfen Sie die Ergebnisse im Terminal.
Wandelt analoge Werte in MOVE LEFT/RIGHT/UP/DOWN Befehle um
Schnelle Schritte
- Erstellen Sie eine Python-Skriptdatei joystick_cmd.py und fügen Sie folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal eingeben:
- Bewegen Sie den Joystick in eine beliebige Richtung.
- Überprüfen Sie das Ergebnis im Terminal.
※ Notiz:
Zu einem gegebenen Zeitpunkt kann es keinen Befehl, einen Befehl oder zwei Befehle gleichzeitig geben (z.B. UP und LEFT).
Wandelt analoge Werte in Winkel zur Steuerung von zwei Servo-Motoren um
Die Details finden Sie im Tutorial Raspberry Pi - Joystick steuert Servo Motor.
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.