Electronique > Réalisations > Télécommandes > Télécommande 013

Dernière mise à jour : 14/04/2024

Présentation

Cette télécommande permet d'activer à distance le mode d'enregistrement d'un caméscope, selon le protocole LANC de Sony.
 
telecommande_013_pcb_3d_front telecommande_013b_pcb_3d_front
 
Le circuit est basé sur un microcontrôleur PIC d'entrée de gamme et peu coûteux, le 16F1827. Deux versions ont été étudiées :
- Schéma 013 : 6 commandes distinctes, PCB 58x38 mm avec composants majoritairement traversants
- Schéma 013b : 2 commandes distinctes, PCB 44x21 mm avec composants montés en surface (CMS)

Le logiciel du PIC repose strictement sur les mêmes bases pour les deux versions.

   

Utilisations possibles

Une télécommande de ce type permet de déporter les ordres d'activité d'un caméscope, tels que démarrage ou arrêt de l'enregistrement. Si à la base on peut se contenter de simples boutons-boussoirs éloignés de la caméra pour rendre plus souple son exploitation (utile si la caméra est posée en hauteur sur un trépied), on peut tout aussi bien envisager un mode d'enregistrement automatique lors de la captation d'un son (dans un cadre de vidéosurveillance, par exemple). Dans ce second cas, il convient simplement d'ajouter un détecteur sonore et bien sûr d'adapter le logiciel de la télécommande pour définir son mode d'action (par exemple démarrer l'enregistrement lors de la détection d'un bruit et arrêter l'enregistrement après 30 secondes d'absence de son).

  

Avertissement

La télécommande décrite ici convient pour des caméscopes dotés d'une prise de télécommande LANC. Elle n'est pas adaptée pour les camescopes les plus récents dotés d'une fonction de télécommande par bus USB ou Ethernet. Important : je n'ai pas testé cette télécommande sur un large panel de caméscopes et ne peut bien sûr pas garantir qu'elle fonctionne avec tous.

   

Schéma

Quelques composants classiques ont été ajoutés au microcontrôleur, pour compléter un schéma qui aurait été trop simple sans.

telecommande_013

Les fonctions implémentées sont les suivantes :

Ces fonctions peuvent bien entendu être modifiées pour répondre à d'autres besoins (modification et recompilation du code logiciel requises).

   
Fonctionnement général
-
Préliminaires...

Cette télécommande s'appuie sur le protole LANC de Sony, également exploité sur des camescopes ou caméras d'autres fabricants. Dans le cas qui nous concerne, nous exploitons une embase mini-jack stéréo 2,5 mm présente sur le caméscope, qui permet à la fois le transport de données numériques et l'alimentation d'un appareil externe pas trop gourmand.

   
connectique_jack_stereo_sony_lanc
   

