
Der Zweck dieses Artikels ist es, über meine Erfahrungen mit Fahrzeugmodifikationen und Experimenten mit dem CAN-Bus zu sprechen.
Wie alles begann
Zuerst habe ich beschlossen, meinem 2017 Chevrolet Cruze eine Frontkamera hinzuzufügen. Da das Auto bereits über eine werkseitige Rückfahrkamera verfügt, mussten auf hohem Niveau zwei Dinge herausgefunden werden:
- Die Möglichkeit, Videos von der Frontkamera zu übertragen, die ich hinzufügen werde.
- Eine Methode zum Anzeigen von Bildern von einer Rückfahrkamera zu jeder Zeit.
Der Videoteil war einfach. Aus früheren Erfahrungen wusste ich, dass Sie einen Videomischer auf einem Relais herstellen können.
Das Starten auf dem Bildschirm erwies sich als komplizierter, und nach einigen Nachforschungen kam ich zu dem Schluss, dass das Auto über eine Art Datenbus ein Signal von der Rückfahrkamera an den Bildschirm senden sollte.
CAN-Bus
Chevrolet hat zwei verschiedene Datenbusse. Das erste ist Standard-CAN, schnell (500 Kbit / s) und zuverlässig. Es wird für kritische Daten verwendet. Das zweite ist das, was GM LAN (GMLAN) nennt, einen älteren und langsameren Bus (33,3 Kbit / s), der für nicht sicherheitsrelevante Daten verwendet wird.
Ich brauchte eine Möglichkeit, auf den Datenverkehr auf CAN zu achten, dh einen Schnüffler. Das PCAN-Gerät ist für diesen Zweck unglaublich nützlich.
Peak kannPeak Can (PCAN) ist ein USB-Gerät, das Nachrichten abfangen und übertragen kann. Dank der Pcan View-Software können Sie ohne viel Training loslegen.
Da die Rückfahrkamera für die Sicherheit weniger wichtig ist als andere Komponenten, habe ich vorgeschlagen, dass sich die gesuchten Daten höchstwahrscheinlich auf dem GMLAN-Bus befinden.
Der einfachste Zugangspunkt ist der OBD2-Anschluss. Ich habe Peak Can an den GMLAN-Bus angeschlossen, die Software gestartet und sofort mit dem Abhören des Datenverkehrs begonnen.
Integration
Ziel war es, den Rückfahrkameraanruf rückzuentwickeln. Um dies zu tun, drehte ich bei eingeschaltetem Schnüffler das Auto um, so dass es auf dem Display eingeschaltet war, und versuchte dann mehrmals zu parken. Während dieses Prozesses bemerkte ich eine einzelne ID mit Nachrichten, die meine Aktionen nacheinander nachahmten.
Dann habe ich geparkt und über Pcan View versucht, dieselbe Nachricht zu senden, die ich beim Ein- und Ausschalten des Displays gesehen habe. Im Handumdrehen interagierte ich bereits mit dem Bus.
PCAN-NachrichtenübermittlungIch hatte jedoch nicht vor, ständig mit einem Laptop zu reisen. Ich brauchte einen Weg, um diese Funktionen zu automatisieren - und hier kam Arduino zum Einsatz. Die Möglichkeit, 12-V-Strom direkt in Kombination mit einer großen Anzahl von Ressourcen und Support im Internet zu empfangen, machte diese Wahl offensichtlich.
Zusätzlich zu Arduino benötigte ich zwei Komponenten, um das Projekt abzuschließen: das CAN-Modul und das Relaismodul. Im Wesentlichen ist Arduino das Gehirn, das Code ausführt und ausführt. Das CAN-Modul bietet die Möglichkeit, mit dem Datenbus zu interagieren, und das Relais versorgt die Frontkamera mit Strom und fungiert auch als Videomischer zwischen dieser und der Rückfahrkamera.
Mcp2515-Modul (oben), Arduino Uno (Mitte), Relaismodul (unten)Nach dem Hinzufügen und Konfigurieren der entsprechenden Bibliotheken stellte Arduino eine Verbindung mit dem Auto her.
Hören Sie den Verkehr durch ArduinoDa ich bereits wusste, dass ich das Display starten konnte, begann ich darüber nachzudenken, wie ich das machen sollte. Die ursprüngliche Idee war, eine spezielle Sofortanruftaste auf dem Panel zu installieren, aber ich begann zu überlegen: "Was kann ich sonst noch im Netzwerk als Auslöser verwenden?"
Während der Experimente stellte ich fest, dass Nachrichten mit der ID, die der Schaltfläche „Tempomat abbrechen“ entspricht, auch über den GMLAN-Bus übertragen werden. Dies war ideal, da die Geschwindigkeitsregelung bei Geschwindigkeiten über 65 km / h aktiviert ist, wenn ich die Frontkamera verwende, und bei Geschwindigkeiten unter 15 km / h wird die Rückfahrkamera eingeschaltet, um beim Einparken zu helfen, sodass sie niemals aktiviert werden Überlappung. Nachdem ich einen Code geschrieben hatte, konnte ich den Arduino erkennen lassen, wenn die Taste zum Abbrechen der Geschwindigkeitsregelung gedrückt wurde.
EinzelklickerkennungIch wollte jedoch nicht, dass die Kamera jedes Mal aktiviert wird, wenn ich den Tempomat abbreche. Daher habe ich beschlossen, dass der beste Ansatz darin besteht, sie (tatsächlich) in eine Multifunktionstaste umzuwandeln. Die Kamera wird nur aktiviert, wenn die Taste „zweimal gedrückt“ wird.
Nach einem langen Wochenende mit der Millis-Funktion und dem Debuggen des Codes habe ich die Doppelklickerkennung erfolgreich programmiert.
Doppelte TipperkennungUnd als ich es an meine Teams gebunden habe, um das Display zu steuern, habe ich ein ziemlich cooles kleines Dienstprogramm bekommen.
Doppeltippen + BefehleFunktionalität
Jetzt hatte ich die Möglichkeit, das Display ein- und auszuschalten, aber es gab ein Problem - was ist mit der Rückfahrkamera? Ich brauchte sie, um mit der Frontkamera zusammenzuarbeiten, als wären sie in der Fabrik so eingerichtet worden.
Im Flussdiagramm habe ich dargestellt, wie ich es darstelle.

