PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Steuerung per Joystick



Toastbrot
30.12.2004, 19:16
Schönen guten Abend!

Ich benötige Informationen über die Ausgangssignale eines Joysticks (Gameport). Ich habe hier einen alten ziemlich simplen Joystick. Damit habe ich bereits erste Versuche gemacht, die Spannungen zu messen. Aus dem Hardware Book habe ich mir die Gameport Belegung besorgt, dann Masse und 5V+ jeweils alle zusammen genommen (Lüsterklemme) und an 5V geschlossen. Anschließend habe ich zwischen Masse bzw. Plus und den anderen Pins gemessen.

Ich kann zwar geringe Spannungsschwankungen beim Bewegen des Sticks bemerken, aber das kanns nicht sein, glaub ich. Oder doch? Die Schwankungen lagen im 0,1-0,4V Bereich. Also so zwischen 4,9 und gut 5,3V etwa.

Von den Knöpfen habe ich garkeine Signale Messen können. Ich hatte eigentlich ein High-Signal (also 5V) bei Betätigung erwartet, aber da kam garnix.

Wer hat mit sowas schon Erfahrung gemacht und könnte mir weiter helfen? Würd mich freuen

Vielen Dank und allen einen guten Rutsch!

Hier noch 2 Bilders:
http://www.kitejumping.de/filez/joystick/alles.jpg
http://www.kitejumping.de/filez/joystick/joystick.jpg

Mobius
30.12.2004, 19:57
Hi!
Für mich schaut das Ganze wie ein "einfaches" Joystick aus. D.h. keine A/D-Wandler und so ein Zeug. Miss mal den Widerstand zwischen Pin 3, 6, 11 und 13 gegen Masse. Wieso die Buttons nicht "feuern" versteh ich erlich gesagt nicht. Hast du den Schlater einmal umgelegt? MMn ist der für den "Auto"-Fire verantwortlich, d.h. Wenn du den Schalter gedrückt lässt, "pulsiert" der Empfangege Wert.

Ansonsten findest du hier (http://www.epanorama.net/documents/joystick/index.html) ne gut Seite zu Joysticks :)

MfG
Mobius

P.S.: Kannst ja mal versuchen direkt beim Poti bzw. Schalter den Widerstand zu messen. Dann weißt du zumindest, ob die gehen...

BlueNature
30.12.2004, 20:02
Dein Joystick ist an den Knöpfen einfach nur gegen eine Spannungsseite geschaltet. D.h. du musst dich um PullUps bzw. um PullDowns kümmern um die verwenden zu können. Die normalen Joysticks haben keine Elektronik intern. Die X und Y-Achse ist jeweils ein 100k-Potentiometer das einfach nur den Widerstand zur Bewegung verändert. Das ergibt einen Strom, keine Spannung. Eine Game-Card ist eine Art AD-Wandler der aber nicht U sondern I misst (Ladungszeit eines Kondensators). Willst du einen Joystick lesen gibt es eine fertige DLL von Kainka. Ich glaube PORT.DLL. Die kann deien Gamecard lesen wenn du programmieren kannst.

Grüsse Wolfgang

Toastbrot
30.12.2004, 22:30
Stimmt, der Strom ändert sich bei der Aktion! Dann bringt es batürlich nicht viel die Spannung zu messen. Werde dann bei Zeiten nochmal neu messen und experimentieren.

Ja, der Schalter ist Auto-Fire, dummerweise habe ich daran nicht gespielt. werde ich dann auch mal machen.

Ich habe gerade aber noch eine andere Idee bekommen! Dazu schalte ich die 100k Potis mit je einem 50k in Reihe. In Mittelstellung hat der Poti auch 50k. Also liegt an beiden Widerständen die selbe Spannung an. Wenn ich jetzt steuere, ändert sich das Verhältnis. Durch Messen der Spannung am Poti könnte ich so sehr leicht ein Steuersignal erhalten. Die Tasten werden über eine Schalter (Taster)-Matrix an ein Messeingang gehangen. So benötigt man dafür nur ein Eingang. Was haltet ihr davon? Zugegeben, so kann ich nicht jeden X-beliebigen Joystick anschließen, muss aber ja auch nicht, dafür kann ich sehr einfach auslesen. Außerdem kann immer nur ein Taster zeitgleich abgefragt werden.

Ich habe gerade noch was in deinem Link gefunden, was das Problem mit den Tastern lösen könnte. http://www.epanorama.net/documents/joystick/pc_stick.gif

Toastbrot
01.01.2005, 20:05
Ich habe mir nun einen Schaltplan entwickelt, an den man, wenn das denn so stimmt, einen Beliebigen Joystick anschließen kann.

An JP2 wird die Versorgungsspannung von 5V angelegt. JP1 ist der Gameprot für den Joystick. JP3 gibt eine Spannung aus des Spannungsteilers ausgibt, woraus sich die gedrückte Taste bestimmen lässt. JP4 und JP5 sind X und Y des Hauptjoysticks. Auch hier wird eine Spannung ausgegeben. JP6 und 7 das gleiche Spiel, jedoch für den Sekundärjoystick.

Was meint ihr dazu? (ja gut, der Plan sieht sehr wirr aus, werd da vllt noch etwas dran basteln.)


?dit: Zwischen R3 und R4 fehlt ein Punkt auf der Kreuzung, denkt euch den bitte ;)

