Technische Grundlagen

Der Joystick - das unbekannte Wesen, das vielen Computer-Spielen das gewisse Etwas gibt, wie es etwa das Salz in der Suppe tut. Dass so ein Joystick auch leicht selbst zu bauen ist, wissen wahrscheinlich nur wenige. Dabei ist gerade ein guter, alter (Gameport-)Joystick relativ schnell gebaut. Tja, wenn man nur weiß wie. Der folgende Abschnitt erklärt das bisschen Elektronik, die man beim Joystickbau beherrschen sollte.



Der Gameport

Einen Gameport hat (noch) jeder nicht ganz mit Spielern auf Kriegsfuß stehende Desktop-PC. Auch viele Notebooks besitzen diesen Port. Leider wird er aber zunehmend von USB verdrängt. Auch die Tatsache, dass viele Mainboards bereits alles mögliche integrieren und daher Platzmangel bei den Steckverbindungen haben, drängt den Gameport immer weiter zurück. Sollte jedoch einmal ein Gameport fehlen, so gibt es 3 Möglichkeiten:

  • Einen USB-auf-Gameport-Adapter kaufen (weniger anspruchsvoll) oder selbst konstruieren (sehr anspruchsvoll!)
  • Aus einem vorhanden USB-Joystick die Steuerelektronik verwenden (weniger empfehlenswert, funktioniert aber durchaus auch)
  • Den Joystick für USB entwickeln (sehr anspruchsvoll!)

Da wie gerade eben erwähnt der USB-Bus für den Entwickler bzw. Hobby-Bastler ein sehr anspruchsvolles Unterfangen ist, einigen wir uns darauf, dass der Computer einen Gameport besitzt, entweder direkt auf der Soundkarte oder sonst via USB-Gameport-Adapter (erhältlich z.B. bei CONRAD)

Gameport weiblich Der weibliche (female) Anschluss des Gameports am Computer
Gameport männlich Der männliche (male) Anschluss am Joystick


Pin Funktion Pin Funktion Pin Funktion
1 +5 VDC 6 Joystick 1 - Y 11 Joystick 2 - X
2 Button 1 7 Button 2 12 Masse
3 Joystick 1 - X 8 +5 VDC 13 Joystick 2 - Y
4 Masse 9 +5 VDC 14 Button 3
5 Masse 10 Button 4 15 +5 VDC

Jeder dieser 15 Kontakte hat eine spezielle Bedeutung. Zwar haben manche Kontakte gleiche Aufgaben, das soll uns aber nicht weiter stören.

Wie verbindet man aber jetzt die Pins miteinander? Folgendes Schaltbild soll Aufklärung geben, indem es die Standardbeschaltung eines 2-Achsen-2-Tasten-Joysticks zeigt:

Schaltbild Joystick

Will man einen Button ansprechen, so muss man nur den jeweiligen Pin mit Masse verbinden.
Komplizierter wird es dann schon bei den jeweiligen Achsen. Hier wird nicht einfach der jeweilige Pin mit Masse verbunden, sondern es muss ein 100 kOhm Potentiometer zwischen +5V und dem jeweiligen geschalten werden. Je nach dem, welcher Widerstand nun anliegt, erkennt der Computer einen mehr oder weniger starken Ausschlag in eine Richtung (Für besonders Interessierte: Der anliegende Widerstand wird über die Ladungsdauer eines Kondensators über ein Monoflop bestimmt). Ein kleiner Widerstand bedeutet nach links bzw. oben, ein großer Widerstand bedeutet nach rechts bzw. unten.



Wie in der Tabelle weiter oben zu ersehen ist, können am Gameport zwei Joysticks mit je zwei Tasten angeschlossen werden. Da heutzutage jedoch kaum jemand zu zweit an einem Rechner spielt, ist es viel zweckmäßiger, wenn man alle Anschlüsse für einen einzigen Joystick nützt. So kann die Joystick2-y-Achse etwa für eine Schubkontrolle genützt werden und so weiter. Somit erhält man "vom Fleck weg" vier Achsen und vier Tasten, mit denen man seinen Joystick ausstatten kann.


