So baut ihr euch euren eigenen Game-Controller
Hintergrund

So baut ihr euch euren eigenen Game-Controller

Marc Schaffer
am 01.02.2017
Manchmal ist einfach kein Controller der Richtige. Zu wenig Knöpfe, nicht authentisch genug. Was macht man in so einem Fall? Man bastelt sich das Teil ganz einfach selbst.

Die Tasten am Joystick und Schubhebel sind alle belegt. Ich könnte jetzt die Tastatur benutzen. Aber wenn ich das Steuerrad loslassen muss, um «F2» zu suchen, geht die Illusion kaputt. Ein richtiger Ablöscher ist, wenn man dazu noch die VR-Brille abnehmen muss.

Ergo muss eine weitere Bedienkonsole den Job übernehmen. Und die bauen wir uns selbst.

Aber Vorsicht: Wir müssen dazu die Tastatur-Eingabe emulieren. Im Unterschied zur echten Flugzeug-Steuerung kennt eine Tastatur aber nur zwei Positionen. Nämlich gedrückt oder nicht gedrückt. Bei der Emulation ist es also nicht möglich, zu berücksichtigen, ob der Schalter für das Fahrwerk auf «ausgefahren» oder «eingezogen» steht. Das muss im laufenden Programm abgeglichen werden. Man kann nur den Zustand wechseln (toggeln), also ein- oder ausfahren. Nicht aber «nur einziehen» und «nur ausfahren» ausser das Programm verwenden dafür zwei Tasten.

Die Voraussetzungen

Für unseren Controller benötigen wir folgende Zutaten:

  • 1 Arduino Leonardo (oder Micro oder Due, die eine USB-Tastatur emulieren können)
  • Die benötigte Anzahl Knöpfe, Buttons und Taster (achten auf "tastend" oder "Nicht-rastend", Schalter funktionieren nur bedingt)
  • 1 1k-Widerstand
  • Dünner Draht oder Litze
  • 1-2 Schraubzwingen, um den Controller zu befestigen
  • Einen 3D-Drucker oder Holz, eine Säge und nach Bedarf etwas Farbe
keine Informationen über dieses Bild verfügbar

Die elektrischen Verbindungen sind sehr einfach, hier ein Schema für zwei Tasten:

keine Informationen über dieses Bild verfügbar

Die Software

Das Programm für den Arduino ist dank der enthaltenen Keyboard-Bibliothek sehr einfach. Man definiert welcher Schalter/Taster an welchem Pin hängt. Dann legt man fest, welcher Buchstabe oder welches Zeichen von welchem Taster gesendet wird (z.B. ein J wenn die Taste am Pin 6 gedrückt wird). Die Anschlüsse (Pins) müssen als Eingang (Input) eingestellt werden und der integrierte Pull-Up-Widerstand muss aktiviert werden. Damit werden die Anschlüsse hochgezogen auf 5 Volt (3,3 Volt beim Due), was einer «1», «An» oder «High» entspricht. Wird dann eine Taste gedrückt, wird der Pegel auf «0», «Aus» oder «Low» gezogen. Und in der Endlosschleife (loop) werden die Tasten laufend nacheinander abgefragt. Bei einem Tastendruck wird das entsprechende Zeichen gesendet.

Der Quellcode ist sehr einfach und kann beliebig ausgebaut werden. Zum Beispiel mit Interrupt wenn eine Taste losgelassen wird oder man ermöglicht, dass mehrere Tasten gleichzeitig gedrückt werden können. Komplizierter geht immer 😉.

Den vollständigen Code für den Arduino als auch für den Druck findet ihr auf Github.

Das Gehäuse

Fehlt nur noch ein Gehäuse. Das kann aus Holz oder anderem Material gebaut werden. Man kann aber auch ein bestehendes Gehäuse verwenden oder eines mit einem 3D-Drucker drucken.

*3D-Druck** - 4 hilfreiche Antworten für Beginner
placeholder

placeholder

Ich habe ein sehr einfaches Gehäuse entworfen. Es besteht aus einem Viereck, dem ein kleineres Viereck abgezogen wurde, einer zusätzlichen Leiste als Tischkantenauflage, Löcher für die Schalter und Stützen für den Arduino und die Schraubzwingen. Und zu Guter Letzt ein Deckel als Abschluss. Auch hier gilt: Komplizierter geht immer, z.B. schräge Wände, Rundungen und so weiter.

Gebaut habe ich es für den Einsatz mit der Oculus Rift. Daher die Auflage für an die Tischkante und die Verschraubung. Damit man es blind ertasten kann, sind alle Tasten und Schalter unterschiedlich. Die dunkelgelbe Farbe hilft, damit man die Details besser erkennen kann. Schwarze Schalter in schwarzem Gehäuse sind auf dem Foto schlecht zu sehen und im Cyberspace wenn man die Brille trägt, kann man die Farbe ja sowieso nicht sehen 😉.

  • Die Höhe bestimmt der Arduino plus zweimal die Wandstärke (ein paar Millimeter Platzreserve sind immer gut).
  • Die Breite wird bestimmt durch die Summe der Schalter und Taster mit genügend Abstand nebeneinander gelegt.
  • Die Tiefe bestimmen ebenfalls die Schalter mit zusätzlich etwas Abstand für die Kabel.

