- Erforderliche Komponenten
- Arduino Leonardo
- Dual Axis XY Joystick-Modul
- Schaltplan
- Code und Arbeitserklärung
Wir haben zuvor Joystick mit Arduino UNO verbunden, um zu verstehen, wie es funktioniert, und vier LEDs für die Bewegung nach links, rechts, oben und unten gesteuert. In diesem Projekt verwenden wir denselben Joystick wie das Gamepad oder den Gamecontroller, um alle Computerspiele zu spielen, die Bewegungen nach links, rechts, oben und unten erfordern. Zum Spielen von Spielen, für die mehr Steuerungsoptionen erforderlich sind, können zwei oder mehr Joysticks verwendet werden. Hier werden wir Arduino Leonardo verwenden, um Joystick als Gamecontroller zu verbinden. Arduino Leonardo hat gegenüber Uno den Vorteil, dass wir USB-Treiber darauf installieren können und es vom Computer als Maus, Tastatur oder Joystick erkannt werden kann, wenn es angeschlossen ist.
Erforderliche Komponenten
- Arduino Leonardo
- Dual Axis XY Joystick-Modul
- Arduino IDE
- Kabel anschließen
Arduino Leonardo
Für dieses Projekt verwenden wir das Arduino Leonardo, eine Mikrocontroller-Karte, die auf dem ATmega32u4 basiert. Es verfügt über 20 digitale Ein- / Ausgangspins (von denen 7 als PWM-Ausgänge und 12 als analoge Eingänge verwendet werden können), einen 16-MHz-Quarzoszillator, einen Micro-USB-Anschluss, eine Stromanschlussbuchse, einen ICSP-Header und eine Reset-Taste. Es enthält alles, was zur Unterstützung des Mikrocontrollers erforderlich ist. Schließen Sie es einfach mit einem USB-Kabel an einen Computer an oder versorgen Sie es mit einem AC / DC-Adapter oder einer Batterie, um loszulegen.
Der Leonardo unterscheidet sich von allen vorhergehenden Karten dadurch, dass der ATmega32u4 über eine integrierte USB-Kommunikation verfügt, sodass kein sekundärer Prozessor erforderlich ist. Dadurch kann der Leonardo einem angeschlossenen Computer zusätzlich zu einem virtuellen (CDC) seriellen / COM-Anschluss als Maus und Tastatur angezeigt werden.
Technische Spezifikationen
Mikrocontroller | ATmega32u4 |
Betriebsspannung | 5V |
Eingangsspannung (empfohlen) | 7-12V |
Eingangsspannung (Grenzwerte) | 6-20V |
Digitale E / A-Pins | 20 |
PWM-Kanäle | 7 |
Analoge Eingangskanäle | 12 |
Gleichstrom pro E / A-Pin | 40 mA |
Gleichstrom für 3,3 V Pin | 50 mA |
Flash-Speicher | 32 KB (ATmega32u4), davon 4 KB vom Bootloader |
SRAM | 2,5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
Taktfrequenz | 16 MHz |
Länge | 68,6 mm |
Breite | 53,3 mm |
Gewicht | 20 g |
PIN Out Referenz
Dual Axis XY 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 Joy Stick mit verschiedenen Mikrocontrollern verbunden:
- Schnittstelle zwischen Joystick und Arduino
- Schnittstelle zwischen Joystick und Raspberry Pi
- Schnittstelle zwischen Joystick und PIC-Mikrocontroller
- Joystick-Schnittstelle mit AVR-Mikrocontroller
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.
Schaltplan
Dieser Arduino Joystick Game Controller erfordert folgende Verbindungen zwischen dem Arduino und dem Joystick:
Code und Arbeitserklärung
Der vollständige Code mit einem Demo- Video wird am Ende angegeben. Hier erklären wir einige wichtige Teile davon.
Zunächst müssen wir die Tastaturbibliothek initialisieren
#einschließen
Als nächstes haben wir im folgenden Code die X- und Y-Achse des Joystick-Moduls für den analogen Pin A0 bzw. A1 initialisiert.
const int X_pin bzw. const int Y_pin
Der Analogwert des VRX-Pins wird gelesen und wenn der Wert 1023 ist, wird der Befehl für "up" gegeben, und wenn der Wert 0 ist, wird der Befehl für "down" gegeben.
In ähnlicher Weise wird der Analogwert des VRY-Pins gelesen und wenn der Wert 1023 ist, wird der Befehl für "rechts" gegeben, und wenn der Wert 0 ist, wird der Befehl für "links" gegeben.
Der Joystick hat auch einen Druckknopf oben, so dass dieser Knopf (SW) ebenfalls gelesen wird. Wenn der Knopf gedrückt wird, ist der Wert 0, dann wird der Befehl für „Enter“ gegeben.
Brennen Sie schließlich den Code in Arduino und verbinden Sie das Arduino mit dem Computer.
Überprüfen Sie als Nächstes die " Geräte und Drucker" in Ihrem Bedienfeld. Im Abschnitt " Geräte " wird " Arduino Leonardo" angezeigt (siehe Abbildung unten). Jetzt können Sie mit dem Joystick spielen.
Mit diesem Joystick können wir alle Spielsteuerungen steuern. Der Joystick verfügt über zwei Potentiometer, eines für die Bewegung der X-Achse und eines für die Bewegung der Y-Achse. Jedes Potentiometer erhält 5 V vom Arduino. Wenn wir also den Joystick bewegen, ändert sich auch der Spannungswert und der Analogwert an den Analogstiften A0 und A1. Der Joystick fungiert also als Gamepad.
Auf diese Weise kann ein normaler Joystick mit Arduino Leonardo in einen Gamecontroller umgewandelt und zum Spielen von Spielen verwendet werden, bei denen alle Steuerelemente zum Bewegen nach links, rechts, oben und unten vorhanden sind. Wie bereits erwähnt, kann mehr als ein Joystick angeschlossen werden, um mehr Steuerelemente als diese vier grundlegenden Funktionen zu erhalten.