
Le but de cet article est de parler de mon expérience avec les modifications de voiture et les expériences avec le bus CAN.
Comment tout a commencé
Tout d'abord, j'ai décidé d'ajouter une caméra avant à ma Chevrolet Cruze 2017. Étant donné que la voiture possède déjà une caméra de recul d'usine, à un niveau élevé, il était nécessaire de découvrir deux choses:
- La façon de transférer la vidéo de la caméra frontale, que j'ajouterai.
- Une méthode d'affichage des images d'une caméra de recul à tout moment.
La partie vidéo était simple. Par expérience précédente, je savais que vous pouvez faire un mixeur vidéo sur un relais.
Le démarrage à l'écran s'est avéré plus compliqué, et après une enquête, je suis arrivé à la conclusion que la voiture devrait envoyer un signal de la caméra de recul à l'écran via une sorte de bus de données.
Bus CAN
Chevrolet a deux bus de données différents. Le premier est CAN standard, rapide (500 Kbps) et fiable, il est utilisé pour les données critiques. Le second est ce que GM appelle LAN (GMLAN), un bus plus ancien et plus lent (33,3 Kbps) utilisé pour les données non sécurisées.
J'avais besoin d'un moyen d'écouter le trafic sur CAN, c'est-à-dire un renifleur. Le périphérique PCAN est incroyablement utile à cet effet.
Peak peutPeak Can (PCAN) est un périphérique USB capable d'intercepter et de transmettre des messages. Grâce au logiciel Pcan View, vous pouvez commencer sans trop de formation.
Étant donné que la caméra de recul est moins importante pour la sécurité que d'autres composants, j'ai suggéré que les données que vous recherchez sont plus susceptibles d'être sur le bus GMLAN.
Le point d'accès le plus simple est le connecteur OBD2. J'ai connecté Peak Can au bus GMLAN, lancé le logiciel et l'écoute du trafic a immédiatement commencé.
Intégration
L'objectif était de désosser l'appel de la caméra de recul. Pour ce faire, avec le renifleur allumé, j'ai inversé la voiture pour qu'elle allume l'écran, puis j'ai essayé de me garer plusieurs fois. Tout au long de ce processus, j'ai remarqué un ID unique avec des messages qui imitaient séquentiellement mes actions.
Ensuite, je me suis garé et via Pcan View, j'ai essayé de transmettre le même message que j'ai vu lorsque l'écran s'est allumé et éteint. En un clin d'œil, j'étais déjà en interaction avec le bus.
Passage du message PCANCependant, je n'avais pas prévu de voyager constamment avec un ordinateur portable. Ce qu'il fallait, c'était un moyen d'automatiser ces fonctions - et ici l'Arduino était très pratique. La possibilité de recevoir directement une alimentation 12V en combinaison avec un grand nombre de ressources et de support sur Internet a rendu ce choix évident.
En plus d'Arduino, j'avais besoin de deux composants pour mener à bien le projet: le module CAN et le module relais. En substance, Arduino est le cerveau qui exécute et exécute le code. Le module CAN offre la possibilité d'interagir avec le bus de données, et le relais alimente la caméra avant, et agit également comme un mélangeur vidéo entre celui-ci et la caméra de recul.
Module Mcp2515 (haut), Arduino Uno (milieu), module relais (bas)Après avoir ajouté et configuré les bibliothèques appropriées, Arduino a établi une connexion avec la voiture.
Écoute du trafic via ArduinoComme je savais déjà que je pouvais démarrer l'affichage, j'ai commencé à réfléchir à COMMENT faire cela. L'idée initiale était d'installer un bouton spécial d'appel instantané sur le panneau, mais j'ai commencé à penser: "Quoi d'autre sur le réseau peut être utilisé comme déclencheur?"
Au cours des expériences, j'ai constaté que des messages avec l'ID correspondant au bouton «Annuler le régulateur de vitesse» sont également transmis via le bus GMLAN. C'était idéal parce que le régulateur de vitesse est activé à des vitesses supérieures à 65 km / h lorsque j'utilise la caméra frontale, et à des vitesses inférieures à 15 km / h, la caméra de recul s'allumera pour aider au stationnement, de sorte qu'ils ne chevauchement. Après avoir écrit du code, j'ai pu faire reconnaître l'Arduino lorsque le bouton d'annulation du régulateur de vitesse est enfoncé.
Reconnaissance d'un seul clicCependant, je ne voulais pas que l'appareil photo s'active chaque fois que j'annule le régulateur de vitesse, j'ai donc décidé que la meilleure approche était de le transformer (en fait) en bouton multifonction. L'appareil photo n'est activé que si le bouton est «pressé deux fois».
Après un long week-end à explorer la fonction millis et à déboguer le code, j'ai programmé avec succès la reconnaissance double-tap.
Reconnaissance par double appuiEt quand je l'ai lié à mes équipes pour contrôler l'affichage, j'ai eu un petit utilitaire plutôt cool.
Appuyez deux fois + commandesFonctionnalité
Maintenant, j'ai eu l'occasion d'allumer et d'éteindre l'écran, mais il y avait un problème - qu'en est-il de la caméra de recul? J'avais besoin d'eux pour travailler avec la caméra frontale, comme s'ils avaient été installés comme ça à l'usine.
Dans l'organigramme, j'ai décrit comment je le représente.

J'ai rapidement réalisé que pour un tel système, il fallait à tout moment connaître l'état de trois variables:
- Module de caméra avant: le pilote l'a-t-il allumé ou éteint?
- Affichage de l'appareil photo: l'image est-elle activée ou désactivée?
- Marche arrière: voiture en marche arrière ou non?
Sans expérience en programmation, c'était très difficile à faire, et tout mon temps libre, je pensais à différentes approches.
Au final, j'ai réussi!
Surveillance activeMaintenant, j'ai pu implémenter la logique opérationnelle qui contrôle le relais.
Contrôle relaisTout au long du processus, j'ai appris plus sur l'Arduino et j'ai remarqué que la version Nano est capable de faire tout ce dont vous avez besoin, alors qu'elle a une taille plus petite et un prix inférieur. Il est idéal pour une installation permanente dans une voiture. J'ai développé un modèle et imprimé un boîtier sur une imprimante 3D pour placer les composants comme une unité compacte pour l'installation.
Boîtier 3DTous ensemble
Enfin, le jour est venu où j'ai vu les résultats. Bien que vous ayez encore à bricoler avec le timing, c'était agréable de voir que le module fonctionne correctement.
Activer / désactiver le mode de stationnement, allumer / éteindre la caméra avant, basculer automatiquement vers la caméra de recul et revenir automatiquement en arrièreEn général, cette expérience m'a beaucoup appris et m'a ouvert les yeux sur la possibilité d'intégration directement avec le bus CAN. Il est assez surprenant de savoir ce qui peut être réalisé en se connectant sur deux fils.
Dans le futur
À l'avenir, je prévois d'écrire un didacticiel détaillé sur la façon d'ajouter des fonctionnalités supplémentaires aux boutons existants de votre voiture à l'aide de logiciels et de composants gratuits.