Forum: Mikrocontroller und Digitale Elektronik Datenaustausch zwischen PC und selbstgebauten Gamepad


von Helpme91 (Gast)


Lesenswert?

Hallo zusammen,

ich möchte eine kleine Idee von mir relisieren und bin gerade dabei mir 
das ganze durch den Kopf gehen zu lassen, wie ich das realisieren 
könnte.

Es geht um ein kleines Gamepad, mit dem man am PC spiele steuern kann.

Das Gamepad zu realisieren ist jetzt nicht das Problem, sondern die 
verarbeitung der Daten am PC.

Frage 1:

Wie müssen die Informationen die das Gamepad an den PC sendet aussehen?
Reicht es, wenn ich die ADC werte die der µC ausgewertet hat zum PC 
weiterleite?

Frage 2:

Was benötige ich alles am PC, damit ich die Daten vom Gamepad 
verarbeiten kann um dann damit ein Spiel steuern kann? Benötige ich 
dafür nur einen Treiber oder noch mehr?

Hat von euch jemand Erfahrung damit und kann mir da einen Überblick 
geben, wie ich das mache?


Vielen Dank und schöne Grüße!

von Jim M. (turboj)


Lesenswert?

Man nehme einen USB fähigen µC und implementiere das USB HID Protokoll.

Klingt aufwändiger als es ist, denn praktisch alle Hersteller liefern 
zum USB den HID als Beispielcode mit. Allerdings meistens als Maus oder 
Tastatur und nicht als Joystick, aber so 95% des Codes ist fertich.

In die Report Deskriptors musst Du Dich aber vermutlich einlesen.

Treiber & Co. sind dann auf dem PC nicht erforderlich bzw. schon 
vorhanden.

von Rolf M. (rmagnus)


Lesenswert?


von Helpme91 (Gast)


Lesenswert?

O.K,

ich habe bis jetzt nur einen ATMEL aus der AVR reihe programmiert.
Für mich gibt es eigentlich nur den AT90USB soweit ich das sehen konnte, 
doch dieser hat keien ADC eingände.

Sind die ATMEL die nicht aus der AVR Familie kommen gleich zu 
programmieren oder ist es schwieriger diese zu programmieren?

Mfg

von Thomas E. (thomase)


Lesenswert?

Nimm den Atmega 32U4.

von Helpme91 (Gast)


Lesenswert?

Kann man den Atmega32U4 auch mit dem avr dragon board programmieren?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wenns nur für den eigenen Spass ist und nicht zum verkaufen, kann man 
auf den kleinen 'normalen' AVR auch V-USB einsetzen, einen Software USB 
Stack für Peripherie:
https://www.obdev.at/products/vusb/index.html

Das klappt mit so gut wie allen AVR, die ein wenig mehr Flash haben. Die 
stabilsten Versionen laufen mit Quarz oder externem Quarzoszillator.
Da gibts auch jede Menge fertiger Projekte.

: Bearbeitet durch User
von Jannyboy (Gast)


Lesenswert?

http://sprut.de/electronic/pic/projekte/usbgame/usbgame.htm

Hier guck mal das hat der Onkel Sprut schon gemacht.

Sourcen der Firmware sind auch verfügbar.

von Harald W. (wilhelms)


Lesenswert?

Helpme91 schrieb:

> Es geht um ein kleines Gamepad, mit dem man am PC spiele steuern kann.
>
> Das Gamepad zu realisieren ist jetzt nicht das Problem, sondern die
> verarbeitung der Daten am PC.

Wenn Du den PC über den sog. Gameport steuern willst, ist das
überhaupt kein Problem. Dann brauchst Du nur ein Poti (bzw. 4),
um den PC zu steuern. Die AD-Wandlung macht der PC. Es gibt m.W.
auch "Gameportkarten" mit USB-Ausgang. Allerdings ist der Game-
port ziemlich aus der Mode geraten. Wenn Du direkt über USB
steuern willst, wird es deutlich aufwändiger und Du musst eine
der sonstigen, in diesem Thread beschriebenen, Methoden benutzen.