BlueNature
01.01.2005, 20:17
Hallo Toastbrot!

Ich sehe ein kleines Problem in deiner Schaltung. Es ist nicht linear. Es geht zwar den Wert auszulesen, aber sollte man nicht wie in der Gamecard üblich lieber mit einer Strommessung einen Analogwert erzeugen? Ich denke da an einen "Shunt" der mit OP-Technik hochverstärkt wird auf die Referenzspannung. Dann wäre es relativ linear. Also 50% in der Mitte.

Grüsse Wolfgang

Toastbrot
01.01.2005, 20:20
Meinst du so ist das Signal nicht linear? Was ist ein Shunt, und was meinst du mit OP-Technik? Bin noch relativ neu, sorry

BlueNature
01.01.2005, 20:59
Meinst du so ist das Signal nicht linear? Was ist ein Shunt, und was meinst du mit OP-Technik? Bin noch relativ neu, sorry

Hallo Toastbrot!

Ich meine das mit deiner Schaltung in etwa so wie im Anhang, habs kurz in Excel als Grafik gezeichnet mit den gegebenen Daten.

Das mit dem "Shunt" ist etwas das man für eine Strom-Messung einsetzt. Also ein relativ kleiner Widerstand der einen Spannungsabfall hervorruft. Da dieser recht klein ist muss man den natürlich wieder hochverstärken auf einen brauchbaren Pegel. Dazu den Operationsverstärker.

Grüsse Wolfgang

Toastbrot
01.01.2005, 21:18
Also soll ich keinen 50k Widerstand an hinter bzw vor die Potis schalten, sondern einen kleinen, und die Spannung die dann da abfällt mit einem Operationsverstärker hochziehen?! Wenn ich das richtig verstanden habe, nimmt man dazu ein Optokoppler mit ggf. dahinter noch einem Transistor der dann eine Spannung (z.B. 5V) regelt und als messbareren Wert abgibt. Richtig?

Vielen Dank für deine Hilfe!

BlueNature
01.01.2005, 21:51
Keinen Optokoppler, ds ist eigentlich eher für digitale Signale ratsam. Ich meine wirklich einen OP oder Operationsversärker. z.B. TL081 oder TL082 als Dual-OP (zwei Poti-Achsen). Den mit üblicher Grundbeschaltung verwenden als nichtinvertierender Verstärker udn über die Widerstände deinen Verstärkungsfaktor einstellen

http://www.elektronik-kompendium.de/sites/slt/0210151.htm

Dort findest du was du so brauchst ;)

Grüsse Wolfgang

Toastbrot
01.01.2005, 22:30
Vielen Dank, werde es mir mal zu Gemüte führen!