mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehr als 4 Tasten bei Gameport-Joystick


Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Für ein Projekt möchte ich einen Gameport-Joystick als Eingabegerät
verwenden. Diese Schnittstelle mit ihren jeweils 4 digitalen bzw.
analogen Pins scheint mir mit Abstand am einfachsten zu verwenden.

Nun hat der Gameport ja 4 digitale Pins für 4 Knöpfe, der Joystick den
ich hier vor mir habe hat aber deutlich mehr. (3 4-Seiten-Knöpfe,
Feuerknopf, normale Knöpfe). Wie werden die denn ausgelesen?

Gruss

Michael

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eigentlich hatte der Gameport 2 Analoge, 2 Digitale Eingänge und Midi
In-/Out, wenn er auf einer Soundkarte wohnte.
Irgendwann reichten die 2 Knopfe nicht und es wurden 4. Leider ging
dann Midi-In/Out nicht mehr so richtig.

Als das auch nicht reichte, machte eben jeder Hersteller, was er
wollte...
2x Analog und 2x Digital stimmt immer. Der Rest? Schieberegister im
Joystick und dann über 2 Pins der Wahl des Herstellers irgendwie in den
Port geschoben. Da kamen dann die Treiber, die nur mit Game X gingen, wo
nur 3 der Knöpfe vollig unsinnige Aktionen auslösten usw. usw. ;)

Also den Joystich aufschrauben, schauen was drin und wo dran ist.

Gruß aus Berlin
Michael

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ok...soviel also zu meiner Aussage bezüglich Einfachheit ;-)

Zum Glück habe ich einen qualitativ hochwertigen Joystick von Logitech,
mal schauen, ob es eventuell sogar eine Dokumentation dazu gibt o.ä.

Gruss

Michael

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut kabelfaq liegen (wie ich schon vor meinem Post vermutete und auch
zu wissen meinte) auf dem Gameport die Anschlüsse für zwei Joysticks:
4x analog + 4x digital
Um die Eingänge unter Windows benutzen zu können, muss man auf die
analogen Eingänge auch ein Signal legen (irgendwelche Widerstände;
ausprobieren). Sonst wird der Joystick gar nicht erst erkannt.

http://www.kabelfaq.de/usb.html

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich muss Widerstände auf die Analog-Eingänge legen? Ich dachte bisher,
da wäre ein Widerstand drin, durch denn dann im PC ein Kondensator
gefüllt wird. Wie oft dieser 'überläuft', wird gezählt und daraus der
Widerstand und somit die Schalterstellung errechnet. Na gut, das alles
liesse sich mit dem Multimeter testen, aber zuerst muss ich mir mal den
passenden Sub-D-Stecker auftreiben, sonst gibt das ein riesen
Gefummel...

Gruss

Michael

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der PC-Joystick hat im Analogteil üblicherweise NE555-kompatible Timer
(als Mehrfachchip bzw. bei neueren PCs in einen anderen Chip mit
integriert) verbaut. Diese sind als Monoflop geschaltet, wobei der
Kondensator mit im PC ist, der Widerstand (als Poti) im Joystick. Das
Auslesen erfolgt durch Triggern des Monoflops von der PC-Software und
Ermitteln der Zeit, bis der Ausgang wieder zurück schaltet. Deshalb
haben die PC-Joysticks auch eine (so bescheuerte) Innenschaltung, die
für den Anschluss an den ADC relativ ungeeignet ist.

...

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Deshalb
> haben die PC-Joysticks auch eine (so bescheuerte) Innenschaltung,
die
> für den Anschluss an den ADC relativ ungeeignet ist.

Niederohmig? Weil es ja ziemlich fix gehen muss mit dem Laden des
Kondensators.


Habe nun mal meinen Joystick aufgeschraubt. Der Schubregler ist wie
erwartet an einem Poti. Doch für die Steuerachsen konnte ich keine
Potis finden, sondern für jede Achse ein dünnes Blech, das sich mehr
oder weniger auf Leiterbahn-Ringe auf der Platine absenkt, diese aber
nich berührt. Es macht mir fast den Eindruck, als würden hier induktive
Wirkungen gemessen. Könnte das sein?

Gruss

Michael

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@inoffizieller WM-Rahul:
Du hast mit 4x für 2 Joysticks natürlich völlig recht.
Ich bezog mich auf die Ursprungsversion, 1 Joystick hatte 2 Potis
zwischen Masse und +5V geschaltet, die Schleifer an x und y.
Dazu 2 Taster gegen Masse.
Das dann später beide Josticks sozusagen in einen eingebaut wurden, um
4x Analog und 4x Digital zu haben, ist eine andere Geschichte.
Die Timer waren für Dauerfeuer, soweit vorhanden. Die Potis hatten so
um die 50k und eine angepasste Kennlinie, weil der Wandler im PC
ziemlich nichtlinear ist.

Gruß aus Berlin
Michael

Autor: Winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Wie schon weiter oben beschrieben wurde kann so ein Joystik ein nahezu
beliebige Innenleben aufweisen. Wichtig ist nur wie die Signale
aussehen welche ihn über den Port in Richtung verlassen. Hier bist du
an die Methoden gebunden welche der Port vorschreibt.

Bezüglich der Digitaleingänge kannst du 4 Pins nach belieben verwenden
wenn du Dein eigenes Protokoll verwendest.

Die analogen Eingänge basieren auf der schon beschriebenen RC
Zeitmessung hier kommt es an den C im PC zu laden. Ob das logarithmisch
(über R )oder digital (über PWM) geschieht bleibt Dir überlassen. Die
Messmethode innerhalb der am Jostikport angeschlossenen Einheit ist
davon vollkommen unabhängig realisierbar, wenn Du die Signale
entsprechend umformen kannst, wäre sogar eine Phasenwinkelmessung  oder
eine Frequenzmessug möglich.

Nur über die Auflösung von 256 digit =8bit kommst du nur hinaus, wenn
Du Deinen eigenen Treiber schreiben kannst.

Nur noch ein kurzes Beispiel mit den Digitaleingängen kannst Du sogar
eine art Onewaydatenbus realisieren, wenn du über eine Leitung taktest
und über die Andere die Werte hineinschiebst.

Ich muss noch mal nachsehen ob man die Analogeingänge auch als Ausgänge
mißbrauchen kann, indem man per Treiber den Entladetransistor des Ne555
direkt anweisst loszulassen oder eben nicht.

Autor: Winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
edit:
Wichtig ist nur wie die Signale
aussehen welche ihn über den Port in Richtung PC verlassen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.