Pour faire bref, le protocole LANC (dans sa forme d'origine non étendue) prévoit l'émission de trames régulières de données sur un seul fil qui peut faire office d'émission et de réception (pas les deux à la fois). Pour permettre ce mode émission/réception sur un seul et même fil, les équipements qu'on raccorde (ici un caméscope et une télécommande) doivent tous deux disposer d'une interface de type "transistor à collecteur ouvert" (ou "drain ouvert"). Au repos, les transistors situés aux deux extrémités sont bloqués (ouverts) et la ligne de donnée est portée à un état logique haut grâce à une résistance de rappel (pullup). Quand un des deux appareils (caméscope ou télécommande) parle, il "court-circuite" ou "libère" la ligne de données grâce à son transistor qu'il fait respectivement conduire (qu'il sature) ou qu'il bloque (qu'il ouvre). Bien sûr, il ne faut pas que l'autre appareil discute aussi à ce moment là, sinon c'est un sacré chantier sur la ligne de données et rien ne fonctionne (notez que ce cas de figure est sans danger - sans conséquence physique - pour les matériels).

Dans notre cas, c'est le caméscope qui est le maître et impose le rythme des échanges avec l'esclave (la télécommande). Il envoie des trames de données à raison de 8 octets toutes les 20 ms (pour une vidéo au format PAL, la période est plus courte pour une vidéo au format NTSC).
 
Sony_LANC_scope_cde_000a  Sony_LANC_scope_cde_001a  Sony_LANC_scope_cde_001b  
 
Une des particularités du protocole LANC réside dans l'instant où l'on doit placer les données quand on veut envoyer un ordre au caméscope : il faut le faire lors de la transmission des quatre premiers octets délivrés par le caméscope. C'est en effet le seul moment où on peut s'adresser à lui, les quatre octets suivants transportent les octets d'état du caméscope et il ne faut pas y toucher. En réalité, deux octets (sur les quatre prévus à l'origine) suffisent pour transmettre un ordre au caméscope (par exemple $18 et $33 pour activer l'enregistrement).
 
Sony_LANC_scope_cde_001c  
 
La tâche la plus délicate dans la réalisation d'une télécommande compatible LANC réside dans le positionnement temporel des données à inscrire sur la ligne de données, pour être sûr que le caméscope les considère comme valide. Pour commencer, il faut détecter le moment précis où arrive le premier octet de la trame transmise par le caméscope, car c'est à ce moment précis qu'il faut envoyer le premier octet lié à la commande qu'on veut transmettre. Ensuite, il faut détecter le moment précis où arrive le second octet de la trame, car c'est ici qu'il faut envoyer le second octet de la commande à transmettre.

Il n'est pas très difficile de détecter l'arrivée du premier octet, car on le trouve après une pause d'environ 10 ms sur la ligne de données (pendant ces 10 ms de pause, aucune activité n'a lieu et la ligne reste à l'état logique haut). Pour la détection du second octet, il suffit de localiser le bit de start suivant la transmission du premier octet, qui survient environ 1,25 ms plus tard.

  
Transmission des données

Une fois que le logiciel du PIC a déterminé avec précision l'instant où les données doivent être transmises au caméscope, il les délivre sur la ligne RB1 configurée en sortie. Ces données aboutissent au transistor Q1 qui est utilisé en configuration collecteur ouvert et met à zéro la ligne de données LANC quand il le faut, c'est à dire quand il faut transmettre un bit à l'état logique haut (un état logique haut en sortie du microcontrôleur se traduit bien par un niveau logique bas sur la ligne de données LANC).

Dans la copie d'écran oscilloscope qui suit, la trace supérieure indique l'emplacement temporel à utiliser pour l'envoi des deux octets de la commande, tandis que la trace inférieure montre le résultat au niveau de la ligne de donnée LANC.
   
Sony_LANC_scope_cde_001d  
   

Commandes manuelles ou "pilotées"

Les commandes sont manuelles, puisqu'elles se font par pression sur des boutons-poussoirs. Vous noterez toutefois qu'elles s'effectuent en logique négative, c'est à dire avec état logique haut au repos et état logique bas au travail. Il est donc très facile de remplacer n'importe lequel des boutons-poussoirs par un transistor monté en interrupteur commandé (montage en émetteur commun, fonctionnant dans ce cas précis en mode bloqué ou saturé). Sachant cela, vous pouvez faire fonctionner la télécommande automatiquement lors de la détection d'un événement externe (bruit, franchissement d'une barrière, etc), moyennant bien sûr l'ajout d'un circuit adapté à cet usage.

   
Alimentation
Point besoin d'alimentation externe, puisqu'on peut utiliser celle fournie par le caméscope. Pas belle, la vie ? La tension délivrée par le caméscope sur la broche "Ring" de son jack 2,5 mm peut prendre une valeur comprise entre +5V et +8V, selon l'appareil utilisé. Si une tension de 5 V convient tout à fait à notre microcontrôleur, en revanche une tension de 6 V ou plus lui serait fatale. On va donc éviter que ce genre de désagrément puisse se produire, par simple ajout d'une résistance et d'une diode zener (R101 et D101), ladite diode limitant à environ 5,1 V la tension appliquée au PIC.

   

Prototypes

Premier prototype réalisé sur plaaque sans soudure, second sur circuit imprimé "au propre".

Prototype #1
Réalisé sur plaque sans soudure, le tout relié à un caméscope Sony DCR-HC20E (PAL).
   
telecommande_013_proto_rm_001a telecommande_013_proto_rm_001b telecommande_013_proto_rm_001c
 
Après bien des heures de déverminage (de débogage, si vous préférez), j'ai enfin réussi à commander mon caméscope ! Je dois avouer que sans mon oscilloscope numérique, j'aurais pû tourner en rond pendant beaucoup plus longtemps. C'est grâce à lui en effet que j'ai remarqué que certaines commandes étaient placées non pas aux emplacements des deux premiers octets, mais parfois au septième et huitième ! Bien sûr, il ne s'agissait pas d'un problème de câble, seul le code logiciel du PIC (et donc moi) était en cause.
   
telecommande_013_proto_rm_001d  Sony_LANC_scope_cde_001g Sony_LANC_scope_cde_001h    

J'ai finalement pû démarrer l'enregistrement sur mon camescope et l'arrêter à distance (c'est exactement ce que je voulais), même si la pauvre vieille machine me rappelait gentiment qu'il fallait que je nettoie la tête de lecture/enregistrement pour pouvoir continuer d'enregistrer...

Prototype #2
Réalisé sur circuit imprimé. Testé avec le même caméscope, fonctionnement tout aussi OK.

telecommande_013_proto_rm_002a telecommande_013_proto_rm_002b

A noter la présence de deux condensateurs sur la face inférieure : un "gros" de filtrage général 100 uF et un petit de découplage 100 nF.

   

Commandes testées
Il existe de nombreuses commandes liées au protocole LANC, voici celles que j'ai testées avec succès sur mon caméscope DCR-HC20E
(B0 et B1 correspondent aux deux octets envoyés au caméscope) :

Commande
B0 B1 check_nok ou check_ok Remarque
RECORD START/STOP $18 $33 check_ok en mode CAMERA
RECORD $18 $3A check_ok en mode EDIT/VTR
PLAY $18 $34 check_ok en mode EDIT/VTR
STOP $18 $30 check_ok en mode EDIT/VTR
PAUSE $18 $32 check_ok bascule PLAY/PAUSE
FAST FORWARD $18 $38 check_ok en mode EDIT/VTR
REWIND $18 $36 check_ok en mode EDIT/VTR
DISPLAY (ON SCREEN) $18 $B4 check_ok dans les deux modes
ZOOM TELE $28 $35 check_ok en mode CAMERA, zoom lent
ZOOM WIDE $28 $37 check_ok en mode CAMERA, zoom lent

Remarque : je n'ai pas implémenté de contrôle des données d'état retournées par le caméscope et me suis contenté de regarder l'écran du caméscope pour voir si cela fonctionnait ou non.

   

Circuits imprimés (PCB)

Réalisés en une seule couche plus une additionnelle, ce qui nous fera deux couches, ma p'tite dame.
   
images6/electronique_telecommande_013_pcb_3d_components_top.gif  images6/electronique_telecommande_013b_pcb_3d_components_top.gif  

Le PCB version 013b occupe deux fois moins de place que celui de la version 013 (0,09 dm² contre 0,22 dm²), mais il faut être outillé pour les composants "miniatures" et avoir de bons yeux (je pense en particulier au transistor dont les broches sont vraiment minuscules).

Remarques concernant le PCB 013b :

   

Logiciel du PIC

Le logiciel a été compilé pour un PIC 16F1827, mais un 16F1826 (je n'en avais plus) conviendrait également (avec recompilation).
Télécommande 013 - 16F1827 - 29/03/2024
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

 

Historique

14/04/2024
- Ajout photos prototype version 013, avec en face inférieure les deux condensateurs que j'avais oublié d'implanter sur le PCB.
- Ajout PCB version 013b, version miniaturisée de la version 013 avec 2 commandes au lieu de 6.

31/03/2024
- Première mise à disposition.