Steuern Sie den Lenkwinkel des Autos von Linux aus

Ich versuche, Lenkradwinkelbefehle an mein Auto zu senden. Es ist ein ziemlich neues Auto (Renault Espace IV). Ich verwende einen OBD2-Port, um darauf zuzugreifen, und ich habe auch eine ShieldCan. Ich habe es geschafft, mit diesen Tools und Pyserial Daten aus dem Auto zu lesen, aber keinen Winkel einzugeben.

Gibt es eine Möglichkeit, dies zu tun? Wie könnte ich zum Beispiel "x° Winkel" eingeben und das Lenkrad den Winkel ändern lassen?

Wenn dies mit einem solchen Auto nicht möglich ist, auf welche Eigenschaften muss ich achten, um dies zu ermöglichen?

Jede Hilfe wird sehr geschätzt.

BEARBEITEN: Angesichts der Diskussion in den Kommentaren könnte diese Frage zu eng mit dem Autotyp verbunden sein, den ich besitze, aber ich denke, es wäre für alle interessanter zu wissen, welche Systeme / Eigenschaften ein Auto haben sollte, damit wir die Lenkung eingeben können Winkel.

Um es anders zu formulieren: Welche Art von Auto könnte Lenkwinkeleingaben erhalten? Welche Technologien werden benötigt? Sollte ich nach einem Spurhalteassistenten suchen oder gibt es andere Spezifikationen, die mir dies ermöglichen würden?

Hat Ihr Renault eine elektromotorische Servolenkung?
Es hat "Servolenkung", ist es das?
Servolenkung könnte hydraulisch oder elektrisch sein. Hat das Auto eine Spurhaltefunktion? Dies ist bei einigen neueren Autos mit erweitertem Tempomat vorhanden.
Nein, es gibt keine Stay-in-Lane-Funktion. @Ben wenn es hydraulisch ist, kann ich das wohl nicht machen, oder? Dann sagen wir, es ist elektrisch. Wie könnte ich das tun? Ich werde später herausfinden, ob es elektrisch oder hydraulisch ist
Ich bin mir nicht sicher, ob Sie das können. Servolenkung, ob elektrisch oder hydraulisch, ist im Grunde ein Drehmomentvervielfacher. Ich bin mir auch nicht sicher, wie die Funktion "Bei Driften in der Spur bleiben" funktioniert und ob das Rack Unterschiede aufweist oder ob alles im Computer liegt. Ich nehme an, das Gestell muss anders gemacht werden.
Ich habe einen kurzen Blick in Mitchell geworfen, es scheint, dass es mehrere Motoren an der Zahnstange und in der Lenksäule gibt, die diese Funktion bieten. (auf einem Infiniti)
Es ist also nicht alles im Computer? Hmm. @Pᴀᴜʟsᴛᴇʀ2 schien also vorzuschlagen, dass die elektromotorunterstützte Lenkung die Eingabe von Lenkwinkeln ermöglichen würde. Aber Sie sagen, es benutzt den Computer nicht.
Tatsächlich endet beim weiteren Lesen der mechanische Eingang für das Lenkrad in der Säule und alles wird elektronisch gesteuert. es ist ziemlich cool.
@Ben toll! Hast du irgendwelche Links, wo ich mehr darüber lesen könnte? Was ist "Mitchell"?
Mitchell ist eine abonnementbasierte Servicehandbuch-Site. Wenn Sie nach "Wie funktioniert die Infiniti-Servolenkung" suchen, erhalten Sie auf der Auto- und Fahrerseite einen kurzen Überblick über die Funktionsweise des Systems.
Das sollte "Wie funktioniert die elektrische Servolenkung von Inifiniti" in Bezug auf den Kommentar von @ Pᴀᴜʟsᴛᴇʀ2 lauten. Ich bin mir nicht sicher, ob dies mit herkömmlichen elektrischen Servolenkungssystemen möglich ist. Sie müssten in der Lage sein, mit dem Computer des Servolenkungsmoduls zu kommunizieren und zu versuchen, den Motor zu aktivieren, nehme ich an. Ich bin mir nicht sicher, ob dies möglich ist, ohne das Modul-ROM umzukehren.
Bitte erwägen Sie, einen Chatroom zu erstellen und diese Konversation dorthin zu verschieben. Die Kommentare werden ziemlich lang. Aber sehr interessantes Thema.

Antworten (2)

