Forum: Mikrocontroller und Digitale Elektronik Ansteuerung über Joystick


von Steuerknüppel (Gast)


Lesenswert?

Hallo,

Ich würde gerne einen Joystick an den PC anschließen. Wenn ich den 
Joystick zb. vor/zurück/links/rechts drücke soll jeweils eine bestimmte 
Led leuchten.

Kennt vielleicht jemand ein Tutorial wo das beschrieben ist.

Wenn ich eine bestimmte Taste drücke kann ich über Hyperterminal 
ansteuern welche Led leuchten soll wie kann ich aber die Leds über den 
Joystick ansteuern.

MfG

von Steuerknüppel (Gast)


Lesenswert?

Hallo

hat niemand eine Idee wie man das über einen Joystick steuern kann.

MfG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, denn Deine Frage ist wirr.

1. Du willst einen Joystick an einen PC anschließen.

Das macht man, indem man das am Joystick befestigte Kabel in die dafür 
vorgesehene Buchse des PCs steckt, das ist seit ein paar Jahren USB.

2. Du willst irgendwelche Leuchtdioden ansteuern.

Ja, das ist schön. Wo sind diese Leuchtdioden und was hat der PC damit 
zu tun?

3. Du kannst Leuchtdioden mit Hyperterminal ansteuern.

Auch das ist schön, und was hat das mit einem Joystick zu tun?

von Steuerknüppel (Gast)


Lesenswert?

Ich will später probieren einen Roboter anhand eines Joysticks über 
Bluetooth anzusteuern.

Momentan habe ich ein Testboard mit Leuchtdioden. Über Uart mit 
Hyperterminal habe ich bestimmte Leds angesteuert. Zb. wenn ich a auf 
der Tastatur eingebe leuchtet die erste Led bei b die zweite usw.

Jetzt will ich probieren wenn ich einen Joystick nach vorne drücke soll 
die erste Led leuchten wenn ich den Joystick nach hinten drücke dann 
soll die zeite Led leuchten usw.

Es geht darum die Daten die ich über den Joystick schicke am Testboard 
zu empfangen.

Ich hoffe dass es halbwegs klar ist was ich meine.

MfG

von Karl H. (kbuchegg)


Lesenswert?

Steuerknüppel schrieb:

> Momentan habe ich ein Testboard mit Leuchtdioden. Über Uart mit
> Hyperterminal habe ich bestimmte Leds angesteuert. Zb. wenn ich a auf
> der Tastatur eingebe leuchtet die erste Led bei b die zweite usw.

Es ist immer wieder schön, wenn wesentliche Informationen erst nach 
einem halben Tag und auf Anfrage nachgereicht werden.

> Es geht darum die Daten die ich über den Joystick schicke am Testboard
> zu empfangen.

Der Joystick schickt überhaupt keine Daten.
Der PC befragt den Joystick über seine Position.

Da wirst du wohl oder übel auf dem PC ein Programm schreiben müssen, 
welches den Joystick abfragt (dafür gibt es dokumentierte 
Schnittstellen), die serielle Schnittstelle aufmacht und
  ein 'a' schickt, wenn der Joystick nach vorne gedrückt wird
  ein 'b' schickt, wenn der Joystick nach hinten gedrückt wird
  ....

von Frank L. (hermastersvoice)


Lesenswert?

Nimm die Programmiersprache deiner Wahl und schreib ein Programm das den 
Joystick ausliest und das Ergebnis in geeigneter Form seriell ausgibt.

bye

Frank

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ich hoffe dass es halbwegs klar ist was ich meine.


Ist es nicht; soll der Joystick an Deinem Testboard angeschlossen 
werden?
Oder willst Du eine PC-Software schreiben, die den Joystick auswertet 
und über die serielle Schnittstelle Daten an Dein Testboard sendet?

von Vlad T. (vlad_tepesch)


Lesenswert?

Karl heinz Buchegger schrieb:
> Da wirst du wohl oder übel auf dem PC ein Programm schreiben müssen,
> welches den Joystick abfragt (dafür gibt es dokumentierte
> Schnittstellen), die serielle Schnittstelle aufmacht und
>   ein 'a' schickt, wenn der Joystick nach vorne gedrückt wird
>   ein 'b' schickt, wenn der Joystick nach hinten gedrückt wird
>   ....

Dann frage ich mich allerdings, was der Joystick soll.
wenn man die analoge Eingabe des Joysticks ignoriert, dann kann mans 
genauso gut per Tastatur steuern

von Karl H. (kbuchegg)


Lesenswert?

