Hallo Leute, bin neu hier im Forum und möchte gleich mal ein paar Tipps von euch. Ich habe vor: Einen Xbox 360 Controller for Windows (Im Grunde ein normales Xbox 360 Gamepad nur mit USB Funkempfänger für den PC) nicht mit einem PC zu betreiben sondern direkt mit einem Microcontroller. (Bei der Auswahl des µC bin ich mir noch nicht sicher ob einen mit USB Schnittstelle oder ohne zb. ATmega32) oder gar ein vorgeschaltener USB zu SPI konverter, oder ähnliches, zu verwenden. Die nächste Möglichkeit wäre ein Linux powered ARM, für Linux gibt es anscheinend auch einen Treiber. Aber das Problem ist, mit Linux kenne ich mich nicht so gut aus und die ARM´s sind auch Neuland für mich. Per Visual Studio, C#, einem freien Treiber namens XINPUT und dem DirectX SDK lässt sich das Gamepad ziehmlich leicht beherrschen. Aber dazu ist ein PC nötig. Nun will ich mich in die Materie des USB Protokolls einarbeiten und habe dazu 2 passende Bücher gefunden. 1. USB 2.0 Handbuch Für Entwickler Sprache: Deutsch ISBN13: 9783826616907 2. USB 2.0. USB Spezifikationen, Tools Zur Treiberentwicklung... Sprache: Deutsch ISBN13: 9783772379659 Das erste ist anscheinend eine Deutsche Übersetzung des oft empfohlenen "USB Complete The Developer's Guide, Fourth Edition by Jan Axelson" Mein Englisch ist zwar gut aber wenn ich ein Buch kaufe möchte ich es ganz verstehn, darum deutsch. :-) Sind diese Bücher hilfreich? Oder habt Ihr irgendwelche Buchtipps? Vorkenntnisse: - AVR µC Assembler, C - Windoof .NET C# Ich bin dankbar für jede Antwort mfg Patrick P.
Patrick P. schrieb: > Mein Englisch ist zwar gut aber wenn ich ein Buch kaufe möchte ich es > ganz verstehn, darum deutsch. :-) Wenn dein Englisch gut ist, nimm lieber das englische Original. Gerade bei Fachbüchern sind die Übersetzungen oft schwer zu verstehen, weil die Übersetzer eben Übersetzer sind und keine Spezialisten für das jeweilige Fachgebiet. Gruß, Edson
Patrick P. schrieb: > (Bei der Auswahl des > µC bin ich mir noch nicht sicher ob einen mit USB Schnittstelle oder > ohne zb. ATmega32) oder gar ein vorgeschaltener USB zu SPI konverter, > oder ähnliches, zu verwenden. > Die nächste Möglichkeit wäre ein Linux powered ARM, für Linux gibt es > anscheinend auch einen Treiber. Aber das Problem ist, mit Linux kenne > ich mich nicht so gut aus und die ARM´s sind auch Neuland für mich. Hier musst du aufpassen, dass dein µC auch als USB-Host geeignet ist. Wärend der Betrieb als USB-Device bei vielen µC kein Problem ist (geht bei den AVRs ja notfalls sogar in Software), sind die Anforderungen für einen Host ganz anders und der Host ist im Vergleich zum Device ziemlich kompliziert. Ein ARM mit Linux wäre wohl das einfachste. Dann hat man wie bei einem Linux Desktoprechner die nötigen Treiber und muss eigentlich nur noch den Controller anstecken und die Eingabe verarbeiten. (Passende Distribution vorrausgesetzt) Dabei lernt man allerdings auch herzlich wenig über USB. Es hält einen aber auch niemand davon ab eigene Treiber zu schreiben oder zumindest die Funktionsweise der vorhandenen Treiber nachzuvollziehen.
Ein paar 16bit und alle 32bit PICs haben ein internes USB-Modul, das auch als Host verwendet werden kann. Z.b. PIC24FJ32GB002 - http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en536120 , wenns ein DIP sein soll, wegen Machbarkeit z.B. oder ein kleinen PIC32, die es auch in DIP-Gehäuse gibt. Ein fertiges ARM-Board tuts aber auch, musst du wissen.
Versteh mich nicht falsch, aber liegt bei deinem Projekt nicht das Problem eher in dem Treiber für den XBox Controller als an dem USB Kram ? Ich hatte damals ein ähnliches Projekt verworfen, weil es schlichtweg keine offenen Treiber und keinerlei Doku zu dem Xbox Controller bzw. dem Empfänger gab. Hat sich das geändert? Wenn ja wäre ich für Informationen sehr dankbar. Das ganze mit Visual Studio zu benutzen ist ja denk ich kein Problem, da Microsoft das Hardware Interface inkl. Treiber bereitstellt, aber wie ich das damals verstanden habe ist das Microsoft Wireless Controller Zeugs nicht HID-Konform sondern ein eigenes Microsoft Produkt. Sollte das anders sein, würde ich das ganze an deiner Stelle mit dem Raspberry Pi oder ähnlichem machen. Edit: Es scheint wohl einen Linux Treiber zu geben, der einigermaßen funktioniert. Also wäre XPad wohl das mittel zur Wahl: https://help.ubuntu.com/community/Xbox360Controller Grüße, Christian
Erstmal Danke für die Antworten!! Michael Skropski schrieb: > Ein fertiges ARM-Board tuts aber auch, musst du wissen. Das STM32-P107 hier im Shop sieht interessant aus. Wollte mich sowieso einaml mit den ARM´s befassen. Christian D. schrieb: > Ich hatte damals ein ähnliches Projekt verworfen, weil es schlichtweg > keine offenen Treiber und keinerlei Doku zu dem Xbox Controller bzw. dem > Empfänger gab. Hat sich das geändert? Wenn ja wäre ich für Informationen > sehr dankbar. Also ich habe hier einen XBox 360 Gamepad Treiber namens "xboxdrv" für Linux gefunden. Vielleicht werde ich das ganze mal unter einem Ubuntu in VMWare testen. Dazu hatte ich auch einmal eine Seite gefunden die das Protokoll des Xbox Controllers auseinander nimmt und beschreibt. Aber das war kein 360 Gamepad. Und mit USBlyzer konnte ich die Übertragungen nicht nachvollziehen. Hab mir Trotzdem mal die Übertragungen per USBlyzer angeschaut, soweit ich das verstanden habe benutzt das Gamepad den Interrupt Transfer und sendet seinen Status immer in 20byte Packeten. Dann hab ich mal jede Taste gedrückt und die Sticks bewegt und geschaut welche Bytes sich ändern. Aber das hilft mir nicht viel weiter wenn ich das USB Protokoll nicht verstehe. Sonst könnte man sich vllt einen eigenen Treiber zusammen pfuschen. PS.: Darf man hier im Forum Links von Drittwebseiten posten? dann kann ich mal die Links hier reinhaun. Alles Neuland für mich ... vllt habe ich auch was falsch verstanden. Gruß Patrick
Sorry für Doppelpost... Christian D. schrieb: > Edit: Es scheint wohl einen Linux Treiber zu geben, der einigermaßen > funktioniert. Also wäre XPad wohl das mittel zur Wahl: > https://help.ubuntu.com/community/Xbox360Controller Ich glaube der Treiber den ich gefunden habe ist neuer Link: http://pingus.seul.org/~grumbel/xboxdrv/ Und hier hat ein verrückter Japaner das Protokoll des alten Xbox Gamepads auseinander genommen Link: http://euc.jp/periphs/xbox-controller.ja.html edit: Hat jemand Erfahrungen mit dem STM32-P107 von Olimex? Mich irritiert nur das nicht alle Port an der Platine abgreifbar sind. Gruß Patrick
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.