Gestion d'une Caméra de Recul Automobile

Modifications proposées

D’origine la gestion de la caméra de recul est vraiment triviale, elle se met en marche quand le levier de vitesse est en position Marche Arrière.

Trois montages sont proposés dans cet article pour mieux exploiter cet accessoire et améliorer son ergonomie :

  • Le 1er montage permet simplement d'activer manuellement la caméra, en plus du fonctionnement normal de celle-ci.

  • Le 2ème montage ajoute une temporisation à l'extinction de la caméra, ce qui permet d'obtenir une image permanente et stable lors des manœuvres.

  • Le 3ème montage reprend pour l'essentiel la logique du 2ème montage, mais avec quelques sophistications supplémentaires permises par l'utilisation d'une carte Arduino Nano.

Pour accéder aux signaux il faut tout d'abord déposer le Media/Nav.

Dépose du Media/Nav :

  • Démonter la parure du TDB en la déclipsant avec des outils plastiques adaptés pour ne pas l’abimer.

  • Retirer les 2 vis de fixation en partie haute du Media/Nav.

  • Tirer pour le déclipser.

  • Débrancher le connecteur inférieur (des Warning) qui a très peu de mou.

  • Débrancher la rangée des connecteurs du haut, en pressant bien les languettes de déverrouillage avant de tirer !

1) Commande manuelle de la caméra de recul

Il peut y avoir quelque intérêt à afficher l'image de la caméra de recul quand la marche AR n’est pas engagée, en particulier :

  • si on tracte une remorque,

  • pour éviter les coupures d’image lors de manœuvres fastidieuses,

  • … ou pour toutes autres raisons.

La modification donnée ci-après permet d’afficher la caméra de recul quand on est sur la position « alimentation accessoires », ce qui n’est pas possible d’origine en passant la marche AR.

Le fil qui indique au Media/Nav que la marche AR est engagée est le fil rouge du petit connecteur blanc à 3 fils.

Remarque : Ce connecteur comporte également le fil du frein à main, mais la logique de ces 2 signaux n’est pas la même :

- L’information « frein à main serré » est une mise à la masse.

- L’information « Marche AR » est un signal + 12V.

Donc pour que la caméra de recul s’affiche il suffit de mettre une tension +12V sur le fil rouge à l’aide d’un interrupteur :

Par chance, il y a justement à proximité une alimentation « +12V accessoires » sur le fil bleu clair du gros connecteur bleu (Main) :

![|640x640](https://1.bp.blogspot.com/-1t79HYN_mO0/X89vE7oBVtI/AAAAAAAADJ0/7JA4VZ43AlgsnP9MOKwxNQqm5NjUZH0bgCPcBGAYYCw/w640-h640/12V%2BAccessoires.jpg "Repiquage du "+12V Accessoires"")

Schéma de câblage

Deux montages sont possibles suivant les composants dont on dispose.

  • Si on dispose d’un inverseur à 2 positions il suffit de câbler de schéma (1) pour commuter soit sur le signal « marche AR » (fonctionnement normal), soit sur le « 12V Accessoires » pour forcer l’affichage de la caméra.

  • Si, comme moi, on ne dispose que d’un interrupteur simple (mais quand même à 2 positions) il faut câbler le schéma (2) avec obligatoirement une diode pour qu’il n’y ait pas un retour du « +12V Accessoires » dans le signal « Marche AR ».

Plus soucieux de fonctionnel que d’esthétique j’ai placé ce petit poussoir à portée de main,

... mais on peut planquer cet interrupteur dans un endroit plus discret.

2) Commande Manuelle et Temporisation de la caméra de recul

Il s'agit d'une évolution de la modification précédente, pas indispensable, mais qui améliore le confort d'utilisation.

Le but de cette modification est de laisser la caméra allumée pendant tout le temps d’une manœuvre, pour ne plus avoir ces coupures d’image agaçantes lors de manœuvres compliquées ou fastidieuses.

Cela permet par exemple de garder en permanence le visuel des repères de la caméra avec le trottoir ou le marquage d’une place de parking.

Comme pour un plafonnier qui attend que vous soyez sorti de la voiture pour s’éteindre, il suffit ici aussi de temporiser l'extinction de la caméra.

J’ai donc réalisé un petit montage à transistors qui prolonge d’une dizaine de secondes le fonctionnement de la caméra lorsque l’on quitte la marche AR.

