Treiber für PC-Spiel

Hallo zusammen,

ich hoffe ich bin hier richtig. Ich möchte mal kurz schildern um was es geht, damit ich mein Problem besser darstellen kann.

Es geht mir darum aus einem PC-Spiel (Renn-Simulation) verschiedene Werte zu bestimmen, als bsp: Man fährt im Spiel über eine Kante (Schlagloch, Bürgersteig etc.). Sprich ich möchte jegliche Arten von erschütterungen, auch neigungen des Fahrzeuges als Signal aus dem Spiel, über eine bestimmte Hardware als AnalogSignal ausgeben.

Zu meiner Frage. Wie ist dies Möglich? Welche Hardware (PCI-Karte) wird gebraucht? Wie aufwendig ist es einen solchen Treiber zu schreiben? Gibt es fertige Treiber, also auch die passende Software dafür?

Ich freue mich über Antworten.

MfG

Bei einem AnalogSignal, fällt mir spontan der COM (RS232) Port ein.
Bei den allermeisten Programmiersprachen gibts mehr als eine Möglichkeit über diesen Daten zu senden und/oder zu empfangen.
Dafür könnte man z.B. einen einfachen USB zu RS232 Adapter benutzen.
P.S.: Da du nicht erwähnt hast, um was für eine „bestimmte Hardware“ es sich handelt, hier einfach mal eine Beispieltabelle mit Steuerungssignalen (je nachdem, an was für eine Hardware die Signale gesendet werden sollen, evtl. unbrauchbar…):

Signaltypen:
0: Kante
1: Neigung X
2: Neigung Y

Signalbeispiele:
0|0: Kantenberührung auf der linken Seite.
0|1: Kantenberührung auf der rechten Seite.
1|0.5: Neigung um 0.5 Grad nach rechts.
1|-0.7: Neigung um 0.5 Grad nach links.
2|-0.1: Neigung um 0.1 Grad nach vorne.
2|0.2: Neigung um 0.2 Grad nach hinten.

P.P.S.: Wenn RS232 nicht in Frage kommt (aus welchem Grund auch immer), wird die ganze Sache um einiges komplexer.
RS232 verhält sich im Grunde wie eine Datei (lesen=empfangen,schreiben=senden).
USB ist da um einiges aufwändiger. Wie genau USB Geräte angesteuert werden, weiss ich absolut nicht, aber evtl. könnte libusb dabei hilfreich sein…

Hallo,

hab erstmal besten dank für deine Antwort.

Ich habe noch keine Hardware, da ich noch nicht wusste was ich brauche. Nun muss ich mir mal etwas passendes raussuchen, aber vorher wie gesagt, muss ich erstmal schauen wie umfangreich die Sache wird, denn man muss ja auch irgendwie eine Art Maske „bauen“, welche die Oberfläche im PC Spiel ausliest, diese dann auswertet und als Analoges Signal nach draußen gibt. Ich bin Elektroniker und kein Programmierer, jedenfalls nicht in diese Richtung, von daher muss ich mich da erst einmal reinfuchsen.

Gibt es fertige Programme, welche in diese Richtung funktionieren? Oder Programme welche mir helfen ein Programm zu programmieren? Da würde ich mir viel Arbeit ersparen.

Vielen Dank im Voraus.

Hallo,

das klingt, als wenn du deinem Spiel ein Force Feedback verpassen willst.

Ich fürchte, wenn das Spiel diese Daten nicht von selber bereitstellt, wird dich das ganze einfach überfordern.

Wenn das Spiel jedoch einen Force Feedback Controller unterstütz, dann würde ich mich an deiner Stelle eher in diese Richtung orientieren.

Grüße,

Hi,

Danke für deine Antwort.
Welche Daten/Kräfte werden denn durch das force Feedback angesprochen?
Es geht darum, dass ich alle möglichen Kräfte analog in einen servo controller speisen kann.

Hallo,