Jetzt weiß man eigentlich schon alles, was man von der elektronischen Seite für einen einfachen Joystick wissen sollte. Man bräuchte den Joystick nur noch anzuschließen und in der Systemsteuerung von Windows aktivieren, zum Beispiel als "2-Achsen-4-Tasten-Joystick". Tja, nur was eben fehlt ist der Joystick. Diesen wollen wir auf den folgenden Seiten zusammenbauen.

Eigentlich wollen wir sogar ein bisschen weiter gehen, indem wir uns ein Lenkrad zusammenbauen, mit dem man dann (empfohlenerweise ;-)) Rennspiele spielen kann...




Kommentare:



Nils, am 16. 12. 2013 um 21:13
Hallo Zusammen,
Wie viele Pedale könnte ich denn jetzt anschließen...?
Wie viele Pins brauche ich für z. B. das Lenkrad?
Nur z.B. Joystick 1-X oder auch in dem Falle Joystick 1-Y...?
Danke im vorraus
Tobi, am 22. 12. 2011 um 15:39
Hallo,
Kann jemand einen funktionierenden USB-Gameport-Konverter empfehlen?
Der einzigste, über den kaum Schlechtes gesagt wird, wäre der hier:

http://www.adaptare-shop.de/Gameport-Aktiver-USB-Gameport-Konverter/a20447678_u526_zce627b87-b78e-4d68-846c-eb5a6f57b1ef/