Mir wurde schnell klar, dass man für ein solches System jederzeit den Zustand von drei Variablen kennen muss:
- Frontkameramodul: Hat der Fahrer es ein- oder ausgeschaltet?
- Kameraanzeige: Ist das Bild ein- oder ausgeschaltet?
- Rückwärts: Auto rückwärts oder nicht?
Ohne Programmiererfahrung war es sehr schwierig, und in meiner gesamten Freizeit dachte ich über verschiedene Ansätze nach.
Am Ende war ich erfolgreich!
Aktive ÜberwachungJetzt konnte ich die Betriebslogik implementieren, die das Relais steuert.
RelaissteuerungWährend des gesamten Prozesses habe ich mehr über das Arduino erfahren und festgestellt, dass die Nano-Version alles kann, was Sie brauchen, während sie eine kleinere Größe und einen niedrigeren Preis hat. Es ist ideal für den dauerhaften Einbau in ein Auto. Ich entwickelte ein Modell und druckte ein Gehäuse auf einem 3D-Drucker, um die Komponenten als kompakte Einheit für die Installation zu platzieren.
3D-FallAlle zusammen
Endlich kam der Tag, an dem ich die Ergebnisse sah. Obwohl Sie immer noch am Timing basteln müssen, war es schön zu sehen, dass das Modul richtig funktioniert.
Parkmodus ein- / ausschalten, Frontkamera ein- / ausschalten, automatisch zur Rückfahrkamera wechseln und automatisch zurückschaltenIm Allgemeinen hat mich diese Erfahrung viel gelehrt und meine Augen für die Möglichkeit der direkten Integration in den CAN-Bus geöffnet. Es ist ziemlich überraschend, was durch das Anschließen von zwei Drähten erreicht werden kann.
In der Zukunft
In Zukunft plane ich, ein ausführliches Tutorial darüber zu schreiben, wie Sie mithilfe kostenloser Software und Komponenten zusätzliche Funktionen zu vorhandenen Tasten in Ihrem Auto hinzufügen können.