Vlad Tepesch schrieb:
> Karl heinz Buchegger schrieb:
>> Da wirst du wohl oder übel auf dem PC ein Programm schreiben müssen,
>> welches den Joystick abfragt (dafür gibt es dokumentierte
>> Schnittstellen), die serielle Schnittstelle aufmacht und
>>   ein 'a' schickt, wenn der Joystick nach vorne gedrückt wird
>>   ein 'b' schickt, wenn der Joystick nach hinten gedrückt wird
>>   ....
>
> Dann frage ich mich allerdings, was der Joystick soll.

Sieht gut aus, kostet nicht viel :-)

von Steuerknüppel (Gast)


Lesenswert?

>soll der Joystick an Deinem Testboard angeschlossen
>werden?
>Oder willst Du eine PC-Software schreiben, die den Joystick auswertet
>und über die serielle Schnittstelle Daten an Dein Testboard sendet?


Geplant war den Joystick auszuwerten und über die serielle Schnittstelle 
Daten an das Testboard zu schicken.


Da ich aber ein USB/RS232 Kabel verwende, könnte ich den Joystick auch 
direkt anschließen.

von Hannes L. (hannes)


Lesenswert?

Und was hat der Blauzahn dabei für eine Aufgabe?

...

von Karl H. (kbuchegg)


Lesenswert?

Steuerknüppel schrieb:

> Da ich aber ein USB/RS232 Kabel verwende, könnte ich den Joystick auch
> direkt anschließen.

(Voraussetzung: Der Joystick wird über USB angeschlossen)

Was hast du für ein Testboard?
Hat das einen USB Host integriert?
Wenn nicht, kannst du dir das gleich wieder abschminken.

von weinbauer (Gast)


Lesenswert?

genau, wozu der Umweg über den PC, nimm nen USB-RS232 und n paar Klemmen
und vertüttle das miteinander, dann geht das schon :o)))

Wenn Du den Joysick mit Sekundenkleber an den Monitor pappst geht das
eventuell sogar noch viel besser.

von Tom M. (tomm) Benutzerseite


Lesenswert?

Ich habe noch ein paar alte digitale Joysticks rumliegen, die wären für 
erste Schritte wahrscheinlich prima geeignet. Ist ja fast dasselbe wie 
eine Taste abfragen/entprellen. Solche Modelle kriegst du auf jedem 
Flohmarkt. Einfach drauf achten, dass die Dinger munter clickern -> 
Mikroschalter -> digital. Für sowas braucht's dann auch keinen PC oder 
USB Host auf dem uC.

von Steuerknüppel (Gast)


Lesenswert?

>genau, wozu der Umweg über den PC, nimm nen USB-RS232

Ich dachte da ich jetzt schon Zeichen über den PC eingegeben habe und 
mit Hyperterminal weitergeschickt habe, könnte ich die Daten vom 
Joystick auch irgendwie per Hyperterminal weiterschicken.

von Steuerknüppel (Gast)


Lesenswert?

>Was hast du für ein Testboard?


Das Testboard ist nicht gekauft sondern zusammengelötet.

von P. S. (Gast)


Lesenswert?

Du koenntest damit anfangen, programmieren zu lernen. Vieleicht gibt es 
einen VHS-Kurs in deiner Naehe. Oder vieleicht doch besser ein anderes 
Hobby...

von Steuerknüppel (Gast)


Lesenswert?

>Du koenntest damit anfangen, programmieren zu lernen. Vieleicht gibt es
>einen VHS-Kurs in deiner Naehe. Oder vieleicht doch besser ein anderes
>Hobby...

Wieso so unhöflich?

Wo ist jetzt das Problem

von Steuerknüppel (Gast)


Lesenswert?

@Peter Stegemann

Falls du es noch nicht begriffen hast wiederhole ich es gerne für dich. 
Dieser Thread bezieht sich ja darauf wie man das programmieren kann.

von Christian T. (Gast)


Lesenswert?

Liefere uns doch mal ein paar genauere Informationen.
Bisher wird aus Deinen Posts leider nur deutlich, dass Du in der Materie 
recht neu bist.

Interessante Infos wären z.B.:
- Schaltplan von Deinem Testboard
- Was ist das für ein Joystick? (Analog/Digital)
- Wo soll der angeschlossen werden?
- Wie willst Du ihn abfragen?
- Wie soll das Projekt mal weitergehen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Geplant war den Joystick auszuwerten und über die serielle Schnittstelle
> Daten an das Testboard zu schicken.

Also anscheinend mit dem PC. Ist es wirklich so schwierig, so etwas 
auch zu sagen?

> Da ich aber ein USB/RS232 Kabel verwende, könnte ich den Joystick auch
> direkt anschließen.

Daraus schließe ich, daß es sich um einen USB-Joystick handelt.
Nun sieh Dir einfach mal den Stecker am Joystickkabel und den am 
USB-Ende des USB-RS232-Kabels an.

