Ich bin relativer Anfänger. Habe das ein oder andere "gadget" für meine Rennautos schon mittels Raspi und Arduino machen können. Nun stehe ich aber vor einer sehr wichtigen Sache in der ich nicht weiter komme
Ich möchte mittels MCP2515 und einem Arduino den Status einzelner Kontrolllampen (Motorkontrollampe, Status DSC, ABS, Blinkleuchten, Fernlichtlampe) die es im serien Tacho gibt auslesen und auf einem Nextion Display anzeigen lassen oder alternativ über LEDS.
Hintergrund ist, dass wir in unseren Rennautos keine normalen Tachos mehr haben.
Zweite Aufgabe wäre befehle über Drucktaster am Lenkrad zu senden um z.b. Komfortblinken links/rechts, Lichthupe sowie Tempomat 60 km/h und 120km/h zu betätigen.
Ist solch ein Projekt überhaupt realisierbar?
Danke schonmal vorab für eure Bemühungen und eventuellen Lösungsansätze.
Einzelne Sachen kann man bestimmt umsetzen. Und man findet sicherlich auch ein paar Beispiele.
Alles mit der Manipulation des CAN Bus umzusetzen ist nicht möglich!
Es würde maximal bei einem Modell eines Herstellers so funktionieren, wie Du Dir das vorstellst. Die OBD2 Schnittstelle und der Aufbau der CAN Bus Nachrichten ist standardisiert. Nicht aber was auf der Leitung so hin und hergeschickt wird.
Welche Steuergeräte welche ID´s haben, wie die Datenpakete aussehen, Umrechnungen, Abrufbefehle, usw.
Viele Informationen an den Tacho gehen immer noch linear aus der ECU ein. Sonst hätte die gesamte Tachoeinheit maximal 4 Anschlusskabel.
Allein der Warnblinker oder die Motorkontrollampe.
Die Manipulation des Tempomats ist per CAN auch selten möglich. Es gab wenige Hersteller bei denen das zeitweise möglich war. Wurde aber schnell wieder absgestellt.
Zum einen aus Sicherheitsgründen, dass findige Hacker Autos haben autonom fahren lassen, zum anderen weil der Hersteller kein Geld mehr mit Nachrüstungen verdient.
Entweder läuft der separat oder die Nachrichten sind verschlüsselt / gesalted.
Daher würde ich Dir vorschlagen Dich erstmal mit dem CAN-Bus auseinander zu setzen. Was liefert das Auto überhaupt für Daten auf dem BUS? Was kann man aktiv anfragen?
Dann recherchiere was der Tacho an Signalen bekommt. Hat der auch "nur" eine CAN Schnittstelle oder gehen Fernlicht, Blinker, Kontrollampen, usw. analog ein.
Das wären die Infos zum Display, die man dann umsetzen könnte.
Blinker könnte man sicherlich auf eine vielzahl von Arten manipulieren. Das würde ich abhängig des KFZ Modells entscheiden.
Der Tempomat ist eher unwahrscheinlich.
racewerk:
Ist solch ein Projekt überhaupt realisierbar?
Da habe ich keinen blassen Dunst, Rennautos kenne ich nur aus dem Fernsehen.
racewerk:
Ich möchte mittels MCP2515 und einem Arduino den Status ... auslesen und auf einem Nextion Display anzeigen lassen oder alternativ über LEDS.
Im Thema UNO - Mega - Teensy mittels CAN-Bus verbinden habe ich zwei Arduinos und einen Teensy miteinander verbunden. Möglicherweise findest Du da was für Dich Erhellendes zum Mitlesen der Daten.
Also ich habe mich mit dem Fshrzeugspezifischen Can Bus schon auseinander gesetzt und es sind auch diverse Can ID's mit den dazugehörigen bytes und Befehlen vorhanden.
Der Tempomat ist erstmal nebensächlich. Aber wichtig wäre halt die Anzeige der Motorkontrollampe ABS/DSC Status.
Die Motorkontrollampe ist ja über OBD PID genormt bei allen Fahrzeugherstellern gleich. Nur das in einen Code zu bekommen ist für mich die schwierigste Aufgabe
Aber wichtig wäre halt die Anzeige der Motorkontrollampe ABS/DSC Status.
Die Motorkontrollampe ist ja über OBD PID genormt bei allen Fahrzeugherstellern gleich. Nur das in einen Code zu bekommen ist für mich die schwierigste Aufgabe
Welches Problem hast du ganz genau?
Wenn du sagst das das überall gleich wäre, dann nimm eine CAN Bus Lib, ein mitgeliefertes Beispiel und frage mit einem memcmp ab ob die hereingekommene Nachricht der gewünschten Nachricht entspricht.
Bereitet dir der Vergleich der 11 bits bzw. 29 bits wirklich so große Schwierigkeiten? Dann zeige deinen bisherigen Versuch und gib ein Beispiel was du erkennen möchtest.
Solange Du dich auf die OBD-Signale beschränken kannst:
Dafür gibt es sogar schon eine fertige Library mit dieser API.
Ich hatte die aber noch nie im Einsatz, nur gefunden mit dem Suchbegriff "arduino can obd library".
Damit bekommst Du wohl auf einfache Art die Motorkontrollleuchte ("check engine"), für Meldungen des ABS-Subsystem ist OBD eher nicht zuständig.
Dann würde ich zwei Arduinos mitlesen lassen, einen mit der allgemeinen Bibliothek von coryjfowler, den zweiten mit der OBD-Bibliothek. Dann kann man schon mal ein paar Infos sammeln.