Dernière mise à jour :
09/06/2019
Présentation
Cette
télécommande
permet de démarrer ou d'arrêter à distance un appareil quelconque. Elle
a été développée pour une liaison avec faisceau laser, mais un autre support de transmission peut bien sûr être utilisé.
Ses caractéristiques principales sont les suivantes (à défaut d'être les précédentes) :
- plus de 16 millions de combinaisons (codes)
possibles
- le
même circuit intégré programmable (PIC) peut faire office en même temps
d'émetteur et de récepteur (mode bidirectionnel)
- sans reprogrammation du PIC, un seul émetteur peut
commander jusqu'à 256 récepteurs.
- avec
une liaison bidirectionnelle, l'émetteur peut recevoir un accusé de
réception confirmant la bonne réception de l'ordre par le récepteur.
L'allumage et l'extinction de l'appareil distant
peut se faire avec un seul bouton Start/Stop, ou avec deux boutons
indépendants Start et Stop. Le système dispose de deux sorties
maintenues (bascule) complémentaires, et de trois sorties délivrant des
impulsions lors des changements d'état.
Schéma
Les deux appareils A (à gauche) et B (à droite) sont rigoureusement
identiques et construits autour
d'un
microcontrôleur PIC 18F2520. Chacun peut servir en même temps d'émetteur et de récepteur.
Remarque : ce schéma ne montre que le coeur du système. La section dédiée
à la transmission (optique ou filaire) sera vue plus loin.
Fonctionnement général
Les deux appareil A et B peuvent simultanément émettre et
recevoir des données, la transmission est bidirectionnelle. Chaque
appareil effectue en permanence
les tâches suivantes :
- surveillance de l'état des boutons-poussoirs, et
transmission des changements d'état à l'autre
appareil
- réception et traitement (pour activation des
sorties logiques) en fonction des valeurs transmises par l'autre
appareil
Après réception d'un ordre valide, le récepteur envoie un accusé
de réception, cet accusé bien sûr ne peut être utilisé que s'il existe
une voie de retour (liaison bidirectionnelle full duplex). En absence
d'accusé de réception, la LED de l'émetteur clignote 1 fois lors de
l'émission d'un ordre. En présence d'un accusé de réception, la LED de
l'émetteur clignote 3 fois (1 fois + 2 fois) lors de l'émission d'un
ordre.
Sélection du code
L'oeil
soucieux du lecteur que je perçois à travers l'écran ne trompe pas :
comment obtenir 16 millions de codes possibles avec seulement 8
micro-interrupteurs (DSW1) qui en théorie ne devraient pouvoir offrir
que 256 possibilités ? Grâce à une astuce fort simple : le même paquet
de 8 interrupteurs sert pour définir 3 octets différents. Trois octets
équivalent à 24 bits, soit 16777216 codes possibles. Pour modifier le
code en cours, suivre la procédure décrite ci-après.
Etape 1 - Placer le
système en mode Programmation :
- Eteindre le système.
- Placer l'entrée RA3 à +5V avec JP1/Prog côté +Valim (mode Prog).
- Mettre le système sous tension.
Etape 2 -
Sélection/programmation du premier
octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #1)
- Presser le bouton-poussoir SW1/Start-Stop jusqu'à ce que la LED
clignote (2 fois)
Etape 3 -
Sélection/programmation du second
octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #2)
- Presser le bouton-poussoir SW2/Start jusqu'à ce que la LED clignote
(3 fois)
Etape 4 -
Sélection/programmation du troisième
octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #3)
- Presser le bouton-poussoir SW3/Stop jusqu'à ce que la LED clignote (4
fois)
Etape 5 - Retour en mode
Normal (sortie du mode programmation) :
- Placer l'entrée RA3 à 0V avec JP1/Prog côté masse (mode Normal).
Ces étapes doivent être répétées à l'identique pour les deux circuits
émetteur et récepteur, en plaçant bien évidement les 8
interrupteurs DSW1 dans la même configuration pour l'émetteur
et
le récepteur.
Remarques
- Après
programmation du PIC, le code par défaut est $00FFFFFF, c'est-à-dire
que les trois octets utiles ont la même valeur $FF (équivalent de tous les interrupteurs
de DSW1 ouverts). Un nouveau code ne peut être pris en compte
(enregistré) qu'une fois la procédure décrite ci-avant
effectuée en totalité ou en partie. C'est la pression d'un des boutons-poussoirs SW1,
SW2 ou SW3 (en mode Prog) qui valide le nouveau code.
- Dans la version actuelle, les 3 octets de codes utilisés par
l'émetteur et le récepteur sont ceux qui ont été programmés. Si la
position des interrupteurs DSW1 est modifiée mais non validée par
programmation, le code émis ou vérifié lors de la réception ne
correspond plus à la position en cours des interrupteurs.
- Il
faut éteindre et rallumer le système pour pouvoir passer en mode
Programmation, mais il est inutile d'éteindre le système pour revenir
en mode
Normal.
Sorties
5 sorties sont disponibles, de type "T" (
Toggle, bascule) ou
"P" (
Pulse,
impulsion) :
- Out_T1 : sortie "bascule" avec état maintenu, logique
positive (start=1 et stop=0)
- Out_T2 : sortie "bascule" avec état maintenu, logique
négative (start=0 et stop=1)
- Out_P1 : sortie non maintenue, impulsion de 100 ms lors
d'un changement start->stop ou stop->start
- Out_P2 : sortie non maintenue, impulsion de 100 ms lors
d'un changement stop->start uniquement
- Out_P3 : sortie non maintenue, impulsion de 100 ms lors
d'un changement start->stop uniquement
Ces
sorties sont en logique TTL, 0V ou +5V et ne doivent pas débiter plus
de 20 mA. La sortie P1 doit être utilisée si l'appareil à commander
réclame une impulsion sur une unique entrée pour la mise en route et
pour l'arrêt. Les sorties P2 et P3 peuvent par exemple être utilisées
pour piloter un relais bistable (avec deux bobines de commande
séparées).
Transmission des données
La vitesse de transmission des données a été fixée à 4800 bauds, c'est
une valeur assez faible mais qui permet une liaison fiable avec un
support de transmission "un peu limite". Les données sont transmises
dans une trame de longeur fixe de 8 octets :
- 1 octet START (début de trame)
- 4 octets "CODE" (code commun à l'émetteur et au
récepteur) -
Nota 1
- 1 octet "COMMANDE" (ordre de marche ou d'arrêt)
- 1 octet CRC (contrôle de validité de la trame) -
Nota 2
- 1 octet STOP (fin de trame)
Nota 1 : le
code spécifié par l'utilisateur tient sur 3 octets (24 bits)
mais il est transmis de manière "répartie" sur 4 octets.
Nota 2 : le
récepteur ne valide la commande reçue que si l'octet de CRC calculé à la
réception
(à partir des données reçues) est identique à l'octet CRC
transmis.
Support de transmissionLe support de transmission peut être électrique ou optique, il suffit
d'ajouter les
composants requis pour garantir une liaison fiable.
- Laison
"locale" (quelques centimètres) : un simple fil électrique suffit si la distance entre
émetteur et récepteur ne dépasse pas quelques centimètres. Au delà de
10 cm et jusqu'à 1 mètre, il faut utiliser un câble blindé. Au delà de
1 mètre, il faut ajouter un circuit d'adaptation (boucle de courant ou
liaison différentielle).
- Liaison longue distance sur câble symétrique ou paire
torsadée : il faut utiliser un driver de ligne conçu pour cet usage.
Pour ma part, j'ai essayé avec des MAX487, maintes fois utilisés pour des liaisons RS485 dans mes systèmes
DMX. Ce circuit est largement "surdimensionné" pour cette
télécommande, une distance de plus de 1000 mètres (1 km) peut être obtenue sans aucune difficulté.
- Liaison
longue distance sur câble coaxial : là encore il faut utiliser un
driver de ligne, asymétrique cette fois, capable de débiter assez de
courant pour attaquer un câble 50 ohms ou 75 ohms.
- Liaison
optique "directe" (à vue) : laser sur l'émetteur + photodiode ou
phototransistor ou LED sur le récepteur (LDR déconseillée à cause de sa
trop
grande inertie, surtout avec un faisceau lumineux intense). Pour une
distance de quelques dizaines de mètre, un petit laser (1 mW à 5 mW)
suffit amplement, mais l'angle de diffusion du faisceau ne doit pas
être trop ouvert tout de même, il faut un minimum de lumière
sur le récepteur optique. Exemple pratique un peu plus loin.
- Liaison
optique par fibre (FO synthétique ou verre) : connecteurs TOSLINK aux
deux extrémités, un émetteur (par exemple Sharp GP1FAV51TK0F) et un
récepteur (par exemple Sharp GP1FAV51RK0F).
- Liaison HF : on peut par exemple utiliser
des modules émetteur et récepteur travaillant dans les bandes
433 MHz ou 2,4 GHz. Attention au respect des normes en vigueur pour les
diffusions HF, on ne peut pas diffuser n'importe où dans le spectre radiofréquence et avec n'importe
quelle puissance !
Pour
disposer de la liaison bi-directionnelle, il faut disposer de deux
supports de transmission indépendants (ici, pas de multiplexage). Moins facile en HF...
Exemple de liaison par LASER (avec exercice à la clé) :
Petit exercice que je vous laisse résoudre par vous-même (4 questions) :
1
- Sachant que les données émises par la sortie Rx de l'UART du PIC et que celles qui arrivent sur l'entrée Rx de l'UART du PIC
doivent être en logique inversée (état 0 pour une donnée à l'état 1),
comment la diode LASER doit-elle être raccordée ? Cathode côté
masse et anode en sortie TX, ou cathode en sortie Tx et anode
côté +5V ?
2 - Qu'observe-t-on si on intervertit les deux entrées [+] et [-] du circuit CA3140 ?
3 - Quel est le rôle de la diode D303 (réponse dans datasheet du CA3140) ? Dans le cas présent, peut-on la supprimer ?
4 - Un oscilloscope est-il indispensable pour s'en sortir, en cas de non fonctionnement ?
Alimentation
L'alimentation de l'appareil émetteur, s'il est portable, se fait avec
une pile 9V. Côté récepteur, une alimentation secteur (sortie 9Vdc) est
recommandée. Les deux appareils possèdent leur propre régulateur de
tension 5V, valeur requise pour le PIC.
Circuit imprimé
Non réalisé. La vue 3D n'est là que pour donner un aperçu, et le PCB ne
comporte pas les composants requis pour s'adapter au support de
transmission choisi.
Logiciel des PIC
Le code disponible ici en libre téléchargement est une version limitée
à 256 codes différents, sans la fonction d'accusé de
réception. La
version à 16 millions de codes incluant la fonction d'accusé de
réception peut
être livrée en échange d'un
petit
geste de votre part ;)
Télécommande
010 - 18F2520 - LE - 09/06/2019
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à
utiliser, merci de consulter la page
PIC - Sources.
Historique
09/06/2019
- Première mise à disposition.