Der Lenkwinkelsensor ist typischerweise in Fahrzeugen mit elektronischer Stabilitätskontrolle wie EBD/ESP eingebaut. Der Sensor wird verwendet, um den Lenkmotor zu lesen, um die Eingaben zu ermitteln, die der Fahrer versucht, dem Auto zu geben. In dieser Konfiguration ist es ein Nur-Lese-System.

Modernere Autos, die entweder über automatisches Parken oder Spurkorrektur verfügen, können ihren Lenkwinkel elektronisch ändern, obwohl ich fürchte, ich weiß nicht, ob dies an derselben Adresse erfolgt, an der der Lenkwinkelsensor seine Messwerte ausgibt, würde ich annehmen nein . Ich denke, dass immer der wahre Lenkwinkel benötigt wird, sonst wüsste ein System nicht, ob es elektronisch links- oder rechtshändige Kraft auf das Rad ausüben soll.

Was Sie versuchen, ist schwierig und erfordert einige Mikroelektronik-Hacking. Möglicherweise müssen Sie auch einige der Chips lesen, um den proprietären Flash-Speicher abzurufen.

Wahrscheinlich haben Sie das größte Glück mit einem Drive-by-Wire-Auto, bei dem das Lenkrad keine mechanische Verbindung zu den Rädern hat. Stattdessen wird es nur einen Positionssensor haben. Sie benötigen ein Oszilloskop, um zu sehen, welche Art von Signal dieser Sensor an den Computer weiterleitet, um die Radposition zu bestimmen. Sobald Sie die richtige Welle mit der richtigen Spannung und Stromstärke erhalten haben, können Sie mit der Programmierung eines Programms beginnen, um dies zu simulieren. Sie werden wahrscheinlich einen Himbeer-Pi für die Signalsteuerung verwenden, aber Sie könnten möglicherweise einen seriellen Anschluss oder sogar einen USB-Anschluss verwenden, aber Sie müssen möglicherweise ein benutzerdefiniertes Board erstellen, um die Spannung und Stromstärke anzupassen.

Sie benötigen die Schaltung, um das Signal vom tatsächlichen Lenkrad zu unterbrechen, wenn es verwendet wird, und das Signal zum Lenkrad wiederherzustellen, wenn es nicht verwendet wird. Sie benötigen auch eine Schaltung, um die Lenkradposition mit den eingebauten Force-Feedback-Motoren zu steuern, die sie haben. Dadurch bleibt auch das Lenkrad ausgerichtet.

Eine weitere zu berücksichtigende Sache ist, dass wenn sich das Lenkrad bei der Rückkehr zum normalen Fahren in der falschen Position befindet, es möglicherweise nicht richtig lenkt, sodass dies möglicherweise behoben werden muss, indem die Position, in der das Lenkrad endet, gespeichert und wiederhergestellt wird Der Computer verwendet etwas, um die Position "hochzufahren", als ob er zur aktuellen Lenkradposition lenken würde.

Es wäre viel einfacher, einfach ein Riemenscheiben- oder Kettensystem an der Lenkradsäule eines Autos anzubringen und es auf diese Weise mit einem Servomotor zu steuern.

Mit der Kettenlösung können Sie sogar Ford-Modelle nachrüsten. Alles, was Sie brauchen, ist der Servomotor, eine Motorsteuerplatine und ein paar Schalter, um den maximalen Drehwinkel zu signalisieren. Der Computer würde das Rad hin und her bewegen, um zu bestimmen, wo die Mitte ist und wo beide Stopps sind. Sie würden eine Trimmeinstellung benötigen, da die Ausrichtung nicht perfekt ist und Sie einen PS3-Controller verwenden, um Ihr Auto zu fahren.

Die einzige Möglichkeit, dies mit obd2 zu tun, besteht darin, dass die Firma, die das Auto gebaut hat, speziellen Code zum Testen dieses Modells mit einigen der reservierten Eingaben hinzugefügt hat. Für mich klingt das äußerst unwahrscheinlich, aber da immer mehr Autos automatisiert werden, besteht die Möglichkeit, dass einige neue Modelle dies haben. Sie müssen sich in den Code hacken, den sie haben, und versuchen, herauszufinden, welche Signale verwendet werden, um das Auto dazu zu bringen, das zu tun, was Sie wollen. An diesem Punkt sollten Sie ihren proprietären Service-OBD2-Scanner erhalten und ihn dekompilieren, um den Code zu erhalten, den Sie zum Senden ihres OBD2-Computers benötigen.

Bleiben Sie bei einem Modell beim Kettenantrieb, es wird viel einfacher sein.