Ce montage intègre bien sûr le forçage manuel de la caméra par interrupteur.

La temporisation à l’extinction n’intervient pas en mode manuel.

Nomenclature :

D1 : 1N400x (ou équivalent)

C1 : 47 μF, 25V

R1 : potentiomètre 1MΩ

R2 : 47 kΩ

T1 : BC 337 (ou équivalent)

T2 : 2N2222 boitier TO18 (ou équivalent)

Principe de fonctionnement :

J’ai réalisé cette modif sans préalablement quantifier l’interface d’entrée de commande de la caméra.

J’ai donc conçu ce petit schéma « en aveugle » en faisant l’hypothèse que la charge reliée au 0V était de l’ordre de 1kΩ, et que le seuil de basculement était à mi-tension d’alimentation.

Toutefois, pour ne pas avoir de mauvaise surprise lors de l’installation, j’ai prévu un potentiomètre de réglage pour pouvoir obtenir une dizaine de secondes de temporisation.

Le fonctionnement est le suivant :

Lorsque la marche AR est engagée le signal « MAR » est à 12V et rend passant le montage Darlington T1-T2 à travers D1, et la sortie « Camé » est alimentée en 12V ce qui allume la caméra. Simultanément le condensateur C1 se charge à 12V.

Quand on quitte la marche AR,le signal MAR passe à 0V, mais C1 continue à alimenter le montage Darlington tout en se déchargeant à travers les résistances R1 et R2.

Tant que la tension sur l’émetteur de T2 est supérieure au seuil de basculement de l’interface d’entrée du Media/Nav la caméra reste allumée.

Le potentiomètre R1 monté en résistance variable permet d’ajuster ce temps.

La diode D1 empêche toute décharge de C1 en dehors du module.

Le montage de T1 et T2 en « Darlington » permet de minimiser le courant de base (gains en courant de T1 et T2 multipliés), pour ne pas trop dériver de courant lors de la décharge de C1 dans R1 et R2.

L’interrupteur de commande manuelle (connexions « Int.1 » et « Int.2 ») relie directement le « 12V Acc » à la sortie « Camé. », et permet donc de faire fonctionner la caméra « à la demande » quand le contact est mis.

La valeur de la temporisation est un compromis : Elle doit être suffisante pour que la caméra ne s’éteigne pas pendant les manœuvres, mais pas trop longue pour ne pas être gênante lorsque la manœuvre est terminée, et que l’on repart.

Le présent schéma permet de régler cette temporisation autour d’une valeur moyenne d’une dizaine de secondes.

(J’ai oublié de photographier le module, et pas eu le courage de redémonter le Media/Nav pour le faire.

Ce module ressemble aux modules pour rétroviseurs, mais est plus petit, avec un connecteur à seulement 6 cosses.)

3) Gestion de la caméra de recul (V4.0) par carte Arduino

Présentation

Ce montage, qui est réalisé à partir d'une carte Arduino Nano, reprend en gros la logique de la commande temporisée à transistor donnée juste précédemment, avec quand même quelques petites améliorations facilement permises par cette version numérique.

Cette version est beaucoup plus complexe à mettre en œuvre que la version précédente, pour une fonctionnalité à peu près équivalente.

Elle s'adresse donc aux bricoleurs qui pratiquent déjà ce type de carte, ou qui veulent

s'y initier avec ce projet.

Logique de commande

Elle s'inspire de la logique à temporisation précédente, mais avec quelques raffinements supplémentaires :

  • La commande manuelle se fait avec un simple poussoir à impulsion (ouvert au repos, contact à l’appui), plus facile à trouver et plus fiable qu’un poussoir bistable.

  • Créer un délai d'extinction de la caméra plus précis (ici 12 s) quand on quitte la MAR pour garder en permanence le visuel arrière lors de manœuvres prolongées.

  • Pouvoir à tout moment (même pendant les manœuvres), allumer ou éteindre la caméra à l’aide du poussoir de commande manuelle de la caméra.

  • Quand le poussoir est activé la logique de commande passe en "mode Manuel" et y reste jusqu'au prochain cycle de manœuvre.