Fällt Dir was auf? Das sind die gleichen Steckverbinder. Nicht nur, daß 
Du die nicht zusammenstecken kannst, nein, selbst wenn Du Dir einen 
"Adapter" dafür besorgen würdest, funktioniert das so ganz und gar 
nicht.

Beide Geräte sind USB-Geräte; USB-Geräte aber können nicht miteinander 
kommunizieren. Das kann nur ein USB-Host (wie ein PC).

Um einen USB-Joystick mit Deinem Testboard zu verbinden, benötigst Du 
einen USB-Host wie z.B. einen Vinculum von FTDI, oder eben einen PC.

von Steuerknüppel (Gast)


Lesenswert?

>Bisher wird aus Deinen Posts leider nur deutlich, dass Du in der Materie
>recht neu bist.

Woran ist das an den Posts ersichtlich. Vielleicht kann ich was bessern.


>- Schaltplan von Deinem Testboard

Habe ich nicht.

>- Was ist das für ein Joystick? (Analog/Digital)

Habe mich noch nicht festgelegt. Muss Joystick noch kaufen.

>- Wo soll der angeschlossen werden?

An den PC

>- Wie willst Du ihn abfragen?

Das ist ja mein eigentliches Problem. Wie kann man die Daten vom 
Joystick abfragen und über die RS232-Schnittstelle an den uC schicken.

>- Wie soll das Projekt mal weitergehen?

Mein erstes Ziel ist Daten vom Joystick zu empfangen und je nach 
Steuerung soll eine Led blinken.
Später will ich einen Roboter damit ansteuern.



>Fällt Dir was auf? Das sind die gleichen Steckverbinder.

Deshalb wollte ich den Joystick an den PC anschließen und vom PC die 
Daten über RS232 an den uC schicken.
Es wurde aber öfters gesagt ich soll den Joystick gleich an das 
Testboard anschließen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Es wurde aber öfters gesagt ich soll den Joystick gleich an das
> Testboard anschließen.

Ja, das geht auch, wenn Du keinen USB-Joystick verwendest, oder den 
USB-Joystick aufmachst und die darin befindliche Elektronik entfernst.

Dann besteht der Joystick entweder aus zwei veränderlichen Widerständen 
(analoger Joystick) oder aus vier Tastern (digitaler Joystick); beides 
kannst Du leicht an Dein Testboard anschließen und mit Deinem µC 
auswerten, ohne dafür einen PC zu benötigen.

Wenn Du unbedingt darauf bestehst, es mit dem PC zu machen, musst Du ein 
Programm auf dem PC schreiben, das den Joystick mit der dafür 
vorgesehenen Win32-API-Funktion auswertet, aus den ermittelten Werten 
die Informationen ableitet, die an Dein Testboard zu senden sind und 
diese dann schlussendlich über die serielle Schnittstelle abschickt.

von /* Kommentator */ (Gast)


Lesenswert?

Für die Kommunikation mit HIDs (human interface devices, z.B. Joysticks 
;-) ) gibt es Software-Bibliotheken. Falls Du MS Windows benutzt und nur 
den Joystick abfragen willst, genügen Windows APIs, wie sie bei MS 
dokumentiert sind: 
http://msdn.microsoft.com/en-us/library/ms709368%28VS.85%29.aspx

von Vlad T. (vlad_tepesch)


Lesenswert?

du könntest auch mal bei ebay nach super nintendo controllern googlen.
die haben ein recht einfaches "protokoll".
Wenn ich mich recht errinnere ist das nur ein PISO-shiftregister, was da 
ausgelesen wird.
dann kannst du den Controller direkt an das testboard oder den Robotter 
hängen.

von Christian T. (Gast)


Lesenswert?

Wesentlich einfacher: Auf eBay nach alten Joysticks für C-64, Amiga und 
Co. suchen. Damals gab es nur digitale Joysticks die über eine 9pol. 
Sub-D Buchse angeschlossen wurden.

Da hast Du es dann wirklich einfach: Es gibt pro Richtung einen Schalter 
in dem Teil und einen extra für den Feuerknopf. An einem Pin geht dann 
Masse (oder Vcc) in den Joystick rein, an fünf weiteren Pins kannst dann 
prüfen was gerade gedrückt wurde.

Das Signal vom Joystick musst Du noch entprellen (siehe Wiki hier) und 
kannst dann damit prima Deine LEDs ansteuern.

Vorteil: Du musst nicht erst am PC den Joystick auswerten, Du kannst das 
direkt auf dem Testboard tun.
(Ich gehe davon aus, dass das Testboard mit irgend einer Art von µC 
bestückt ist oder?)


Grüße,

Christian

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.