Forum: PC-Programmierung Treiber Lenkrad


von Andy (Gast)


Lesenswert?

Hallo zusammen,

ich arbeite an einem Projekt mit, bei dem an einem selbstgebauten 
Prüfstand (Lenkrad mit Servomoter, Bremspedal, Gaspedal) eine 
Rennsimulation/Rennspiel integriert werden soll. Man soll dann quasi auf 
dem Prüfstand über einen PC ein Rennspiel steueren können.
Die Kommunikation mit dem Lenkrad und Pedalen geschieht über einen CAN 
Bus. Über einen CAN-USB Adapter kann man dann CAN-Nachrichten am PC 
auslesen.
Kennt sich jemand mit dem Thema Treiberprogrammierung aus? Kann ich 
dafür vllt. schon vorhandene Treiber verwenden?
Oder gibt es  eine einfachere Lösung die Daten vom CAN zu wandeln und an 
das Spiel zu übergeben ohne einen Treiber zu schreiben?
Tut mir leid für die simplen Ausführungen, aber ich bin leider völliger 
Laie auf dem Gebiet.
Vielen Dank für Antworten!

von A. S. (Gast)


Lesenswert?

Andy schrieb:
> Oder gibt es  eine einfachere Lösung die Daten vom CAN zu wandeln und an
> das Spiel zu übergeben ohne einen Treiber zu schreiben?

Sind das nur binäre Sensoren (Links/Rechts/Mitte, Gas/Kein-Gas, 
Bremse/Keine-Bremse)?
Dann könnte man eine Tastatur dafür missbrauchen.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Ich nehme mal an, das ihr deswegen CAN verwendet, weil die Teile 
original KFZ-Teile sind? Ob das so funktioniert, ist fraglich. Im 
Fahrzeug gibt es inzwischen diverse verschiedene Busse, z.T. ein Dutzend 
verschiedener CANs. Da kann man nicht einfach ein paar Teilnehmer 
rausgreifen und zu einem neuen Bus zusammenstöpseln und meinen das dann 
etwas sinnvolles passiert.

Mit einem halbwegs vollständigen Teilbus kann das funktionieren. Aber 
ohne Gateway, Motor-ECU und/oder ABS-ECU halte ich das für schwierig.

Mit freundlichen Grüßen
Thorsten Ostermann

von sepp unterwurzacher (Gast)


Lesenswert?

ich würde probieren, das treiber problem zu umgehen indem ich z.b. einen 
joystick (oder gleich z.b. ein logitech g25/g27 lenkrad) 
zweckentfremde/schlachte und dessen elektronik weiterverwende.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Andy schrieb:
> Über einen CAN-USB Adapter kann man dann CAN-Nachrichten am PC auslesen.
> Kennt sich jemand mit dem Thema Treiberprogrammierung aus? Kann ich
> dafür vllt. schon vorhandene Treiber verwenden?

Um vorhandene Treiber verwenden zu können, muss Dein Gerät sich 
verhalten wie eines, für das es bereits Treiber gibt. Am einfachsten ist 
das mit einer der Standardgeräteklassen, bei Dir bietet sich da das 
HID-Protokoll an. Denn das ist für Geräte wie Mäuse, Tastaturen, 
Joysticks und eben auch Lenkräder gemacht.

Also brauchst Du statt eines USB-CAN-Adapters einen Adapter, der die 
relevanten Inhalte per CAN empfängt und in das USB-HID-Protokoll 
umsetzt.

So etwas gibt es mit hoher Wahrscheinlichkeit nicht als Fertiggerät, so 
etwas wirst Du selbst entwickeln müssen.

Aber das ist der richtige Weg, den Du gehen solltest.

Ja, es ist natürlich auch möglich, einen Windows-Treiber zu basteln, der 
sich mit dem Treiber Deines USB-CAN-Adapters unterhält und daraus 
wiederum für das Windows-Multimedia-/Spiele-Gedöns die relevanten Daten 
erzeugt, aber das ist ganz erheblich komplizierter und hat vor allem 
den riesigen Nachteil, daß es dann auch nur mit Windows funktioniert. 
Sollte Microsoft mal wieder die Devicetreiberarchitektur ändern (das gab 
es schon häufiger), musst Du Deinen Treiber erneut anpassen und testen.

Obendrein erlauben aktuelle Windows-Versionen nur die Installation 
signierter Treiber, so eine Treibersignatur kann man sich aber nicht 
selber bastelen.

Ohne Not sollte man also um Treiberentwicklungsversuche einen großen 
Bogen machen. Vor allem, wenn es so komplett unnötig ist, wie im 
vorliegenden Fall, da es mit HID bereits eine fertige Treiberarchitektur 
für Dein Gerät/Vorhaben gibt.

Also:

Du brauchst einen µC, der CAN versteht und mit Deinem Lenkrad 
kommunziert und die anfallenden Nachrichten auswertet bzw. anfordert. 
Ist das Lenkrad von sich aus aktiv oder muss es gezielt angesteuert und 
nach seinem aktuellen Befinden befragt werden? Das ist Aufgabe für den 
µC.

Der µC muss dann auch noch USB "sprechen" können und das HID-Protokoll 
implementieren, und zwar so, daß er die anfallenden Lenkradinformationen 
(Drehbewegungen, etwaige Tasten etc.) in die korrekten USB-Daten 
umsetzt.

von Walter (Gast)


Lesenswert?

Andy schrieb:
> Über einen CAN-USB Adapter kann man dann CAN-Nachrichten am PC
> auslesen.

Dann sollte der Anbieter des Adapters doch die entsprechenden Treiber 
und Bibliotheken zur Verfügung stellen? Oder habe ich etwas falsch 
verstanden?

Beispiel:
https://elmicro.com/de/canusb.html

"Entwicklerunterstützung durch kostenlose Interface-DLL, ActiveX-Control 
und Low-Level ASCII-Protokoll"

Linux:
http://pascal-walter.blogspot.de/2015/08/installing-lawicel-canusb-on-linux.html

von Walter (Gast)


Lesenswert?

Nachtrag: Für den Rest kann man vJoy o.ä. verwenden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Walter schrieb:
> Dann sollte der Anbieter des Adapters doch die entsprechenden Treiber
> und Bibliotheken zur Verfügung stellen?

Das tut er zwar, aber damit kann ein übliches Computerspiel 
("Rennsimulation") rein gar nichts anfangen.

von Paul B. (paul_baumann)


Lesenswert?

>Treiber Lenkrad

Da finde ich nichts dafür. Einen Sitz für den Treiber kann ich anbieten:
https://www.youtube.com/watch?v=blrHHRWKygw

(Vorsicht! Vernünftige Musik)
:)
MfG Paul

von Andy (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten.
Ich werde es auf jeden Fall mit dem µ-Controller versuchen, ist auf 
jeden Fall leichter für mich als einen Treiber zu programmieren ;)

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.