En "mode Manuel" seule la commande par le bouton poussoir est prise en compte, que l'on soit dans une phase manœuvre ou pas, et l'état de la caméra (éteinte ou activée) est permanent.

  • Le "mode Automatique" est le mode par défaut à la mise sous tension.

  • Si on est passé en "mode Manuel" (en appuyant sur le poussoir), on repassera en "mode Automatique" à l'initialisation du prochain "Cycle de Manœuvre".

  • Un nouveau cycle de manœuvre est initialisé par un passage en MAR, lorsque l'on n'est pas déjà dans un cycle de manœuvre.

  • Le test visuel du bon fonctionnement du module consiste à faire apparaitre l'image fournie par la caméra pendant 3 secondes à la mise sous tension.

Cette vision furtive de ce qui se trouve à l'arrière de la voiture peut s'avérer utile avant de démarrer ...

Schéma électrique

Valeur des composants :

R0 = R6 = 2,2 kΩ - ¼ W ; R1 = 150 Ω - ¼ W ; R2 = R7 = 10 kΩ - ¼ W ;

R3 = 1 kΩ - ¼ W ; R4 = 5,6 kΩ - ¼ W ; R5 = 100 Ω - ½ W ; R8 = 330 Ω - ½ W

D1 : Diode Zéner de 8,2 V - 0,5 W

T1 et T2 : Transistors NPN de type 2N2222 ou équivalent …

T3 : Transistor PNP de type 2N1132, 2N2905, 2N2907, ou équivalent …

(le Vce max des transistors devra être au moins égal à 30 V)

C1 = de 100 nF à 1 μF – 30 V ; C2 = 10 μF – 10 V ; C3 = 33 μF.

Alimentation :

Le module électronique est alimenté par le « 12V Accessoires »

Le réseau R5, D1, alimente la carte Arduino (broche 30) en limitant à environ 8,2 V la tension grâce à la diode zéner D1.

La consommation de la carte Arduino est d’environ 20 mA à vide.

Une étude rapide des cas extrêmes permet de dimensionner les composants :

Si on prend comme consommation maximale du circuit 50 mA, et pour tension minimale d’alimentation (12V), pour que l’alimentation de la carte minimale soit de 7V (pour laisser un delta de 2V au régulateur 5V de la carte Arduino), la valeur de R5 sera la suivante :

R5 = (12 V – 7 V) / 50 mA = 100 Ω

A la tension d’alimentation maximale 15 V la diode zéner D1 régulera théoriquement la tension d’alimentation de la carte Arduino à 8,2 V. La puissance théorique maximale dans R5 sera alors de :

P max R5 = (15 V – 8,2 V)^2 / 100 Ω = 0,46 W , on prendra donc :

R5 = 100 Ω - 0,5 W

Dans ces conditions maximales le courant dans R5 est de :

I max R5 = (15 V – 8,2 V) / 100 Ω = 68 mA

Si on soustrait de cette valeur les 20 mA de courant consommé par la carte Arduino, il restera 48 mA à dériver dans la diode D1. La puissance maximale dissipée dans D1 sera donc de :

P max D1 = 8,2 V x 48 mA = 0,4 W

On prendra donc :

D1 = Zéner de 8,2 V - 0,5 W

Interfaces d’entrées :

Le module comporte 2 entrées : Le signal Marche Arrière "MAR", et le Poussoir de commande manuelle "Int 1" ("Int 2" étant référencé au 0V)

  • L’information MAR est un signal 12V interfacé en 5V par le transistor T1 monté en « émetteur commun ». La logique de l’information MAR est de ce fait inversée avant d’entrer en D4 sur la carte Arduino.

Les valeurs des résistances R0, R1 et R2 ont été choisies pour avoir une consommation pas trop élevées tout en ayant une bonne immunité aux parasites (objet de la version V4).

