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

Dernière mise à jour : 30/05/2010

Présentation

Cette réalisation permet de piloter à distance entre un et dix appareils différents, à partir d'une télécommande infrarouge classique pour lecteur DVD ou TV.

telecommande_004_001a telecommande_004_pcb_3d_a

Le système est équipé d'un récepteur infrarouge de type Sony SBX1620 contenant l'élement photosensible et la partie démodulation (filtrage), directement raccordé à un microcontrôleur de type PIC 16F628A. Pour éviter (ou tout du moins fortement limiter) les risques de déclanchement intempestif des appareils pilotés par ce système, la manipulation de la télécommande doit répondre à un impératif strict :
- Appui sur une des touches 0 à 9 de la télécommande pour sélectionner la sortie à activer ou à désactiver;
- Appui sur la touche Play, Next, Vol+ ou Prog+ (pour mettre en route) ou sur la touche Stop, Prev, Vol- ou Prog- (pour arrêter).
Lors de l'appui sur une des touches 0 à 9, une led s'allume pour signaler le mode d'attente de commande marche ou arrêt. Cette led s'éteind dès que la commande marche ou arrêt est reçue, ou si un code non autorisé est réceptionné. Si la deuxième action (ordre de marche ou d'arrêt) n'a pas été effectuée dans les trois secondes qui suivent la sélection de voie, le système repasse en mode d'attente et la led s'éteint après avoir clignoté pour indiquer la "fin de transaction". Voir aussi la page relative à la génération d'un code RC5 pour simulation dans Proteus / Isis et la page Télécommande - IR - Codes RC5.

Remerciements

Un grand merci à Dany, qui a mis à disposition de tous un ensemble de routines pour le traitement des données RC5 et RC6 sur son site, routines que j'ai utilisées dans le présent projet (fichiers RC5_decoder.mpas et RC6_decoder.mpas).
A big thank to Dany, that made available on his site some routines for RC5 / RC6 frames decoding (RC5_decoder.mpas and RC6_decoder.mpas files), routines I used in my "telecommande 004" project.

Schéma

Le schéma ne montre que la section permettant la réception des signaux infrarouge et leur décodage. La partie commande de puissance devra être adaptée selon le type des appareils à commander (ce point sera vu plus loin).

electronique_telecommande_004

Fonctionnement général
Le logiciel tournant dans le PIC ne fait pas grand chose dans l'attente d'arrivée des signaux infrarouge. Dès qu'une transistion survient sur l'entrée signal (RB0 / RC5_In), le logiciel stocke tous les changements d'états qui suivent, et une fois le silence revenu, décode les données. Si les données reçues sont conformes à celles attendues, la sortie concernée est activée ou desactivée. Si les données reçues correspondent à un code non utilisé, la led de réception de données clignote rapidement trois fois de suite.

Décodage RC5 / RC6
Le choix du type de code à décoder (RC5 ou RC6) dépend de la position du cavalier (jumper) JP1 :
- si cavalier côté +Alim (RA5 = +5 V), decodage RC5
- si cavalier côté masse (RA5 = 0 V), decodage RC6
La lecture de la position du cavalier est faite lors de l'initialisation du programme, on ne peut pas changer en cours de fonctionnement. Je n'en suis pas certain mais il me semble bien que toutes les télécommandes des appareils Philips sont désormais en RC6.

Touches reconnues
Les touches de télécommandes (codes envoyés) reconnues sont les suivantes
En mode RC5
- pour sélection de la voie à activer ou à désactiver : touches 0 à 9
- pour mise en route : touches Play, Vol+, Prg+, Next, Avance rapide
- pour arrêt : touches Stop, Vol-, Prg-, Prev, Retour rapide
En mode RC6
- pour sélection de la voie à activer ou à désactiver : touches 0 à 9
- pour mise en route : touches Play, Next, Flèche Haut, Flèche Droite
- pour arrêt : touches Stop, Prev, Flèche Bas, Flèche Gauche

Exemple N°1 - Activation sortie Out3
- Appuyer sur touche 3 de la télécommande
- Appuyer sur la touche Play

Exemple N°2 - Désactivation sortie Out5
- Appuyer sur touche 5 de la télécommande
- Appuyer sur la touche Stop

Etages de sortie
Les sorties du récepteur viennent directement du PIC, il s'agit de sorties TTL capables de travailler sous quelques mA. La commande d'équipements de "forte" consommation pourra être assurée au travers d'interfaces adéquates, tels que relais ou triacs avec optos-triacs. Quelques exemples d'interfaces sont données à la page Interfaces logique 001, mais dores et déjà je peux vous conseiller d'utiliser le circuit ULN2803 qui contient 8 transistors si vous décidez de faire usage de relais.

Prototype

Réalisé sur plaque sans soudure et testé avec plusieurs télécommandes.

telecommande_004_001a telecommande_004_001b recepteur_ir_rc5_001z

Gros plan sur le récepteur IR Sony SBX1620, avec son découplage d'alim local (10 ohms + 10 uF). Je l'avais mis au début mais ne suis pas sûr qu'il soit réellement nécessaire, je n'ai pas le schéma interne du composant.

telecommande_004_001c telecommande_004_001d

J'ai passé pas mal de temps pour faire fonctionner ce montage, mais maintenant ça y est ! Je suis resté bloqué un bon moment pour une raison toute bête : j'ai utilisé plusieurs télécommandes IR (pour TV, enregistreur DVD, platine K7, ampli HIFI, lecteur CD) et rien ne semblait fonctionner malgré la bonne réception des données au niveau du PIC (j'avais inséré des lignes de code de débugage qui ont bien confirmé la réception des trames). Mais rien à faire, les données attendues n'étaient pas reconnues. Pendant un moment, j'ai eu des doutes sur le récepteur IR utilisé, un SBX1620-52 de Sony. Mais après un rapide tour d'horizon sur le Net, tout ceux qui l'utilisaient en étaient pleinement satisfait. Un phénomène étrange que j'ai mis un bout de temps à m'expliquer, était la réception de données même quand je n'activais aucune touche des télécommandes qui me servaient pour les tests. J'ai observé les signaux en sortie du récepteur IR avec mon oscilloscope numérique et des trames sortaient bien du récepteur, de façon régulière et sans que je fasse rien. La longueur des trames parasites était plus longue que celle d'une trame RC5. A côté de ce phénomène bizarre, je retrouvais bien les trames correspondant aux touches activées sur mes télécommandes, les niveaux étaient bons et les formes très propres. Ayant utilisé au début l'oscillateur interne 4 MHz du PIC, j'ai pensé que le problème de non reconnaissance des trames pouvait venir d'une précision insuffisante de la fréquence d'horloge. J'ai donc configuré le PIC pour qu'il fonctionne avec un quartz externe de 4 MHz, mais cela n'a rien arrangé du tout. J'ai laissé tombé car j'en avais marre, et ai repris le jouet le lendemain soir, après avoir localisé pas mal de pages sur le Net qui traitait du code RC6. Du coup j'ai eu un doute et j'ai aussi implémenté le code de décodage des trames RC6. Et là Bingo, mon système s'est mis à fonctionner... pour les touches 0 à 9 mais pas pour le reste ! Sur les cinq télécommandes testées, quatre émettaient des trames RC6 et la dernière (marque Brandt) émettait des trames que je n'ai pas identifiées (en tout cas pas reconnues par mon système). J'ai passé un peu de temps pour relever les codes commandes émis par les touches que je voulais utiliser, qui n'étaient pas les mêmes que pour le code RC5 (en les affichant en binaire sur des leds reliées sur les huit premières sorties, ça m'a permis de faire vite avant de faire plus "pro" avec un afficheur LCD). Quant au générateur de trames IR parasites, j'ai trouvé le fautif peu de temps après. Il s'agissait de mon PC portable posé au-dessus de ma maquette (port IRDA) ! Une fois le PC éteint, tout allait vraiment bien mieux ! Bref, je considère que c'est désormais OK, puisque ça fait désormais exactement ce que je voulais que ça fasse.

Logiciel du PIC

Fichier compilé pour PIC (binaire *.hex) et codes sources complets (mikroPascal Pro V3.2)
Télécommande 004 - 16F628A - (30/05/2010)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Réalisé en simple face. N'inclue pas l'interface de sortie pour le pilotage d'équipements de puissance.

telecommande_004_pcb_composants

Typon aux formats PDF, EPS et Bitmap 600 dpi

Que faire de cet appareil ?

Vous allez peut-être trouver ça drôle. Je tenais absolument à réaliser ce circuit, qui mettait en oeuvre une technique que je n'avais pas explorée avant. Réception de signaux infrarouge codés en RC5, et décodage avec un microcontrôleur. Pour la partie décodage, et comme je l'ai dit en début d'article, je ne me suis pas foulé puisque j'ai réutilisé un code de décodage existant développé par Dany. J'aurais bien pû le faire moi-même puisque j'ai compris comment était constitué une trame RC5 et que je sais en générer. Mais il me semble que j'ai gagné du temps en procédant ainsi. Bref, la question n'est pas là. J'ai terminé ce proto qui se révèle fonctionnel. Très bien. Mais après, quel usage en faire ? Allumer 10 lampes de chevets depuis son fauteuil ? Piloter des volets roulants que je n'ai pas ? Plutôt bête, non ? Je ne vois pas l'utilité de ce bidule pour le moment. J'ai posé la question à ma femme. On ne sais jamais, elle a souvent des idées que je n'aurais jamais eues. Mais elle aussi ne voyait aucune application pratique et utile - chez nous tout du moins - à cette télécommande. Ca me rassure... Alors pourquoi avoir eu tant envie de le faire ? Par curiosité, sans doute. Peut-être aussi me suis-je dit que la réception des ordres de télécommande pouvait servir à autre chose qu'allumer ou éteindre des appareils électriques. Pourquoi par exemple ne pas inventer un nouvel instrument de musique piloté par télécommande ? Je sais qu'on peut le faire, j'ai assez de pratique maintenant pour savoir comment générer des sons ou des évenements MIDI. Pensez-vous pouvoir m'aider sur ce coup ?