[ Bidouilles autour de l'infrarouge ]

17/11/2013

Telecommandes IR Voici quelques astuces pour faciliter les bidouillages avec des télécommandes infrarouges. Astuces qui permettent aussi bien de simuler une télécommande, que d'analyser les trames, ou encore de programmer des codes infrarouges à d'autres fins, comme par exemple lors de l'intégration d'un code dans la programmation d'un microcontrôleur, etc.
Pour y arriver, nul besoin d'oscilloscope à mémoire. Nous utiliserons quelques outils logiciels, et notamment le logiciel open source LIRC et son pendant WinLirc, ainsi que le logiciel de visualisation des trames IR protocol analyzer.

LIRC et WinLIRC

Page principale WinLIRC LIRC (L.I.R.C. pour "Linux Infrared remote control") est un logiciel open source de reconnaissance de codes infrarouges qui permet de contrôler un ordinateur à partir d'une télécommande. Une version dédiée à Windows existe : WinLIRC. Il peut aussi servir à piloter le lecteur multimédia Winamp (voir ici : Jukebox MP3)

Ce logiciel fonctionne à partir de nombreux récepteurs infrarouge compatibles. Il en existe de plusieurs types qui s'interfacent sur un port RS-232, USB, ou pour les plus simples via l'entrée audio d'une carte son. Nous allons voir plus loin comment en fabriquer.

Menu configuration WinLIRC L'autre intérêt de ce logiciel est qu'il est capable de simuler une télécommande infrarouge en émettant des codes préprogrammés (ou précédemment acquis). On peut tirer avantage de cette fonction pour d'autres usages, à savoir :
- simuler une télécommande perdue ou cassée pour programmer une télécommande multifonction.
- se servir des listes de codes pour programmer logiciellement le code infrarouge pour d'autres applications, notamment la programmation pour microcontrôleurs (PIC, ATMEL, Arduino, etc...)

Liste des télécommandes IR LIRC Le site de LIRC répertorie un nombre incalculable de télécommandes déjà programmées. Si vous ne trouvez pas votre bonheur, il ne faut pas hésiter à chercher d'autres références chez le même constructeur et essayer toutes les touches. Certaines marchent, même si l'affectation des fonctions est erronée.
Les codes sont facilement éditables via un éditeur de texte quelconque, pour modifier l'ordre des touches ou le nom des fonctions.

LIRC : Liste des télécommandes IR par marques
Hardware : Récepteurs simples

Parmi les nombreuses interfaces réceptrices utilisables, il en est des faciles à réaliser qui se câblent sur un port sériel RS-232 ou bien sur une entrée audio de carte son.

Schéma récepteurs IR simple à photodiode infrarouge pour entrée micro
Photodiode ou phototransistor sur entrée micro
L'interface la plus simple : une bête photodiode (ou un phototransistor) câblée sur la prise entrée micro. La résistance de polarisation de 4,7kΩ reprenant l'alimentation normalement prévue pour un microphone à électret n'est pas forcément utile selon le câblage interne de votre carte son.

Pour les réglages, ouvrez le mixeur audio de votre système d'exploitation (double clic ou clic droit sur l'icône "haut-parleur").
   * Options / Propriétés -> Lecture -> Sur l'entrée "micro" de la console, ajustez le volume à moitié pour démarrer. Si le mixeur le permet, désélectionnez les "boost" et autres amplis ou effets. Testez avec une télécommande. Un son très particulier doit se faire entendre si tout va bien. Baissez complètement le fader de l'entrée pour éviter d'entendre ce son désagréable par la suite !
   * Options / Propriétés -> Enregistrement -> Sélectionnez l'entrée "micro" et ajustez le volume pour avoir un signal correct. Aidez-vous d'un éditeur audio comme Audacity qui donne une visualisation du canal en enregistrement sur un vu-mètre.
La carte son filtre la fréquence porteuse, donc vous ne verrez que les créneaux du code infrarouge.

Schéma récepteur IR pour entrée micro Récepteur infrarouge sur entrée audio
Un récepteur infrarouge à démodulateur intégré assure cette fois-ci la mise en forme des signaux infrarouge. Deux possibilités s'offrent alors à vous selon que vous vouliez utiliser la prise micro ou la prise ligne. Bien que nécessitant quelques composants supplémentaires et une alimentation de 5V, cette solution offre la meilleure sensibilité et de meilleurs résultats de décodage.

Schéma récepteur IR pour entrée ligne L'alimentation 5V pourra être avantageusement fournie par un bloc externe, ou bien sera ponctionnée directement dans le PC (par l'USB par exemple).

Dans les propriétés d'enregistrement, sélectionnez l'entrée (micro ou ligne) et ajustez son volume.

Quelques remarques sur les récepteurs infrarouge :
- attention aux fréquences : de nombreux modèles existent pour différentes fréquences de porteuse (36kHz, 38kHz, 56kHz, etc.) Cependant, leurs filtres internes ne sont pas toujours discriminant et permettent la détection de fréquences proches.
- le brochage varie selon les modèles. Vérifiez bien le vôtre avant de le câbler. Quelques pinouts sont donnés en bas de page à titre d'exemple. Si vous en récupérez d'un appareil, observez bien son câblage !
- la sortie du récepteur est en général à niveau logique inversé. Mais la phase peut aussi être inversée par la carte son ou par le logiciel !

Schéma récepteur IR sur port sériel RS-232
Récepteur sur port sériel
Le câblage donné sur le site de LIRC est très simple.
Cependant il est préférable de fournir l'alimentation par un bloc externe ou par ponction du 5V interne à l'ordi pour plus de fiabilité (et si le port est assez sensible).
Comme le montage ne respecte pas les normes sérielles, évitez les liaisons trop longues.