J’ai choisi R0 = 2,2 kΩ pour un courant de base autour de 5 mA (P # 0,1W).

R1 est choisie la plus faible possible (150 Ω) pour augmenter la résistance aux parasites , avec C3 en parallèle pour filtrer le signal (modifs V4).

La résistance de pull-up : R2 = 10 kΩ sera en parallèle avec la résistance de pull-up interne à la carte Arduino (qui est de 20 à 50 kΩ).

A noter que pour la version V4 un filtrage numérique a été ajouté sur cette entrée.

  • le Poussoir impulsionnel ajouté pour la commande manuelle est alimenté par le 5V de la carte Arduino via la résistance de pull-up R3 de 1 kΩ en parallèle avec la résistance de pull-up interne à la carte Arduino (entrée D2).

Le condensateur C2 est un premier filtrage analogique de cette entrée, mais compte tenu de la vulnérabilité aux parasites de ce signal 5V ce filtrage analogique sera suivi d’un filtrage numérique.

Sortie Caméra « CAM » :

La sortie CAM (5V) en D6 de la carte Arduino doit être rehaussée au niveau 12V par le montage formé par les transistors bipolaires T2 (NPN) et T3 (PNP).

L’impédance d’entrée du Media/Nav étant d’environ 1 kΩ, T3 doit être théoriquement capable de fournir un courant maximal de 15 mA. Mais en fait la résistance R8 de protection contre les court-circuit de 330 Ω (0,5 W) portera ce courant à environ 45 mA si un court-circuit se produit sur cette broche.

Pour un β = 50 le courant Ib de T3 sera d’environ 1 mA. Le pont diviseur formé par R6 = 2,2 kΩ et R7 = 10 kΩ permet de fournir ce courant.

Le courant Ib de T2 devra être d’au moins 1 mA / 50 = 20 μA, donc R4 < 250 kΩ.

En fait on prendra une valeur beaucoup plus faible pour immuniser le circuit aux parasites :

R4 = 5,6 kΩ.

Programmation de la carte Arduino :

Ce logiciel qui doit répondre à la logique de commande décrite au début de cette étude a les particularités suivantes :

  • La sortie caméra du module est sur la broche D6 de la carte.

  • Le signal inversé de « Marche AR » rentre sur la broche D4.

  • Le poussoir est connecté à la broche D2.

D’autre part :

  • Dans la "boucle Arduino" (Loop), la fonction « millis() » est utilisée de préférence à la fonction « Delay » (juste utilisée pour le test caméra initial), car cette commande bloque momentanément le programme.

  • Même si ce n’était pas nécessaire ici, par principe le poussoir est traité comme une « Interruption » pour rendre son intervention toujours prioritaire.

  • Le signal issu du poussoir est soumis à un filtrage numérique pour éliminer les parasites électriques, les « rebonds » du composant, et les appuis parasites multiples qui peuvent être provoqués par des appuis « pas francs » causés par les

trépidations du véhicule.

  • Sur cette dernière version V4.0 un filtrage numérique a été ajouté sur l'entrée Marche AR car il s'est avéré sur la version V3 que des parasites sur cette entrée pouvaient déclencher des cycles de "manœuvre" parasites se traduisant par une visualisation caméra de 12 s. Le filtrage numérique vérifie simplement que le signal MAR dure assez longtemps pour pouvoir être pris en compte.

On trouvera tous ces points en commentaires (après //) directement sur la copie du logiciel fournie en fin d'article.

Logigramme :

Pour étudier et valider le fonctionnement logique global je me suis servi d’un petit utilitaire gratuit « LARP » qui permet de traduire la logique de fonctionnement sur un logigramme, puis de vérifier le fonctionnement réel obtenu par des simulations.

Cela permet une mise au point par itérations successives (dues aux erreurs!), pour à la fin valider définitivement le principe.

Il est important de noter que ce logigramme est un "squelette" qui ne valide que le principe général, et n’est pas fidèle à ce que sera le programme final : variables différentes, pas de prise en compte des interruptions, ni des fonctions accessoires (anti-rebond, antiparasites …).

Pseudo-code :

A partir de ce logigramme l’utilitaire LARP peut générer automatiquement un « pseudo-code » qui est une trame bien utile pour

écrire le programme définitif en « langage Arduino » (dérivé des langages C et C++).

Logiciel Arduino V4.0 :

Le code final en langage Arduino est le suivant :

Je pense avoir suffisamment documenté le code Arduino pour que ceux qui sont intéressés puissent s’y retrouver.

La mise en page a été détruite par les transformations successives de formats, mais je pourrai transmettre les fichiers originaux à ceux qui m’en feront la demande.

Réalisation

Packaging

J’avoue que le packaging de ce circuit est trivial, mais je n'ai pas été sponsorisé par UPSA, ... pourtant ils auraient pu, car cet emballage évoque parfaitement la phase de conception, dont il est un sous-produit !

&&&&&&&&&&&&&&&&&&&&&&

j'ai déplacé de post dans "projets finis" car ça semble mieux convenir.

Merci du partage