URL: https://linuxfr.org/users/mr_maurice/journaux/projet-embarque-interface-pour-commande-filaire-renault-vers-autoradio-jvc Title: Projet embarqué: interface pour commande filaire Renault vers autoradio JVC Authors: mr_maurice Date: 2017年11月30日T21:01:40+01:00 License: CC By-SA Tags: renault, tuning, c, pwm, diy, langage_c et automobile Score: 57 Ce journal décrit succinctement la réalisation d'un projet embarqué, avec code et circuit à la fin. (Quelques termes anglophones peuvent être rencontrés dans le reste de ce texte, ainsi que des conseils shopping) **Contexte / besoin** Quand je ne suis pas en vélo je roule avec [cet excellent et adorable véhicule](https://fr.wikipedia.org/wiki/Renault_Kangoo). L'autoradio d'origine vient tout droit des années 90, je l'ai donc changé pour un JVC qui peut parler en bluetooth avec mon téléphone, et plus généralement me faire entendre ce que j'ai envie d'entendre. Petit souci: la petite télécommande filaire installée derrière le volant devient inutile, c'est dommage. **Cheminement / mavie** _Coté commande_ Après avoir posté [cette entrée de forum](http://linuxfr.org/forums/linux-embarque/posts/parler-avec-un-commodo-pour-autoradio) j'ai fini par démonter la télécommande, et découvrir qu'il s'agit simplement d'un ensemble de 6 interrupteurs montés "en parallèle" (2 interrupteurs partagent une broche commune au milieu), ainsi qu'une molette qui peut adopter 3 positions (minimum et suffisant pour détecter un sens de rotation). Le tout était relié à l'ancien autoradio par un connecteur à 6 broches. Ce tableau récapitule le rôle de chaque broche du connecteur:  _Coté autoradio_ Mon JVC neuf n'a pas de récepteur infrarouge mais est équipé d'un énigmatique fil bleu qui pend derrière, étiqueté "steering wheel remote". Ce fil est relié à une entrée "pull-up", et est considéré actif lorsqu'il est relié à la masse. Faute de documentation j'ai acheté [une télécommande infrarouge](https://www.aliexpress.com/item/New-Arrival-Remote-Control-Farther-Transmitting-Remote-Controller-For-JVC-Car-Stereo-RM-RK50-RM-RK52/32804469158.html) compatible, [un analyseur logique](https://www.aliexpress.com/item/USB-SALEAE-24M-8CH-logic-analyzer-24M-8-channel-buffer-support-1-1-16-Data-line/32820370410.html), que j'ai relié à un démodulateur infrarouge. Appuyer sur les boutons en capturant les signaux permet d'obtenir ce genre de graphe:  Toujours sans documentation, mon interprétation est qu'un signal valide est composé d'un long préambule, puis de signaux codés sur 2x8 bits (addresse puis commande), puis d'un signal d'arrêt. Ça ressemble à un [codage IR standard](https://www.vishay.com/docs/80071/dataform.pdf). Ici un 1 est 660uS actif, puis 1.474mS de pause, un 0 est 440uS actif, puis 400uS de pause. Plus qu'a écrire les instructions pour: interroger la télécommande sur son état, et envoyer un signal adapté à l'autoradio. **Le projet** Le circuit et le code sont [mon github](https://github.com/toane/renault_remote)(En anglais) Il faut pour le réaliser: - de quoi compiler (GCC-AVR, un éditeur de texte) - fer à souder, pcb vierge standard, fils, étain, les fournitures de base - un ATmega - de quoi le programmer (j'utilise un usbasp de chez eBay, pas cher, compatible linux - un optocoupleur (par exemple 4N25) - de quoi alimenter le circuit en 3-5V (chargeur usb ou bloc de piles alcalines) - un support pour circuit imprimé ou deux, suivant la disposition sur le circuit. Voila ça fonctionne à merveille, de rien. notes: je considère la partie code comme terminée bien qu'une partie ne soit pas satisfaisante à mon goût (poller activement le flag de l'interruption plutôt qu'affecter successivement les valeurs du timer dans l'interruption elle même, par exemple). Il manque un fichier .stl pour imprimer un boitier en 3D, peut-être une fois que j'aurais réappris à utiliser blender. Il faudrait aussi un Makefile.