Simuler une télécommande

Telecommandes IR La deuxième fonction de LIRC est d'émettre le code infrarouge pour se substituer à la télécommande.
Ceci est intéressant sur plusieurs aspects :
- tester les codes infrarouges rentrés préalablement
- remplacer une télécommande pour certaines fonctions
- simuler une télécommande que l'on n'a pas, pour par exemple enregistrer le code dans une télécommande universelle

Hardware : Emetteur

Plusieurs solutions sont envisageables, mais toutes passent par le port série RS-232. Des exemples sont donnés ici : LIRC : Serial Port Transmitters.
Schéma émetteur IR sur port sériel RS-232
L'émetteur le plus simple s'interface directement au port RS-232, sur lequel on vient connecter une diode infrarouge avec une résistance de limitation de 1kΩ et une diode quelconque.
Le seul souci de ce montage est sa très faible portée : quelques centimètres à quelques dizaines de centimètres !

Interpréter les codes infrarouge de LIRC

Voici une astuce plus ciblée, mais qui simplifiera la vie du programmeur de microcontrôleurs ou de tout autre langage. LIRC se sert de codes préalablement enregistrés dans des petits fichiers. Et ces fichiers présentent l'avantage d'être compréhensibles lorsqu'ils sont ouverts dans un éditeur de texte. Dans la plupart des cas, le code est bien décortiqué et on trouve les informations suivantes :

Telecommandes IR Toutes les durées sont en micro secondes (µs)
Prenons une télécommande bidon pour tester :
begin remote

  name  REMOTE_TEST_PANA
  bits           24
  flags 	SPACE_ENC
  eps            30
  aeps          100

  header       3503  1681
  one           449  1255
  zero          449   381
  ptrail        450
  gap          74158
  toggle_bit      0

      begin codes
          Power                    0x00BCBD
          Vol+                     0x000405
          Vol-                     0x008485
          Mute                     0x004C4D
          Prog+                    0x002C2D
          Prog-                    0x00ACAD
      end codes

end remote
Donc dans cet exemple, on a :

Par contre tous les codes ne sont pas facilement exploitables car certains sont en données brutes et ne sont pas vraiment intéressants sous cette forme de fichier. Mais ça reste utilisable pour émettre et capturer dans un soft d'analyse de trame si besoin (oui, c'est un peu tordu, mais à causes désespérées...)

Description des paramètres des codes LIRC
Les significations des différents paramètres employés dans les fichiers des télécommandes sont détaillées ici : WinLIRC : Configuration File Format

Répétition
Certaines télécommandes gèrent l'appui long sur une touche de manière particulière, à savoir qu'au lieu de répéter le code à intervalles réguliers, elles génèrent un code simplifié qui n'envoie que l'information "répétition du dernier code" sans préciser quelle touche est effectivement pressée.
Pour se rendre compte du phénomène, il suffit de masquer la diode d'émission IR, d'appuyer sur une touche en la maintenant, puis de libérer la diode toujours en appuyant. Si l'appareil réagit à la touche, alors le code complet de la touche est envoyé sans cesse. Si l'appareil ne réagit pas, alors la télécommande n'envoie qu'un code de répétition commun à toutes les touches.
D'autres télécommandes mélangent parfois les deux modes de fonctionnement, selon la fonction des touches, comme par exemple pour le volume afin de faire réagir mieux et plus rapidement lors d'appuis prolongés.

Emission - Modulation
Si vous créez ou programmez un émetteur infrarouge, n'oubliez pas de générer la modulation des niveaux hauts (porteuse à 36 ou 38kHz selon les fabricants)

Logiciels d'analyse des trames IR

L'analyse des trames générées par une télécommande infrarouge est relativement facile à faire même sans oscilloscope. Un ordinateur muni d'une carte son auquel on adjoint un des adaptateurs audio vus précédemment suffit.
Une remarque : les récepteurs intégrés inversent la trame, mais la phase peut aussi être inversée par la carte son.
Les créneaux peuvent aussi présenter des petites sur-oscillations, ou être centrés autour de l'axe "zéro", ou bien avoir des plateaux (niveaux hauts) qui baissent. Ceci est dû à la conception même des cartes son, et de leurs condensateurs de liaison qui filtrent les composantes continues.


Editeur audio
Un simple logiciel d'édition audio, tel qu'Audacity par exemple, suffit à analyser les trames du moment qu'il offre une vue de la forme d'onde. C'est un peu laborieux pour analyser les trames et les différents temps, mais ça dépanne !


IR protocol analyser
IR protocol analyser Des petits utilitaires qui facilitent l'analyse des trames existent. Parmi ceux-ci, un en particulier est intéressant : IR protocol analyzer
Il utilise toujours une entrée audio avec un des montages vus ci-dessus et analyse les trames en indiquant les temps entre les changements de niveaux. Trop facile !!

Trame infrarouge - IR protocol analyser

Brochages

Brochage RS-232 pinout (serial - seriel) brochage LED Pinout - Brochage de récepteurs infrarouge

Infos / Liens

LIRC
Liste des protocoles de télécommandes IR par marques

WinLIRC (Version testée : 0.9.0.e)

Audacity : logiciel d'édition audio

IR protocol analyzer (Version testée : 1.1)


IR Remote Control Theory [ Eng. ]


EEVblog #506 - IR Remote Control Arduino Protocol Tutorial : vidéo de Dave Jones (EEVblog) [ Youtube Eng. ]




Autres articles PafGadget ± en rapport :


Jukebox MP3 avec WinLIRC pour télécommander un lecteur audio.


© O. BLT  /  PafGadget    2007-2017     tous droits réservés