Problem bei Gameport debugger

Gast #217902
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.
#217903
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.
Gast #217904
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.