ich war hier: MPTSS2017Controller

Version [87171]

Dies ist eine alte Version von MPTSS2017Controller erstellt von MartinPauli am 2018-03-12 17:17:50.

 

Projekt 2: Arduino als Controller


Ziel dieses Projektes ist es, einen Controller mithilfe des Arduinos zu bauen. Der Arduino wird dann in der Lage sein, mithilfe von DirectInput mit dem Computer zu kommunizieren. Dabei wird die Firmware des USB-Controllers mit einer modifizierten Version überschrieben, weshalb diese Anleitung nur mit Arduinos kompatibel ist, welche den ATmega328 verwenden.

Original Arduino (ATmega328):
[Bild 1]

Dritthersteller Arduino (CH340G/CH341G):
[Bild 2]

Falls Sie einen Dritthersteller-Arduino verwenden, welcher einen kleinen quadratischen Chip besitzt, ist dieser mit großer Wahrscheinlichkeit inkompatibel.

A. Komponentenliste

1x Arduino Uno
2x Analog Sticks
11x Taster

B. Installation der benötigten Software und Treiber
1. Atmel Flip Installieren
Mithilfe von Atmel Flip wird die Firmware des USB-Controller überspielt.
Flip herunterladen:
http://www.microchip.com/developmenttools/ProductDetails.aspx?PartNO=FLIP
[Bild 3]
Auf der Seite finden Sie den Download für Flip, es wird empfohlen das Installationsprogramm mit der integrierten Java Runtime herunterzuladen, da Flip hierbei wählerisch ist und den Start sonst verweigert. Bei der Installation selbst ist hierbei nichts weiter zu beachten.

2. UnoJoy
Damit der Arduino auch als Controller verwendet werden kann, kommt UnoJoy zum Einsatz. Hierbei handelt es sich um eine schon vorgefertigte Firmware für den USB-Controller und eine Arduino Bibliothek. UnoJoy ist auf GitHub zu finden:
https://github.com/AlanChatham/UnoJoy
Die benötigten Dateien bekommen Sie, wenn die auf „Clone or download“ drücken und hier „Download ZIP“ wählen.
[Bild 4]
Entpacken Sie das Archiv nach dem Herunterladen an einen beliebigen Ort. Gehen Sie dann in den Ordner Drivers und dort den Unterordner Windows. Starten Sie hier dpinst-amd64.exe wenn sie ein 64-Bit Windows verwenden und dpinst-x86.exe wenn Sie ein 32-Bit Windows verwenden.
[Bild 5]
Es kann sein das die Installation des Atmel Corporation Treibers fehlschlägt, das ist allerdings kein Problem solange der libusb Treiber betriebsbereit ist.
C. Arduino vorbereiten
Erstellen Sie einen neuen Arduino Sketch und speichern Sie diesen als Controller.ino ab. In den eben entpackten Ordner gehen Sie in den UnoJoy Unterordner und kopieren Sie die „UnoJoy.h“ Datei. Fügen Sie diese bei den eben gespeicherten Arduino Sketch ein.
Öffnen Sie die Controller.ino und fügen Sie folgenden Beispiel-Quelltext ein:
[Quelltext]
Mithilfe der UnoJoy.h haben Sie Zugriff auf die Funktion setControllerData(), diese gibt den Status der Taster an den Computer weiter. In der Funktion getControllerData() werden die Pins ausgewertet und den entsprechenden Tastendrücken zugewiesen. Schließen Sie den Arduino an den Computer und Laden das Programm auf ihn.
1. DFU-Modus
Damit Sie die Firmware des USB-Controllers überspielen können, müssen Sie den Arduino in den DFU-Modus (Device Firmware Upgrade) versetzen.
[Bild 5]
Um in den DFU-Modus zu wechseln, müssen Sie die beiden rot markierten Pins überbrücken, dazu können Sie z.B. ein Kabelende verwenden. Nach dem Überbrücken sollten Sie ein Ton von Windows hören, dass ein Gerät abgeschlossen und wieder angeschlossen wurde. Wechseln Sie erneut in das UnoJoy Verzeichnis und in den UnoJoy Unterordner, starten Sie TurnIntoAJoystick.bat um die neue Firmware aufzuspielen. Die Ausgabe sollte wie folgt aussehen:
[Bild 6]
Der DFU-Modus ist immer nur so lange aktiv wie der Arduino eingeschaltet ist. Um den DFU-Modus zu beenden, trennen Sie das USB-Kabel vom Computer und schließen es wieder an, Windows erkennt den Arduino jetzt als Controller. Es ist jetzt nicht mehr möglich, Programme auf den Arduino hochzuladen, dazu müssen Sie erst wieder die Firmware wechseln. Dies ist mithilfe der TurnIntoAnArduino.bat möglich.
D. Aufbau
Das folgende Bild zeigt einen Beispielaufbau eines Controllers. Die Pinbelegung entspricht der aus dem Beispiel Quelltext.
[Bild 7]
E. Funktionstest
Der Controller ist somit fertiggestellt und einsatzbereit. Den Controller können Sie unter http://html5gamepad.com/ testen. Hierbei meldet sich dieser direkt als „UnoJoy Joystick“.
[Bild 8]
Auch können Sie den Controller am Raspberry Pi verwenden. Er wird von den gängigen Spielesystemen wie RetroPie sowie Recalbox OS erkannt.

Sie können jetzt dank des Arduinos verschiedene Kombinationen aus Bauteilen zu einem Controller umfunktionieren, so wäre eine Steuerung durch Gyroskop, Mikrofon oder Lichtsensor denkbar.

Attachments
File Last modified Size
1.png 2023-10-06 18:37 712Kb
2.png 2023-10-06 18:37 996Kb
3.png 2023-10-06 18:37 39Kb
4.png 2023-10-06 18:37 62Kb
5.png 2023-10-06 18:37 17Kb
6.png 2023-10-06 18:37 71Kb
7.png 2023-10-06 18:37 67Kb
8.png 2023-10-06 18:37 227Kb
9.png 2023-10-06 18:37 24Kb
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki