Inhaltsverzeichnis:
- Schritt 1: Anschließen von MPU6050 und Drucktasten an das Arduino Leonardo Board
- Schritt 2: Aufbau der Joystick-Basis
- Schritt 3: Arduino-IDE einrichten
- Schritt 4: Arduino-Programm
- Schritt 5: Testen des Joysticks
Video: DIY MPU-6050 USB-Joystick - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Mit Microsoft Flight Simulator 2020 habe ich schnell gemerkt, wie schwierig es ist, mit der Tastatur einen Plan zu fliegen. Bei der Online-Suche konnte ich keinen vernünftigen Joystick zum Kauf finden. Die meisten Online-Händler hatten sie ausverkauft. Die Popularität von MS Flight Simulator und die COVID-19-Pandemie haben alle bestehenden Joystick-Aktien ausgelöscht. Meine einzige Möglichkeit war, selbst einen zu bauen.
Die meisten Joysticks da draußen verwenden Potentiometer an der Basis, um die Winkel des Joysticks zu bestimmen und X- und Y-Achseninformationen zurück an den Computer zu senden. Das funktioniert gut, verkompliziert aber die Konstruktion des Joysticks. und im Laufe der Zeit. Die Potentiometer können verschleißen. Anstatt Potentiometer zu verwenden, entschied ich mich für die Beschleunigungssensor- / Gyroskop-Sensorplatine, um Informationen über die Winkel des Sticks an den Computer zu senden.
Mit der Popularität verschiedener Arduino-Mikroprozessoren und verschiedener Sensoren werden die Kosten für den Aufbau eines Arduino-Projekts viel erschwinglicher. Eine der am häufigsten verwendeten Beschleunigungsmesser/Gyroskop-Sensorplatinen ist MPU-6050. In Kanada kostet es bei Amazon etwa 7CAN. Ich habe meine von eBay für viel weniger aus China geliefert bekommen, aber die Lieferzeit betrug 3 Monate oder länger.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
Jedes Arduino-Board würde funktionieren, aber die Verwendung eines ATmega32u4-basierten Boards ist viel einfacher, da ATmega32u4 native HID (Human Interface Device) unterstützt. Sobald das Board programmiert ist, können Sie es auf jedem Windows 10-PC verwenden und es ist keine zusätzliche Software erforderlich. Windows 10 erkennt es automatisch als Joystick, wenn der USB angeschlossen ist. (Die Verwendung eines anderen Arduino-Boards ist für dieses einfache Build-Projekt zu kompliziert).
Ich wähle Arduino Leonardo Board. $17CAN von Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Diese 2 Geräte sind die Hauptanforderungen für dieses Projekt. Andere kleinere Gegenstände wie Verkabelungen und Taster sind ebenfalls erforderlich. In diesem Projekt habe ich der Einfachheit halber nur 2 Druckknöpfe verwendet.
Der Joystick-Griff besteht aus einem Schrott-PVC-Wasserrohr. Dies kann leicht durch ein beliebiges kurzes starres Rohr ersetzt werden.
Die Basis des Joysticks ist ein federnder Türstopper, der auf einem Holzstück befestigt ist.
Der Federtürstopper ist bei Home Depot für 2,83 CAN $ erhältlich.
www.homedepot.ca/product/everbilt-spring-d…
Schritt 1: Anschließen von MPU6050 und Drucktasten an das Arduino Leonardo Board
An der MPU 6050 werden nur 4 Anschlüsse verwendet. Sie sind mit VCC, GND, SCL und SDA gekennzeichnet.
Verbinden Sie VCC mit 5 V oder 3,3 V auf Arduino Leonardo. (MPU 6050 kann entweder 5 V oder 3,3 V verwenden. Egal)
Verbinden Sie GND mit einem beliebigen GND auf Arduino Leonardo.
Verbinden Sie SCL mit SCL auf Arduino Leonardo.
Verbinden Sie SDA mit SDA auf Arduino Leonardo.
Ich verwende nur 2 Druckknöpfe für diesen Demonstrationszweck.
Der erste Taster dient zum Zurücksetzen der Joystick-Mitte. In diesem Beispiel ist ein Ende des Tasters mit GND und ein Ende mit PIN 13 verbunden.
Der zweite Taster wird als Joystick-Taste verwendet. In diesem Beispiel ist er mit PIN 9 und GND verbunden.
Sie können Ihrem Projekt nach Bedarf zusätzliche Schaltflächen hinzufügen.
Schritt 2: Aufbau der Joystick-Basis
Finden Sie ein Stück Holzblock. Je schwerer desto besser. Dadurch wird die Joystick-Basis stabiler.
Schrauben Sie den Federtürstopper wie im Bild gezeigt in die Mitte des Holzblocks.
Verwenden Sie ein Stück kurzes Rohr als Joystick-Griff. Ich benutzte ein kratzendes PVC-Rohr. Treten Sie den Draht so, dass der Beschleunigungsmesser / Gyroskopsensor oben auf dem Rohr sitzt.
Dann das Rohr über den Federtürstopper stecken. Ich benutzte Isolierband, um den Sensor auf die Oberseite zu kleben.
Schritt 3: Arduino-IDE einrichten
Laden Sie die Arduino IDE herunter und installieren Sie sie.https://www.arduino.cc/en/Main/Software
Ich habe Arduino 1.8.13 für dieses Projekt verwendet. Der Arduino Web Editor kann auch für dieses Projekt verwendet werden.
Es werden 2 Bibliotheken verwendet.
1. MPU6050_tockn von tockn
github.com/Tockn/MPU6050_tockn
oder Sie finden es im Menü "Bibliothek verwalten".
2. Joystick-Bibliothek von Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Dieser ist derzeit nur auf der GitHub-Website verfügbar.
Klicken Sie auf Code herunterladen und ZIP herunterladen. Entpacken Sie die ZIP-Datei in Ihr Arduino-Bibliotheksverzeichnis.
In meinem Fall ist es E:\PinChung\Documents\Arduino\libraries
Schritt 4: Arduino-Programm
Laden Sie Pin_Joystick.ino in die Arduino IDE und kompilieren und laden Sie sie auf das Leonardo-Board hoch.
Stellen Sie sicher, dass das Arduino Leonardo-Board ausgewählt ist und die Portnummer für den richtigen COM ausgewählt ist: im Menü Extras.
Mir ist einige Zeit aufgefallen, dass das Programm nicht hochgeladen werden konnte mit Fehlercode des COM-Ports nicht verfügbar. Es kann helfen, den Reset-Knopf auf dem Leonardo-Board während des Kompilierens ein paar Mal zu drücken. Auch ein Neustart von Windows 10 kann helfen, den COM-Port freizugeben.
Sobald das Programm auf das Leonardo-Board hochgeladen wurde, sollte Windows 10 den Leonardo Joystick automatisch erkennen. Geben Sie in der Suchleiste von Windows 10 Gamecontroller ein, und führen Sie USB-Gamecontroller einrichten aus.
Wählen Sie Leonardo Joystick und klicken Sie auf Eigenschaften. Die Joystick-Bewegung und die Joystick-Taste Nr. 1 sollten von Windows 10 aufgenommen werden.
Wenn der Joystick nicht zentriert ist, klicken Sie beim Loslassen auf die soeben erstellte Schaltfläche zum Zurücksetzen der Joystick-Mitte. Die USB-Gamecontroller sollten den Joystick-Punkt in der Mitte anzeigen. Es ist nicht erforderlich, den Joystick im USB-Gamecontroller-Programm zu kalibrieren.
Randnotiz: Für diejenigen, die mit Arduino Leonardo nicht vertraut sind: Wenn das Gerät als Joystick, Maus oder Tastatur konfiguriert ist, funktioniert die serielle Schnittstelle nicht. "Serial.print()" wird also nicht funktionieren. Außerdem verwendet MPU6050 eine i2c-Drahtbibliothek und verwendet SDA- und SLC-Pins. Auf Leonardo nehmen SDA und SCL sowohl PIN 2 als auch PIN 3 auf, also verwenden Sie diese 2 Pins nicht für etwas anderes.
Schritt 5: Testen des Joysticks
Ich habe es auf dem Microsoft Flight Simulator 2020 getestet und es funktioniert sehr gut. Ich muss manchmal die mittlere Taste drücken, um den Joystick auf Null zu setzen. Der Wert des MPU6050-Sensors kann im Laufe der Zeit etwas abweichen.
Es gibt viele Möglichkeiten, sich für das Projekt einzusetzen, z. B. das Hinzufügen weiterer Schaltflächen und das Hinzufügen von Drosselklappensteuerungen. Hoffentlich wird dies andere Bastler dazu inspirieren, neue Wege der Herstellung von Dingen zu erkunden.
Empfohlen:
Machen Sie Ihren eigenen USB-Lüfter - Englisch / Französisch: 3 Schritte
Machen Sie Ihren eigenen USB-Lüfter | English / Francais: DEUTSCH Heute habe ich auf Websites gesehen, dass wir USB-Lüfter kaufen können. Aber ich habe gesagt, warum ich nicht meins machen soll? Was Sie brauchen: - Klebeband Elektriker oder Entenband - Ein PC-Lüfter - Ein USB-Kabel, das Ihnen nicht dient - Einen Drahtschneider - Einen Schraubendreher - Eine Saitenmuschel
So erstellen Sie einen USB-Shutdown-Hack – wikiHow
So erstellen Sie einen USB-Shutdown-Hack: In diesem Tutorial zeige ich Ihnen, wie Sie einen versteckten Ordner auf einem USB-Stick erstellen, der den Computer des Benutzers herunterfährt
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um – wikiHow
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um: Hallo zusammen! Heute erkläre ich Ihnen, wie Sie ein USB-Modem auf eine virtuelle VMware ESXi-Maschine umleiten. Auf die gleiche Weise können Sie einen Speicherstick und einige andere USB-Geräte umleiten. Diese altbewährte VMware-Funktion hat ihre Vor- und Nachteile, daher haben wir
So formatieren Sie ein schreibgeschütztes USB-Gerät: 4 Schritte
So formatieren Sie ein schreibgeschütztes USB-Gerät: Wenn Sie versuchen, Ihr USB-Speichergerät zu formatieren, erhalten Sie möglicherweise die folgende Fehlermeldung: "Der Datenträger ist schreibgeschützt". Keine Sorge, es bedeutet nicht, dass Sie mit Viren oder Malware infiziert sind. Um das Problem zu lösen, müssen Sie nur t
NODEMcu USB-Port funktioniert nicht? Laden Sie den Code mit USB auf das TTL(FTDI)-Modul in nur 2 Schritten hoch: 3 Schritte
NODEMcu USB-Port funktioniert nicht? Laden Sie den Code mit USB zum TTL (FTDI)-Modul in nur 2 Schritten hoch: Sie haben es satt, viele Drähte vom USB zum TTL-Modul an das NODEMcu anzuschließen. Befolgen Sie diese Anleitung, um den Code in nur 2 Schritten hochzuladen. Wenn der USB-Anschluss des NODEMcu funktioniert nicht, also keine Panik. Es ist nur der USB-Treiberchip oder der USB-Anschluss