Forum: Mikrocontroller und Digitale Elektronik Problem bei Gameport debugger


von Ferlo de rühr (Gast)


Lesenswert?

Hi. Ich habe ein Problem beim Ansteuern des Gameports.
Ich habe mir einen Debugger für den Gameport gebaut.
Dieser benutzt 100K Potis, die die Joystickachsen simulieren.
Bei der Abfrage der Achsen bekomme ich aber immer Schwankende Werte,
die immer Springen (172...171..172...170). Kann man das mit
Puffer-kondensatoren kompensieren ? Oder irgendwie anders ?
Bedanke mich schon im voraus für ein paar Antworten.

von Michael F. (startrekmichi)


Lesenswert?

Ich glaube kaum, dass sich da was machen lässt. Der Standartgameport hat
einfach eine schlechte Auflösung. Außerdem wär es möglich, dass du
einfache Potis verwendet hast und sich damit dann die Fehler
aufaddieren.
Wenn du dir nen gescheiten Joystick bauen willst, dann schau mal hier:

http://www.mindaugas.com/projects/

Den kleinen Joystick (6Achsen/24Tasten) habe ich erfolgreich
nachgebaut, er hängt jetzt an meinem selbstgebauten Steuerhorn
+Seitenruderpedalen. Der große macht natürlich mehr Arbeitsaufwand, hat
aber auch deutlich mehr Möglichkeiten.

von Andreas (Gast)


Lesenswert?

Sieht doch ganz "gut" für nen Gameport aus,.. der AD-Wandler in
Gameports ist eben nicht sonderlich genau.
Du kannst auf der Softwareseite das ganze etwas glätten, also z.B.
immer den Mittelwert aus den letzten n Werten bilden, oder x= x*k +
m*(1-k), wobei m der jeweilige Messwert ist, x dein geglätteter Wert
und k ein Faktor (so in der 0.9 Ecke).
Durch solche Maßnahmen verringert sich aber natürlich auch die
Reaktionsgeschwindigkeit,.. also den Gameport möglichst oft auslesen,
damit das ganze nicht zu träge wird.
Man kann vom Gameport glaube ich auch 16Bit Werte bekommen, die
natürlich genau so schwanken, könnte aber wenn man mittelt dennoch
besser sein.
Natürlich sind auch noch aufwändigere Tiefpassfilter möglich,..

Eine andere Möglichkeit (wird von der Windows-Api für Gameport Zeugs
schon angeboten) ist es, nen Schwellwert für die Änderung festzulegen,
ab der man den neuen Messwert nimmt. (Wenn du mittelst, so was aber
ausschalten). Also wenn die Änderung zwischen zwei Messwerten z.B.
größer zwei ist, dann den Wert nehmen, andernfalls den alten
beibehalten. Wenn man nicht viel Rechenzeit hat, kann man das nehmen,
ist aber andernfalls auch nicht so toll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.