In dieser Sitzung werden wir einen Joystick mit Raspberry Pi verbinden. Joystick wird hauptsächlich zum Spielen verschiedener Spiele verwendet. Obwohl USB-Joysticks einfach anzuschließen sind, werden wir Joystick heute über Raspberry Pi GPIO-Pins verbinden. Dies ist in vielen Fällen nützlich.
Himbeer-Pi und Joystick-Modul:
Joysticks sind in verschiedenen Formen und Größen erhältlich. Ein typisches Joystick-Modul ist in der folgenden Abbildung dargestellt. Dieses Joystick-Modul bietet normalerweise analoge Ausgänge, und die von diesem Modul bereitgestellten Ausgangsspannungen ändern sich ständig entsprechend der Richtung, in die wir es bewegen. Und wir können die Bewegungsrichtung ermitteln, indem wir diese Spannungsänderungen mit einem Mikrocontroller interpretieren. Zuvor haben wir AVR Microcontroller mit Joystick verwendet.
Wie Sie sehen können, hat dieses Joystick-Modul zwei Achsen. Sie sind X-Achse und Y-Achse. Jede Achse von JOY STICK ist an einem Potentiometer oder Topf montiert. Die Mittelpunkte dieser Töpfe werden als Rx und Ry herausgetrieben. Rx und Ry sind also variable Punkte für diese Töpfe. Wenn sich der Joystick im Standby-Modus befindet, fungieren Rx und Ry als Spannungsteiler.
Wenn der Joystick entlang der horizontalen Achse bewegt wird, ändert sich die Spannung am Rx-Pin. In ähnlicher Weise ändert sich die Spannung am Ry-Pin, wenn es entlang der vertikalen Achse bewegt wird. So wir auf zwei ADC - Ausgänge vier Richtungen von Joystick haben. Wenn der Stick bewegt wird, geht die Spannung an jedem Pin je nach Richtung hoch oder niedrig.
Wie wir wissen, verfügt Raspberry Pi nicht über einen internen ADC- Mechanismus (Analog to Digital Converter). Dieses Modul kann also nicht direkt an den Pi angeschlossen werden. Wir werden Komparatoren auf Op-Amp-Basis verwenden, um die Spannungsausgänge zu überprüfen. Diese OP-Verstärker liefern Signale an Raspberry Pi und Pi schaltet die LEDs abhängig von den Signalen um. Hier haben wir vier LEDs verwendet, um die Bewegung des Joysticks in vier Richtungen anzuzeigen. Überprüfen Sie das Demonstrationsvideo am Ende.
Jeder der 17 GPIO-Pins kann keine höhere Spannung als +3,3 V aufnehmen, sodass die Operationsverstärkerausgänge nicht höher als 3,3 V sein dürfen. Daher haben wir uns für den Operationsverstärker LM324 entschieden. Dieser IC verfügt über einen Quad-Operationsverstärker, der mit 3 V arbeiten kann. Mit diesem IC haben wir geeignete Ausgänge für Ausgänge für unsere Raspberry Pi GPIO Pins. Erfahren Sie hier mehr über GPIO Pins von Raspberry Pi. Schauen Sie sich auch unsere Raspberry Pi Tutorial-Reihe zusammen mit einigen guten IoT-Projekten an.
Erforderliche Komponenten:
Hier verwenden wir Raspberry Pi 2 Model B mit Raspbian Jessie OS. Alle grundlegenden Hardware- und Softwareanforderungen wurden bereits erläutert. Sie können sie in der Einführung zu Raspberry Pi und zum Blinken der Raspberry PI-LED nachschlagen, um loszulegen.
- 1000µF Kondensator
- Joystick-Modul
- LM324 Operationsverstärker-IC
- 1KΩ Widerstand (12 Stück)
- LED (4 Stück)
- 2,2 kΩ Widerstand (4 Stück)
Schaltplan:
Im LM324 IC befinden sich vier OP-AMP-Komparatoren zur Erkennung von vier Joystick-Richtungen. Unten sehen Sie das Diagramm des LM324 IC aus seinem Datenblatt.
Die Verbindungen, die für das Interfacing Joystick-Modul mit Raspberry Pi hergestellt werden, sind im folgenden Schaltplan dargestellt. U1: A, U1: B, U1: C, U1: D geben die vier Komparatoren im LM324 an. Wir haben jeden Komparator im Schaltplan mit der entsprechenden Pin-Nr. von LM324 IC.
Arbeitserklärung:
Zum Erfassen der Bewegung des Joysticks entlang der Y-Achse haben wir OP-AMP1 oder U1: A und OP-AMP2 oder U1: B, und zum Erfassen der Bewegung des Joysticks entlang der X-Achse haben wir OP-AMP3 oder U1: C und OP-AMP4 oder U1: D.
OP-AMP1 erkennt die Abwärtsbewegung des Joysticks entlang der Y-Achse:
Minuspol des Komparators U1: A ist mit 2,3 V versehen (unter Verwendung der Spannungsteilerschaltung von 1K und 2,2K) und der Pluspol ist mit Ry verbunden. Wenn Sie den Joystick entlang seiner Y-Achse nach unten bewegen, steigt die Ry-Spannung an. Sobald diese Spannung höher als 2,3 V ist, liefert OP-AMP an seinem Ausgangs-Pin einen + 3,3 V-Ausgang. Dieser HIGH-Logikausgang von OP-AMP wird von Raspberry Pi erkannt und Pi reagiert mit dem Umschalten einer LED.
OP-AMP2 erkennt die Aufwärtsbewegung des Joysticks entlang der Y-Achse:
Der Minuspol des Komparators U1: B ist mit 1,0 V (unter Verwendung der Spannungsteilerschaltung von 2,2 K und 1 K) versehen, und der Pluspol ist mit Ry verbunden. Wenn Sie den Joystick entlang seiner Y-Achse nach oben bewegen, nimmt die Ry-Spannung ab. Sobald diese Spannung unter 1,0 V fällt, wird der OP-AMP-Ausgang niedrig. Dieser LOW-Logikausgang von OP-AMP wird von Raspberry Pi erkannt und Pi reagiert mit dem Umschalten einer LED.
OP-AMP3 erkennt die Bewegung des Joysticks auf der linken Seite entlang der X-Achse:
Der Minuspol des Komparators U1: C ist mit 2,3 V (unter Verwendung der Spannungsteilerschaltung von 1 K und 2,2 K) versehen, und der Pluspol ist mit Rx verbunden. Wenn Sie den Joystick entlang seiner x-Achse nach links bewegen, steigt die Rx-Spannung an. Sobald diese Spannung höher als 2,3 V ist, liefert OP-AMP an seinem Ausgangs-Pin einen + 3,3 V-Ausgang. Dieser HIGH-Logikausgang von OP-AMP wird von Raspberry Pi erkannt und Pi reagiert mit dem Umschalten einer LED.
OP-AMP4 erkennt die Bewegung des Joysticks auf der rechten Seite entlang der X-Achse:
Der Minuspol des Komparators U1: 4 ist mit 1,0 V (unter Verwendung der Spannungsteilerschaltung von 2,2 K und 1 K) versehen, und der Pluspol ist mit Rx verbunden. Wenn Sie den Joystick entlang seiner x-Achse nach rechts bewegen, nimmt die Empfangsspannung ab. Sobald diese Spannung unter 1,0 V fällt, wird der OP-AMP-Ausgang niedrig. Dieser LOW-Logikausgang von OP-AMP wird von Raspberry Pi erkannt und Pi reagiert mit dem Umschalten einer LED.
Auf diese Weise werden alle vier Logiken, die die vier Richtungen des Joysticks bestimmen, mit Raspberry Pi verbunden. Raspberry Pi verwendet die Ausgänge dieser Komparatoren als Eingänge und reagiert entsprechend durch Umschalten der LEDs. Nachfolgend sind die Ergebnisse aufgeführt, die auf dem Terminal des Raspberry Pi angezeigt werden, da wir auch die Richtung des Joysticks auf dem Terminal mit unserem Python-Code gedruckt haben.
Python-Code und Video sind unten angegeben. Code ist einfach und kann durch die Kommentare im Code verstanden werden.