programmation d'une télécommande infrarouge

  • brancher un écran et un clavier sur la RPI2
  • brancher une LED IR 38K TSOP sur les ports gpios ou bien utiliser le module électronique complémentaire
  • démarrer la carte avec une alim 5V
  • vérifier que le système démarre
  • se connecter en root sur le système (login/passwd=root/root)
  • arrêter le démon LIRC : /etc/init.d/S25lircd stop
  • taper la commande /usr/bin/mode2 -H default -d /dev/lirc0
  • taper sur une touche de votre télécommande et vérifier qu'elle envoie des trames (succession de lignes pulse et space)
    • => la carte RPI2 + la LED reçoivent bien des trames infrarouge
  • relancer le démon LIRC : /etc/init.d/S25lircd start
  • se placer dans le répertoire /tmp : cd /tmp
  • créer le fichier de configuration de LIRC lircd.conf grâce à la commande irrecord (suivre les indiquations de la commande irrecord)
  • renommer et copier le fichier dans le répertoire /etc/lirc/lircd.conf.d : cp -pf 

Aide sur la commande irrecord :

L'utilisation de irrecord  se passe en trois temps :

  • génération de trames afin que irrecord détecte les caractéristiques de la télécommande infrarouge (Press RETURN now to start recording)
  • association entre les touches de la télécommandes et les codes qui seront utilisés ensuite (Please enter the name for the next button )
  • finir et quitter (press <ENTER> to finish recording)

Le point le plus délicat est la génération de trames : suivant les télécommandes, il n'est pas aisé de générer comme demandé
les deux lignes de 80 caractères en tapant succesivement sur les touches avec une moyenne de une seconde comme demandée par la commande,
sans dépasser la limite de "10 

traduction altavista :) ===> il faut remplacer Mais par points

"Il est très important que vous appuyez sur plusieurs boutons différents et maintenez-les pendant environ une seconde.
Chaque bouton doit générer au moins un Mais en aucun cas plus de dix points de sortie.
N'arrêtez pas d'appuyer sur les boutons jusqu'à ce que deux lignes de points (2x80) aient été Généré"

il arrive qu'en appyant sur une touche, seul un point apparaisse, il faut alors continuer avec d'autres touches
dans le pire des cas, laisser le programme travailler sans rien à faire, même si une seule ligne a été générée,
si il propose ensuite de faire l'association entre touches et codes c'est gagné :)

Exemple en ligne de commande :

# irrecord -H default -d /dev/lirc0

irrecord: could not open logfile "/root/.cache/irrecord.log"
irrecord: No such file or directory
irrecord -  application for recording IR-codes for usage with lirc

Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)

This program will record the signals from your remote control
and create a config file for lircd.
A proper config file for lircd is maybe the most vital part of this
package, so you should invest some time to create a working config
file. Although I put a good deal of effort in this program it is often
not possible to automatically recognize all features of a remote
control. Often short-comings of the receiver hardware make it nearly
impossible. If you have problems to create a config file check the wiki
at https://sourceforge.net/p/lirc-remotes/wiki, the Checklist and the
manual page.
If there already is a remote control of the same brand available at
http://www.lirc.org/remotes/ you might also want to try using such a
remote as a template. The config files already contain all
parameters of the protocol used by remotes of a certain brand and
knowing these parameters makes the job of this program much
easier. There are also template files for the most common protocols
available in the remotes/generic/ directory of the source
distribution of this package. You can use a template files by
providing the path of the file as command line parameter.
Please take the time to finish this file as described in
https://sourceforge.net/p/lirc-remotes/wiki/Checklist/
and make it available to others by sending it to 
<lirc@bartelmus.de>

Press RETURN to continue.

Now start pressing buttons on your remote control.

It is very important that you press many different buttons and hold them
down for approximately one second. Each button should generate at least one
dot but in no case more than ten dots of output.
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.

Press RETURN now to start recording.
...................................................................................irrecord: no data for 10 secs, aborting
Creating config file in raw mode.
Now enter the names for the buttons.

==> ici on n'a pas réussi à faire deux lignes de points comme demandé mais le programme a finalement trouvé une configuration infrarouge

Please enter the name for the next button (press <ENTER> to finish recording)

==> à partir d'ici, on tape le nom du code lirc puis on appuie sur la touche correspondante souhaitée

KEY_0

Now hold down button "KEY_0".
Got it.
Signal length is 67

Please enter the name for the next button (press <ENTER> to finish recording)

# ls -l
total 40
-rw-r--r--    1 root     root          1737 Dec 27 13:34 irrecord.conf
-rw-r--r--    1 root     root         29651 Dec 27 13:29 messages
-rw-r--r--    1 root     root            32 Dec 27 13:05 resolv.conf
# cp -pf irrecord.conf /etc/init.d/
OLD/        S01logging  S20urandom  S25lircd    rcK         rcS
# cp -pf irrecord.conf /etc/lirc/lirc
lirc_options.conf  lircd.conf         lircd.conf.d/      lircmd.conf        lircrc
# cp -pf irrecord.conf /etc/lirc/lirc
lirc_options.conf  lircd.conf         lircd.conf.d/      lircmd.conf        lircrc
# cp -pf irrecord.conf /etc/lirc/lircd.conf
lircd.conf     lircd.conf.d/
# cp -pf irrecord.conf /etc/lirc/lircd.conf
lircd.conf     lircd.conf.d/
# cp -pf irrecord.conf /etc/lirc/lircd.conf.d/
01-gowell-1.conf  01-gowell-2.conf  01-gowell.conf    02-mini-1.conf    02-mini-2.conf    02-mini.conf      ENTETE.CONF/      OLD/              README.conf.d
# cp -pf irrecord.conf /etc/lirc/lircd.conf.d/11-exemple.conf
# irw
connect: Connection refused
# /etc/init.d/S
S01logging  S20urandom  S25lircd
# /etc/init.d/S25lircd start
Starting lirc: OK
# irw
0000000000000001 00 KEY_0 irrecord.conf
0000000000000002 00 KEY_1 01-gowell.conf