Die Schwierigkeit ist die Anordnung, damit sich Schrauben, Bauteile und Abdeckungen nicht in die Quere kommen. Ist mir bei der zweiten Schraube passiert. Eine Schraubzwinge musste ich ein wenig kürzen und etwas Material entfernen, da der Arduino den Weg versperrte. (Immer diese Entscheidungen: Anpassen durch Absägen oder umkonstruieren).

*DIY Adapter** für HTC Vive Base Station
placeholder

placeholder

Ich habe ein Modell des Arduinos erstellt, mit den Zylindern für die Schrauben Löcher und dem USB-Anschluss und dem Platzhalter für den Stecker:

keine Informationen über dieses Bild verfügbar

Dann habe ich die Taster und Bedienelemente genommen und nebeneinander gelegt bis die Abstände passten und habe die Löcher bestimmt und in ein Modul verpackt:

keine Informationen über dieses Bild verfügbar

Dieses Modul kann wiederverwertet und alle Teile darin auf einmal positioniert und ausgerichtet werden. Nun kommt das Gehäuse dazu, verschoben um 3 mm für die Wandstärke und seitlich noch je 1 mm Abstand zum Arduino: Länge zusammengezählt aus den einzelnen Abständen. Sieht etwas wild aus, ist aber bei Korrekturen sehr nützlich.

keine Informationen über dieses Bild verfügbar

Damit aus dem massiven Viereck ein Gehäuse wird, berechnen wir den Innenraum:

keine Informationen über dieses Bild verfügbar

Umgedreht und vom Gehäuse das Innenvolumen und USB-Stecker weggerechnet sieht es schon fast wie das fertige Gehäuse aus.

keine Informationen über dieses Bild verfügbar

Blenden wir den Arduino-Platzhalter aus und passen das Schaltermodul ein, dann ist der grösste Teil erledigt.

keine Informationen über dieses Bild verfügbar

Die beiden Zylinder für die Schraubenlöcher passen nicht. Lassen wir sie weg und fügen die Abstandshalter und die Ummantelungen für die Schraubzwingen hinzu.

keine Informationen über dieses Bild verfügbar

Fehlen nur noch die Rechtecke, um Platz auszusparen für die Schraubzwingen.

keine Informationen über dieses Bild verfügbar

Schlussendlich muss nur noch alles in Reihenfolge gebracht werden: * Gehäuse * minus Innenvolumen * minus USB-Stecker * dies Verschachtelt plus Abstandshalter plus Ummantelungen * und vom Ganzen noch die Schraubenlöcher und Schraubzwingen abgezogen

keine Informationen über dieses Bild verfügbar

Nun noch rendern, exportieren als STL-Datei und durch den Slicer geht es ab in den Drucker.

Während der Drucker für rund zwei Stunden beschäftigt ist, designen wir noch den Deckel. Idealerweise die bestehende Datei unter neuem Namen speichern und weiter bearbeiten. Wie am Anfang verwenden wir wieder den Arduino Platzhalter, verschieben und kürzen die Abstandshalter.

keine Informationen über dieses Bild verfügbar

Dann fügen wir ein Rechteck als Deckel ein und ein Rechteck als seitliche Führung. Dann wieder alles in eine Gruppe zusammenfassen und die Löcher und Schraubzwinge abziehen.

keine Informationen über dieses Bild verfügbar

Fazit

So «einfach» bastelt ihr euch euren eigenen, einzigartigen Controller. Wenn ihr keinen Game-Controller braucht, könnt ihr die Tastatur-Emulation auch für ganz andere Zwecke einsetzen. Zum Beispiel mit einem Fusspedal die Shift-Taste betätigen. Der Fantasie sind praktisch keine Grenzen gesetzt.

Das könnte dich auch interessieren

Eintauchen in den Cyberspace, doch mit welcher *VR-Brille**?
placeholder

placeholder

*Raspberry Pi** oder **Arduino**, welcher für welchen Zweck?
placeholder

placeholder

Hol dir die *Lizenz zum Löten**!
placeholder

placeholder

23 Personen gefällt dieser Artikel


Marc Schaffer
Ich bin ein digitaler Ureinwohner der Generation Commodore 64, online seit Wählscheibe und Akustikkoppler. Neben Videospielen hole ich gerne mit dem 3D-Drucker Dinge aus dem Cyberspace in den Makerspace. Technologie ist einfach faszinierend.

Diese Beiträge könnten dich auch interessieren