Tutorial: Der Arduino Joystick-Adapter


Mit Emulatoren können alte Retro-Spiele auf jedem PC gespielt werden. Für die Steuerung wird die Tastatur oder ein beliebiger USB-Joystick oder Joypad verwendet. Wer allerdings seinen alten 9 Pin Commodore-Joystick verwenden möchte, steht vor einem kleinen Problem. Am PC können diese nämlich nicht angeschlossen werden, denn dazu wird ein Adapter benötigt. In dieser Anleitung wird beschrieben, wie man so einen Adapter baut, in den auch noch eine optionale Tastatur-Emulation integriert ist.



Bevor es losgeht, noch ein paar Hinweise (Wichtig!)
- Immer die Verdrahtung auf Korrektheit überprüfen. Eine falsche Verdrahtung kann den Arduino beschädigen.
- Vermeide statische Ladungen durch das Berühren eines geerdeten Objektes, wie beispielsweise einen Heizkörper. Oder verwende ein antistatisches Armband.
- Arbeite an der Hardware nur im spannungsfreien Zustand.
- Ich übernehme keine Verantwortung für Schäden, die direkt oder indirekt durch diese Anleitung entstanden sind.

Was wird benötigt?

Die Komponenten

Arduino Micro Pro (ATmega32u)



- D-SUB-Stecker, 9-polig x2
- Draht 0,14mm
- Optional ein Gehäuse in den Der Arduino platz findet

Die Verdrahtung

Abgesehen von den zwei Joystick-Ports, sind keine weiteren Verdrahtungen nötig. Wer nur einen Joystick verwenden möchte, muss nicht zwangsläufig beide Ports an den Arduino anschließen. Die Verdrahtung ist auf der Github Projektseite zu finden: github.com/ytmytm.


Auf der Experimentier-Platine sieht das dann so aus.



Natürlich kann das Ganze in einem Gehäuse verbaut werden, das bleibt jedem selbst überlassen.

Die Arduino Firmware

Die Software, die auf den Arduino Micro Pro geflasht werden muss, ist ebenfalls auf der Projektseite des Entwicklers zu finden. Zuerst laden wir die aktuelle Version der Firmware herunter und entpacken das Archiv. Dann benennen wir den Ordner, in dem sich die Projektdateien befinden in "classic-joystick" um (Siehe folgendes Bild). Das ist wichtig, denn machen wir das nicht, dann werden die Daten später beim Kompilieren nicht gefunden.


Öffne die Datei "classic-joystick.ino" mit Arduino IDE. Wenn alles richtig gemacht wurde, werden alle Projektdateien geöffnet.


Spätestens jetzt sollte der Arduino mit dem USB-Kabel an den Rechner angeschlossen werden. Anschließend müssen wir noch folgende Einstellungen in Arduino IDE vornehmen, damit der Arduino Mini geflasht werden kann.
Board: Arduino Leonardo
Port: Die Port-Nummer an den der Arduino angeschlossen ist. In meinem Fall ist das COM3.


Und nun flashen wir die Firmware (STRG+U).

Der Funktions-Test

Für den ersten Funktionstest eignet sich ein C64-Emulator wie WinVICE sehr gut. Natürlich muss zuerst der Adapter mit dem USB-Kabel am PC und ein Commodore-Joystick am Adapter angeschlossen werden. In den Joystick-Einstellungen sollten wir aus dem DropDown-Menü unseren Adapter wählen können, für beide Joystick-Ports.


Als Test-Software verwenden wir in diesem Beispiel das Programm Joystick Tester V1.0. Mit diesen wird grafisch dargestellt, in welche Richtung der Joystick bewegt und wann der Fire-Button gedrückt wird.

Die Tastatur-Emulation

Mit der Tastatur-Emulation wird die Steuerung der angeschlossenen Joysticks an beliebige Tasten weitergeleitet. Das soll bedeuten, dass wenn der Steuerknüppel am Joystick nach oben, unten, links oder rechts bewegt wird, dann wird beispielsweise ein Tastendruck der Tasten W,A,S und D emuliert. So können auch Spiele gespielt werden, die keinen Joystick unterstützen. Die Tastatur-Emulation lässt sich mit einem beliebigen Terminalprogramm aktivieren/deaktivieren. Das in Arduino IDE integrierte Terminal reicht hierfür vollkommen aus (STRG+UMSCHALT+M). Durch das Senden des Befehles "k" wird die Tastatur-Emulation aktiviert/deaktiviert.



Wenn man jetzt einen beliebigen Text-Editor öffnet und den Joystick am ersten Port bewegt, sollten die Buchstaben W,A,S und D geschrieben werden.

Die Tasten, die betätigt werden sollen, sind selbstverständlich anpassbar. Dazu muss die Firmware nochmal mit Arduino IDE geöffnet und folgende Stelle im Quellcode gesucht werden (Siehe folgendes Bild). Die gewünschten Tasten sind an der markierten Stelle einzutragen.



Anschließend muss die Firmware nochmal geflasht und die Tastatur-Emulation aktiviert werden.