von Jim M. (turboj)


Lesenswert?

Harald W. schrieb:
> Wenn Du den PC über den sog. Gameport steuern willst, ist das
> überhaupt kein Problem.

Den gibt es unter Windoof nicht mehr. Es funktionieren nur noch USB-HID 
Joysticks.

Ja, man könnte älteres OS benutzen. Damit geht aber kein DirectX 12, was 
dem Zocker so auch nicht gefällt.

Gammelige Gameport->USB Adapter will man nicht benutzen, insbesondere 
wenn man viel einfacher USB direkt an den µC koppeln kann.

: Bearbeitet durch User
von Sascha_ (Gast)


Lesenswert?

Gameport war doch an der Soundkarte, hat doch auch kein PC mehr.

Ich würde USB machen, entweder im PIC/AVR eingebaut oder über UART/USB 
Umsetzer.

von Helpme91 (Gast)


Lesenswert?

Danke für eure Hilfe.

Ich möchte auf jeden Fall den Atmega32U4 verwenden, wenn folgende Punkte 
erfüllt sind:

1. Er kann mit dem AVR Dragon board programmiert werden. Was ich im Netz 
gesehen habe sollte das Board auch den Atmega32U4 programmieren können.
Stimmt das?

2. Er bietet mir genug ADC & I/O eingänge an. ADC's hat er auf jeden 
Fall genug, das habe ich schon geprüft. Im Danteblatt habe ich etwas von 
26 I/O Pins gelesen, stimmt das?


MfG

von Bernd K. (prof7bit)


Lesenswert?

Matthias S. schrieb:
> Wenns nur für den eigenen Spass ist und nicht zum verkaufen, kann man
> auf den kleinen 'normalen' AVR auch V-USB einsetzen

Das kann man auch wenn mans verkaufen will, nur sollte man sich dann 
beim Konsortium kostenpflichtig eine Vendor ID zuteilen lassen.

von Horst (Gast)


Lesenswert?

Helpme91 schrieb:
> 1. Er kann mit dem AVR Dragon board programmiert werden. Was ich im Netz
> gesehen habe sollte das Board auch den Atmega32U4 programmieren können.
> Stimmt das?

Ja. Der Dragon kann u.a. alle AVRs programmieren, die eine 
ISP-Schnittstelle haben. Der Mega32U4 gehört dazu. Ich hab damit mein 
selbstgebautes Lenkrad und Zubehör mit dem Rechner verbunden.

von Helpme91 (Gast)


Lesenswert?

Soweit ich das herauslesen konnte, hat er 26 I/O Pins zur verfügung.
Bin mir da nicht ganz sicher, ob ich das so richtig vertanden habe?

Bitte euch um Hilfe.


Vielen Dank
MfG

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bernd K. schrieb:
>> Wenns nur für den eigenen Spass ist und nicht zum verkaufen, kann man
>> auf den kleinen 'normalen' AVR auch V-USB einsetzen
>
> Das kann man auch wenn mans verkaufen will, nur sollte man sich dann
> beim Konsortium kostenpflichtig eine Vendor ID zuteilen lassen.

Naja, es geht nicht nur um die Vendor ID, sondern auch darum, das V-USB 
zwar normalerweise gut funktioniert, aber trotzdem ein Hack bleibt. Es 
klappt eben nicht immer und überall. Ausserdem ist die Pegelanpassung 
immer ein Spass.

von Noch Einer (Gast)


Lesenswert?

>26 I/O Pins

Mit den Kombinatonen aus Spzialfunktionen auf den Pins geht immer 
irgendwas schief. Am besten eine genaue Liste, welchen Pin du für was 
benutzen willst und 3 mal kontrollieren, ob das wirklich so geht.

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.