Retrouvez cet article dans : Linux Magazine Hors série 23
Le montage
Le montage est d’une extrême simplicité et repose entièrement sur un récepteur IR TSOP1738 ou similaire. Ce récepteur capte les signaux IR et les transforme en signaux TTL (0-5 volts) qui seront " remontés " à l’ordinateur après ajustement des tensions. Le TSOP1738 est un composant très facile à trouver dans le commerce et très économique (moins de 3 euros). On trouve également le TSOP1736 qui pourra convenir pour notre montage. La seule différence entre les deux composants est la fréquence d’échantillonnage passant de 38 kHz (idéal) à 36 kHz. Cette différence de valeur influera sur la qualité de réception, mais n’empêchera pas l’ensemble de fonctionner. Le port série utilisant des tensions qui n’ont rien à voir avec le TTL, nous ajouterons un régulateur de tension 78L05, une résistance de rappel, un condensateur et une diode de protection. L’ensemble pourra tenir sur un circuit de taille très réduite ne nécessitant pas d’alimentation externe. Le schéma figure 1 montre l’agencement et l’utilisation des composants. L’alimentation du montage est fournie par la broche RTS (Ready To Send) et convertie en +5 V par le régulateur 78L05 pour le Vcc du TSOP. La diode protège le régulateur de la tension négative (-10 V) présente sur RTS. Le condensateur permet de nettoyer l’alimentation du TSOP.
Fig. 1
C’est une habitude à prendre lorsqu’on alimente un montage ou un composant avec un régulateur. La résistance permet au port série de détecter le signal sur la broche DCD (Data Carrier Detect) puisque le TSOP utilise des signaux TTL normalement invisibles pour ce type de ports. La figure 2 montre, à gauche, un assemblage sur un circuit imprimé spécifique et à droite le même montage sur plaque pastillée.
Fig. 2
Le logiciel
Le support logiciel LIRC se compose de trois éléments : un module noyau, un serveur lircd et des applications clientes. Les tests ici réalisés portent sur un noyau 2.6.12 sur une distribution Debian stable. Avec cette distribution, il est nécessaire de compiler et d’empaqueter les modules noyau pour LIRC. Ce ne sera pas nécessairement le cas si vous utilisez une autre distribution comme Mandriva, Fedora ou SUSE. Il est d’ailleurs fort probable que le support LIRC existe soit de base dans la distribution, soit via l’installation d’un paquet RPM binaire. Le récepteur présenté ici utilise le port série et celui-ci ne devra être utilisé par aucun autre élément logiciel. C’est une source courante de problème. Lors de l‘installation des sources ou du module, il vous sera sans doute demandé de spécifier le type de récepteur et l’adresse du port série à utiliser. Le tableau ci-contre donne les correspondances entre les désignationssetserial /dev/ttyS0 uart noneSelon l’architecture de la distribution et sa configuration de démarrage, il est possible, voire nécessaire, de définir cela de manière permanente en modifiant le fichier
lirc_dev: IR Remote Control driver registered, at major 61 lirc_serial: auto-detected active low receiver lirc_dev: lirc_register_plugin:sample_rate: 0Si tout a fonctionné correctement, vous pouvez procéder aux premiers tests avec l’utilitaire

USB
Attention ! Les informations qui suivent sont données à titre informatif et dans le but de vous dirigez vers le site officiel. Nous n’avons pas eu le loisir de procéder aux tests et les indications du site sont quelque peu éparpillées entre les schémas proposés. Pour en savoir plus sur la programmation USB, reportez-vous à l’article correspondant dans le présent magazine. Le projet USB-IR-Boy d’Aapo Tamminen et Ilkka Urtamo fait usage d’un microcontrôleur Freescale MC68HC908. Il s’agit de l’un des rares microcontrôleurs à mémoire Flash peu coûteux et capable de communiquer via USB. Vous l’aurez compris, le montage est sensiblement plus complexe que le précédent et surtout, il faut programmer le microcontrôleur livré vierge. Il vous faudra donc, tout d’abord, construire le programmeur pour le MC68HC908, appelé " prommer " sur le site officiel (http://usbirboy.sourceforge.net/). Utilisant la programmation in situ, le microcontrôleur est mis en situation comme à l’intérieur du montage final à la différence près qu’il est connecté au port série du PC (et oui, un port série sera tout de même nécessaire). Le schéma en figure 3 montre le MC68HC908 et le circuit d’interface MAX232. Le schéma nécessite un minimum de connaissances et de logique d’électronicien. Vreg, par exemple, est une tension de +3,3 V produite de manière interne par le microcontrôleur. Il faut connecter les Vregs ensembles. Le MAX232 est un classique traité par ailleurs dans ce hors-série.
Fig. 3
Le code devant être chargé dans le MC68HC908 est écrit en C et sera compilé avec SDCC (Small Device C Compiler) normalement disponible sous forme de paquet dans votre distribution. Vous pouvez également télécharger le code compilé depuis le site officiel d’USB-IR-Boy. La programmation du microcontrôleur se fera par l’utilitaire Spgmr08, également référencé sur le site du projet. Une fois le MC68HC908 programmé, il pourra être intégré au montage dont le schéma est présenté en figure 4. Un schéma vous permettant de réaliser un récepteur en utilisant une plaque à bande est également disponible en ligne.

Fig. 4
L’aspect logiciel comprend un module usbirboy ne nécessitant pas d’autre support noyau provenant du projet LIRC. La compilation du module est, à l’instar du montage, plus complexe qu’avec le récepteur sur port série. Il vous sera nécessaire de modifier le fichier Makefile de manière à faire correspondre les chemins d’installation des fichiers. D’autre part, si vous n’utilisez pas le support devfs, vous devrez créer manuellement l’entrée dans /dev avec la commande mknod /dev/usbirboy c 180 240.
Vous devrez également lancer le démon LIRC en lui spécifiant manuellement le périphérique à utiliser (-d /dev/usbirboy) ou modifier les fichiers d’init en conséquence. En suivant toutes les indications du site, vous devrez être en mesure d’obtenir un montage fonctionnel comme celui présenté en figure 5.

Fig. 5
Comme vous le voyez, sans être embryonnaire, le support USB pour LIRC en est à ses débuts. Le projet est en constante évolution. Il y a quelques mois encore, les sources du code pour le microcontrôleur n’étaient pas disponibles ou uniquement compilables par Metrowerks CodeWarrior. Espérons que l’intégration dans le projet LIRC sera plus affirmée dans les prochains temps et, pourquoi pas, que cette solution finira par remplacer celle du port série en tant que récepteur par défaut.
Note: Ce sujet a fait l’objet d’un article différent dans GNU/Linux Magazine France 72. Le sujet se devait d’être traité dans ce hors-série, mais de manière plus succincte pour limiter la redondance.
Retrouvez cet article dans : Linux Magazine Hors série 23





Laissez une réponse
Vous devez avoir ouvert une session pour écrire un commentaire.