Bloß gibt es den mitlerweile nirgedswo mehr. :`(

Außerdem hab ich auch irgentwo gelesen, das Win7 x64 keinen Gameport unterstützt.

Blöderweise kann ich auch keine zweite Soundkarte anschließen (Hab einen fertig PC von Medion ;) )

???
Antwort KR: Die ueblichen Gameport-Adapter haben keine Probleme mit 4-Achsen-4-Tasten-Joysticks. Proprietaere Erweiterungen wie etwa beim Microsoft Sidewinder funktionieren in der Regel aber nicht, was aber im Prinzip nicht die Schuld des Adapters ist. Ueber den Gameport-Support von Windows 7 weiß ich leider nichts.
Max Straub, am 20. 5. 2011 um 19:38
Hi, nach so etwas habe ich gesucht! Nur wie lese ich jetzt die Inputs aus dem Gameport zb mit Python unter Linux aus? Bastele momentan an einer Spielkonsole aus nem alten PC, wäre gut zu wissen.
Gruß, Max
Antwort KR: Unter Linux kann man etwa über /dev/ioports auf den Gameport lesend zugreifen. Wie das genau mit Python funktioniert, weiß ich leider nicht.
cp, am 30. 7. 2009 um 08:27
Sorry für den Doppelpost:

Wegen dem Konfigurieren -> des haut hin aber er erkennt ihn halt nicht als Angeschloßen.

Es wird also der Controler angezeit aber immer auf dem Status nicht verbunden
(4A - 0T )


mfg
cp
cp, am 30. 7. 2009 um 08:23
Also ich habe für den ersten Versuch 10K Potis genommen die ich auch noch mit Masse verbunden habe.

Mein 2ter Vewrsuch hat noch nicht stattgefunden, allerdings sind dabei 100k potis dabei die wie im Plan abgebildet Angeschlossen sind.

Betriebssystem ist XP Prof.
Wegen den +5V -> hmm... müsste ich mal schauen aber das dürfte eigentlich nix machen. Es wird ja nicht ewig viel Leistung verlangt, und ob jetz links 5 oder rechts5 ändert an der tatsache 5 aja nichts oder ?

mfg
cp
Karli, am 25. 7. 2009 um 11:17
Hallo cp!

Was passiert, wenn du nur einen 2-Achsen Joystick konfigurierst? Ich kann mich erinnern, dass es teilw. auch darauf ankommt, dass die Potentiometer fuer Joystick 1 ein anderes +5V Pin haben als die Potentiometer fuer Joystick 2.

Um welches Betriebssystem handelt es sich?

Lg,
Karli
cp, am 24. 7. 2009 um 11:09
Also ich habe mir nach dem Plan einen 4 Achsen 0 Tasten joystick gebaut.

( erstellt hab ich ihn, aber er wird immer als nicht angeschlossen angezeigt. )

Ich habe die schaltung überprüft und sie stimmt.

Gibt es da noch ein paar kniffe oder sowas ?

( Gameport ist aktiv und läuft mit anderen joysticks problemlos )

mfg
cp
treaki, am 30. 12. 2008 um 00:11
hi,
ich würde zu den punkten der Abhilfe für den fehlenden Gameport auch noch hinzufügen (hab ich auch gemacht) sich eine alte Soundkarte mit Gameport einbauen. das waren bei mir nur ein paar Handgriffe und es geht perfekt

treaki
Joe, am 6. 7. 2008 um 19:16
Hallo,
weiß hier auch jemand, wie man nen Joystick mit USB baut?
evtl mit Atmega ...

Gruß Joe
Gereon, am 17. 6. 2008 um 14:59
Vielen Dank für die Tipps! Vielleicht zusätzlich noch folgender Hinweis: Damit Windows den Joystick/das Lenkrad erkennt, müssen zumindest die 1-x und 1-y Achsen belegt sein. Ich habe hier versucht, Pedale mit nur einer Achse (1-y) in Betrieb zu nehmen, aber es wurde nur "nicht verbunden" angezeigt. Erst nach dem Brücken der Pins 1 und 3 mit einem 10kOhm Widerstand ("Vortäuschen" der 1-x Achse) wurde auc ein Gerät erkannt...
Gruß,
Gereon
SharkyTheWhite, am 5. 6. 2007 um 16:50
Zu den Plänen oben:
Ein Hinweis meinerseits wäre, dass man teilweise die Achs-Poti nicht nur an +5V sondern auch an Masse legen kann. Das Poti arbeitet dann als Spannungsteiler, was den Vorteil hat, dass die vom Rechner gemessene Spannung nicht mehr von dem Verwendeten Widerstand abhängt. Somit kann man auch mit 10k Potis fertiger mini-joystick-Module (Conrad) arbeiten.

Zu den Multitasten-Lösungen:
Also was ich hier so entnehmen konnte stimmt mit meinen Erfahrungen überein.
Ein Diodenarray ist Zeitverschwendung, das geht beim Testen gut, beim Arbeiten nicht. Da ich über den Gameport bei manchen Projekten Sensordaten Aufnehme und oft mit mehr als 4 dieser sorte hantiere, gleichzeitig aber noch die Manuelle Steuerung der Anlage über den GP regeln möchte, greife ich oft auf andere Varianten zurück:
Ein Widerstandsarray an einem der Achseingänge lässt viele Taster zu:
Bei zwei Tastern wird der ausgang mit einem 100k Widerstand nach Masse auf Null-Niveau gehalten. Die Taster werden dann über ein bit-artiges System mit einem Widerstand von +5V nach Eingang verkabelt:

+5V - Taster - Widerstand - Eingang - 100k - Masse

Die Taster werden dann je nach anzahl mit folgenden Widerständen versehen:
2 Taster:
- T1: 75k
- T2: 50k
-> T1+T2: ~31k
Eine Software kann nun zwischen nichts, etwas, mehr und viel unterscheiden.
Eine Schaltfeld-Deaktivierung im Sinne eines Aus-Hebels kann dann sehr schön über eine direkte verbindung nach + Erfolgen. der Pegel am Input ist hier dann ja immer +5V.

Dies ist vllt. ein Ansatz der zu einer sicheren Unterscheidung führt, verlangt aber einiges an Softwareaufwand. Genau wie die variante eines Microcontroller- oder Schieberegisterähnlichen "seriellen" Übertragen der Tastdaten ;)
Koarl, am 4. 3. 2007 um 16:53
Hi!

Wie bereits in meinem letzten Posting erwähnt ist das Problem,
dass man auf gar keinen Fall mehr als einen Knopf gleichzeitig drücken
darf, andernfalls wird das falsch interpretiert. (Nachteil der
Diodenmatrix)

Der Schaltplan ohne die Dioden sollte problemlos
funktionieren, ev. würde ich die 56kOhm-Widerstände durch welche
in der Größenordnung 70-100kOhm ersetzen.

Danke jedenfalls
für die Recherche!
Dark Lam0r, am 4. 3. 2007 um 16:19
Also ich hab mich mal umgesehn und bin per dem Programm directRemote,
welches nicht für 15 Tasten geht sondern sogar für 63
;)
http://www.meierspage.net/how2s/steuerungen/direct_remote_steuerung/direct_remote_steuerung.php
und somit bin ich auf die idee gekommen dass man so auch den 6Tastenjoystick/Lenkrad bauen könnte, Joystick und Lenker
sind ja Prinzipgleich.
http://img476.imageshack.us/my.php?image=lenkrad6ttransistorengm7.gif
oder ohne Transistoren, müsste es so funktionieren:
http://img250.imageshack.us/img250/8608/lenkrad6tdirektqq0.gif
ich habs noch kein meter getestet, aber wenns bei DR geht gehts auch
bei uns ^^
Dark Lam0r, am 22. 1. 2007 um 14:24
naja ich hab mal rumgetestet...
also es is glasklar nicht die methode
^^
auch wenn ich nicht ganz versteh wie ein 6t joystick funktionieren
soll... laut systemsteuerung geht das...
Naja ich hab erstmal nur ne
"Joystickerweiterung" gebaut, mein nachbar wollt für seinen
2a2t joystick ne schubkontrolle... jetz hatter sogar seitenruder dabei
*G*

Ich persönlich wollte das 15-tastensystem für ne
zusatztastatur in spielen verwenden...
buyscripte in CS, bauaktionen in
WC3 und so.. mal abwarten obs ne lösung gibt
Koarl (http://www.karlrupp.net), am 20. 12. 2006 um 19:52
Vielen Dank für den Eintrag! Die 15 Tasten erscheinen mir aus
folgendem Grund problematisch: Drückt man beispielsweise die Tasten 1
und 2 gleichzeitig, so würde das als Taste 5 interpretiert werden. Und
in der Hektik eines Rennspieles kann so etwas durchaus auftreten und
würde wohl katastrophale Auswirkungen haben.

Aber ein Versuch ist
das allemal Wert, notfalls ist ein wenig Bastelei und Sucherei von der
Softwareseite her notwendig.
Dark Lam0r, am 20. 12. 2006 um 19:14
Ich hab mal ne version mit 15 tasten gesehen, es sei denn es wäre vom
programm emuliert.... dabei wird das binärsystem verwendet:
taste1 =
1
taste2 = 2
taste3 = 4
taste4 = 8
die taste 5 ist somit über
dioden auf den anschluss von taste1 und taste2 zu führen somit kommt
am rehner "3" an, dieser rechnet dann aus der summe die
angeschlagenen taste aus...
wie gesagt, es sei denn dass programm, dss ich
nutzte (DirectInput) hätte daraus die einzelnen befehle
gerechnet
vielleicht könnte man das mal ausprobieren, wenn das
Projekt noch läuft/gepflegt wird

Gruß
Koarl (http://www.karlrupp.net), am 20. 11. 2005 um 13:13
Hi!
@ NightFox:
Schaltung ist in Tip-Tronic-Form nicht weiters schwer,
ein richtiger H-Shifter ist allerdings schon trickreicher. Handbremse ist
auch kein Problem, du musst ja nur einen Knopf emulieren. Und die Pedale am
besten wie in einem richtigen Auto verkehrt herum anordnen, ist bereits
für mein "Redesign" geplant. Sofern du Fragen hast, meld
dich! ;-)
NightFox, am 20. 11. 2005 um 12:35
Echt klasse idee mit dem Lenkrad! Hab ebenfalls vor mir so eins zu bauen
jedoch möchte ich Schaltung, Pedalen und Handbremse unbedingt
dabeihaben um ein richtiges Renn-feeling zu haben :)
Koarl (http://www.karlrupp.net), am 3. 8. 2005 um 18:42
Hi! Ich versuche, ihn bis Freitag hier online zu stellen. Hab derzeit viel
zu tun, also bitte ein wenig Geduld!

Ciao, Karli
Beni, am 31. 7. 2005 um 17:12
Wann kommt endlich ein schaltplan?
Letztes Update dieser Seite am 25. 11. 2006