könntest bitte etwas genauer Spezifizieren, was du machen willst? Wenn ich mal raten müsste, dann willst du dir einen Rennsessel bauen (oder gleich ein komplettes Modell eines Fahrzeugs?^^).

Es wäre ganz gut mehr zu wissen, sonst ist das alles nur Gerate.

Kurz gesagt, ist das eine Möglichkeit des Spiels über den HID Treiber an Joystick, Pad, Lenkrad Kommandos zu schicken, damit die ein paar Motoren starten.

Hier
http://www.usb.org/developers/devclass_docs/pid1_01.pdf
findest du evtl. ein paar nette Information. Ich habe nur das Inhaltsverzeichnis überflogen.

Das war jetzt nur ein ganz ganz grober Umriss. Wenn du es genauer brauchst, dann schreib Bescheid.

Grüße,

Hallo,

Ja genau so etwas soll es werden. Das Gestell etc. Wird aus carbon gefertigt etc. Dies ist aber irrelevant für dieses Thema. Ich habe 2 linearMotoren, welche von einem servo controller angesteuert werden. Dieser verfügt über serierelle, also analoge, sowie digitale Eingänge.mein Problem ist nun, wie ich die Signale aus dem pc Spiel, sprich die Lage des Fahrzeuges, sowie Erschütterungen auswerte und aus dem pc hinausgekomme. Dann kommt es darauf an, ob es digital oder analog sein wird. Gibt es schon eine derartige Software Lösung? Welche Peripherie wäre zu nutzen? Sprich PCI Karte? Analog controller? Müssen Treiber geschrieben werden?

Das Problem besteht darin, dass C++ Neuland für mich ist. Bis auf ein paar grundschritte, beherrsche ich nichts in dieser Sprache, drum appelliere ich an dich/euch.

Ich hoffe ihr könnt mir weiterhelfen.

Nur so als Idee.

Du must ja eh ein Lenkrad verbauen. Da lohnt es sich ein Force Feddback Lenkrad zu kaufen. Dann brauchst du Computer/Treibertechnisch gar nichts zu machen. Die Neigungen in Sachen Beschleunigung und Kurven kannst du von den Widerständen im Lenkrad abgreifen, entsprechend Verstärken und auf deine Aktuatoren geben.

Das Feedback würd üblicherweise über Motoren gemacht, an denen eine Unwucht ist. Diese Motoren musst du eh ausbauen. Dann kannst du das Signal der Motoren dazu hernehmen um deine Schlagloch/an die Wandfahr Geschichte zu machen.

In Summe sparst du dir dadurch echt einiges. Glaub mir, Daten aus einem Spiel abzugreifen oder einen eigenen Treiber zu schreiben ist nichts, was man mal so eben nebenbei macht.

Grüße

2 Like

Na das ja bestens… Ich wusste nur nicht, dass das Force Feedback soviele Daten ausgibt, sprich Kurven, beschleunigen etc.

Vielen Dank, du hast mir sehr geholfen !

MfG

Eine Frage habe ich da noch… Force Feedback findet doch nur am Lenkrad statt oder auch am GasPedal? Denn wie werden beschleunigungswerte abgegriffen?

Hallo,

da werden gar nicht so viele Daten ausgegeben, wie du grad denkst. Beschleunigungen jeglicher Art wirst du da drüber nicht bekommen. Das wirst du schon selber ermitteln.
Bei Gas und Bremse bin ich mir nicht ganz sicher (nicht mehr auf dem Laufenden) aber da gibts auch FFB.
Du wirst aber warscheinlich nur deine Schlaglöcher über die Rückkopplung bekommen.

Grüße,

Hallo,

Genau das ist auch mein Problem, ich hatte nie mit FFB zu tun. Hättest du eine Idee wie ich die fehlenden Daten ermitteln kann? Mir fliegt da auch da grade die Idee durch den Kopf, von einer externen Anzeige des Tachos, sprich direkt hinter den Lenkrad. Aber in erster Linie geht es ja um die Signale des FFB. Muss ich für die restlichen Signale was programmieren? Dann wären wir wieder bei null