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!
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.
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
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.
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.
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.
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
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.
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.
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
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.
>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.