Hallo! Ich habe ein Problem, näheres erläutere ich gleich. Zuerst zum Vorhaben. Geplant ist eine 6+R Gang Handschaltung für eine Rennsimulation am PC. Wäre ja relativ einfach wenn man einfach ein altes Gamepad zerpflücken würde und die 6 Tasten daraus verwendet um die SChaltung zu realisieren. Leider Gottes ist das ein Projekt für den Tag der offenen Türe unserer Schule in Elektronik, und wir müssen das ganze über einen uC machen. Type dessen wäre ein Atmel AT89C51RD2 mit einer Seriellen Schnittstelle. An diesen Microcontroller ist die selbstgebaute Hardware der Gangschaltung angeschloßen. Der uC liest den Zustand der Schaltung aus und schickt den eingelegten Gang anschließend über die Serielle Schnittstelle und einen Serial2USB-Konverter an den PC(zb R für Rückwärts, N für Neutral, 1 für 1....) Nun war unsre ursprüngliche Idee die Daten der Seriellen Schnittstelle per C#-Tool auszulesen und mit der SendKey-Methoder der .Net Bibliothek als "Tastendruck" zu senden. Leider leider ist das Spiel (GTR Evolution,rFactor) ein DirectX Game und akzeptiert keinerlei Software-bedingte Eingaben. Es liest nur von Hardware. Damit fällt die C#-Lösung ins Wasser. Nun zu meiner Problemstellung: Auf dem PC habe ich nun einen emulierten COM-Port über den die Daten zum PC gelangen. Wie kann ich (oder kann man überhaupt) einen Treiber oder ein kleines Programm auf diesen COM-Port ansetzen das die Daten ganz einfach als Tastendruck eines Gamepads oder einer Tastatur interpretiert und somit als "richtige" Hardware erkannt wird und in jedem Spiel als Eingabegerät verwendet werden kann? Oder kennt jemand noch einen anderen Weg die Daten ins Spiel zu bringen? Eine kleiner erschwerniss ist noch das wir das Grund-Spiel NICHT verändern/umprogrammieren dürfen. Bitte um schnelle Hilfe! Lg
Der virtuelle Com Port ist meiner meinung nach vom System als Hardwear erkannt, Com schnittstellen könne ja auch direkt auf dem Mainboard sein. Der USB to Serial Converter meldet sich am Pc als HDI an, und durch den treiber wir dan der Com-Port emuliert, du kannst ihn ja auch z.B. im Gerätemanager unter Windows sehen. Oder habe ich die frage falsch verstanden?
Das Problem hatte ich hier auch schon mal... Meine Lösung war allerdings keine Software, sondern Hardware. Ein USB-fähiger µC "übersetzt" den UART-Datenstrom ins USB HID Protokoll. HID wird u.a. von USB Mäusen, Tastaturen, Joysticks und Lenkrädern benutzt. Als µC habe ich damals den C8051F340 von Silabs.com benutzt, dafür gab es auch ein HID Demoprogramm. Ausgewählt wurde dieser allerdings vor allem deshalb, weil hier auch viele andere Silabs 8051 im Einsatz sind und daher alle Tools schon vorhanden waren. Bei Euch würde ich eher zu einem Atmel 8051ger mit USB raten. Einfach ist diese Lösung natürlich nicht - für mich immer noch einfacher als ein Windows-Filtertreiber, den man benötigt um die Tastendrücke ins Windows "hineinzuwerfen".
>Leider Gottes ist das ein Projekt für den Tag der offenen Türe unserer >Schule in Elektronik, und wir müssen das ganze über einen uC machen. >Type dessen wäre ein Atmel AT89C51RD2 mit einer Seriellen Schnittstelle. >An diesen Microcontroller ist die selbstgebaute Hardware der >Gangschaltung angeschloßen. Der uC liest den Zustand der Schaltung aus >und schickt den eingelegten Gang anschließend über die Serielle >Schnittstelle und einen Serial2USB-Konverter an den PC(zb R für >Rückwärts, N für Neutral, 1 für 1....) Von hinten durch die Brust ins Auge. So einen Deppenkram verlangt doch keiner ernsthaft von euch? Das habt ihr euch doch selber ausgedacht. Nimm einen PIC18F2550 und mach ein HID Device draus. Beispielcode gibt es bei Microchip.
Noch mal eine ganz Blöde Frage, kannst du in dem Spiel kein Gamepad an einem Com-Port auswählen?
L. G. schrieb: > Der virtuelle Com Port ist meiner meinung nach vom System als Hardwear > erkannt, Com schnittstellen könne ja auch direkt auf dem Mainboard sein. > > Der USB to Serial Converter meldet sich am Pc als HDI an, und durch den > treiber wir dan der Com-Port emuliert, du kannst ihn ja auch z.B. im > Gerätemanager unter Windows sehen. > > Oder habe ich die frage falsch verstanden? Ja, das hast du richtig verstanden. Das Problem besteht nun im Umsetzen der Daten in eine "korrekte" Hardwareeingabe. Jim Meba schrieb: > Das Problem hatte ich hier auch schon mal... > > Meine Lösung war allerdings keine Software, sondern Hardware. Ein > USB-fähiger µC "übersetzt" den UART-Datenstrom ins USB HID Protokoll. > HID wird u.a. von USB Mäusen, Tastaturen, Joysticks und Lenkrädern > benutzt. > > Als µC habe ich damals den C8051F340 von Silabs.com benutzt, dafür gab > es auch ein HID Demoprogramm. Ausgewählt wurde dieser allerdings vor > allem deshalb, weil hier auch viele andere Silabs 8051 im Einsatz sind > und daher alle Tools schon vorhanden waren. Bei Euch würde ich eher zu > einem Atmel 8051ger mit USB raten. Ich habe leider zu wenig ahnung von der Elektronischen Umsetzung, unser uC ist ein Bausatz den wir vor 3 Jahren im Unterricht gefertigt haben, Hauptrichtung unseres Zweiges ist Informationstechnologie... Wäre es aber nicht möglicht eine Schaltung aufzubauen die nur auf das notwendigste beschränkt ist? Also ein Klemmbrett für die 7 "Taster" und am anderen Ende des uC ein Usb-Port? Was würde so eine Schaltung in Einzelkomponenten ungefähr kosten? Löten kann ich selbst und habe auch in der Schule die möglichkeit dazu. Wie ungefähr kann ich mir den uC-Code vorstellen um die HID-funktionalität nutzen zu können? holger schrieb: >>Leider Gottes ist das ein Projekt für den Tag der offenen Türe unserer >>Schule in Elektronik, und wir müssen das ganze über einen uC machen. >>Type dessen wäre ein Atmel AT89C51RD2 mit einer Seriellen Schnittstelle. >>An diesen Microcontroller ist die selbstgebaute Hardware der >>Gangschaltung angeschloßen. Der uC liest den Zustand der Schaltung aus >>und schickt den eingelegten Gang anschließend über die Serielle >>Schnittstelle und einen Serial2USB-Konverter an den PC(zb R für >>Rückwärts, N für Neutral, 1 für 1....) > > Von hinten durch die Brust ins Auge. So einen Deppenkram verlangt > doch keiner ernsthaft von euch? Das habt ihr euch doch selber > ausgedacht. > > Nimm einen PIC18F2550 und mach ein HID Device draus. Beispielcode > gibt es bei Microchip. Doch, leider. Wir haben unserem Projektzuständigem Lehrer schon eine fast fertige Lösung präsentiert, aufbauend auf ein altes Gamepad. die Tasten wurden einfach als Betätiger für die Gänge benutzt. Dieser sah jedoch nur Faulheit unsererseits (obwohl die Hardware EXTREM viel arbeit war) und meinte wir müssten es über unseren uC realisieren.
>Doch, leider. Wir haben unserem Projektzuständigem Lehrer schon eine >fast fertige Lösung präsentiert, aufbauend auf ein altes Gamepad. die >Tasten wurden einfach als Betätiger für die Gänge benutzt. Dieser sah >jedoch nur Faulheit unsererseits (obwohl die Hardware EXTREM viel arbeit >war) und meinte wir müssten es über unseren uC realisieren. Dann bestell ihm mal einen schönen Gruß von mir. Der Typ ist völlig fehlbesetzt.
> Dann bestell ihm mal einen schönen Gruß von mir. > Der Typ ist völlig fehlbesetzt. Wie leider zu viele Leute in unsrer Schule.
L. G. schrieb: > Noch mal eine ganz Blöde Frage, kannst du in dem Spiel kein Gamepad an > einem Com-Port auswählen? Auf diese möglichkeit habe ich noch garnicht gedacht, jedoch ist auch dies nicht möglich. er controller steht in keinem der spiele zur verfügung. lg
such mal im zusammenhang nach mame und v-usb, die bauen sich reihenweise eigene controller, vielleicht findest du dort ideen zu deinem problem.
Markus H. schrieb: > L. G. schrieb: >> Noch mal eine ganz Blöde Frage, kannst du in dem Spiel kein Gamepad an >> einem Com-Port auswählen? > > Auf diese möglichkeit habe ich noch garnicht gedacht, jedoch ist auch > dies nicht möglich. er controller steht in keinem der spiele zur > verfügung. Was einfacher ist: Implementiere eine PS/2 Tastatur (dafür gibts genügend Material im Netz und besorge Dir einen PS/2-USB Adapter, wenn der Rechner kein PS/2 mehr hat. Wenn er eine PS/2 Tastatur hat, kannst Du Dich da mit draufhängen - das machen viele Barcodescanner genauso. In diesem Fall darf man aber nicht gleichzeitig auf Tastatur und Keypad drücken - das könnte Müll auf dem PS/2 ergeben. fchk
L. G. schrieb: > Noch mal eine ganz Blöde Frage, kannst du in dem Spiel kein Gamepad an > einem Com-Port auswählen? So etwas gab es noch nie. Gamepads bzw. Joysticks wurden in früheren Zeiten an spezielle Gameports angeschlossen; heutzutage über USB. Anschluss an serielle Schnittstellen war nie vorgesehen.
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.