Dans un article précédent, je vous expliquais comment brancher un récepteur infra-rouge sur les GPIO du raspberry pour contrôler XBMC avec une télécommande IR. Mais sachez que l’utilisation du récepteur IR n’est pas limitée à XBMC seul, puisqu’il est possible de mapper les commandes IR avec n’importe quelle commande Linux.
Pour cela, on va utiliser le programme irexec
, qui a priori est déjà installé sur votre distribution (il fait partie du paquet lirc).
Table des matières
Identification du bouton à mapper
Dans un premier temps, on va commencer par identifier le nom du bouton et celui de son dispositif, d’après lirc. Lancez irw
puis appuyez sur le bouton auquel vous souhaitez affecter une action. Vous aurez un truc dans ce genre :
00000000000ffba3 00 KEY_ENTER TelecommandeIR
Le « KEY_ENTER
» correspond au nom du bouton donné dans le fichier /etc/lirc/lircd.conf
, et « TelecommandeIR
» est le nom de la télécommande, donné à la ligne « name
» de ce même fichier.
Affectation d’une commande
Maintenant que l’on connaît le nom du bouton et de son dispositif, reste à lui affecter une commande. Pour cela il vous faut éditer le fichier home/xbian/.lircrc
(à adapter en conséquence pour les autres distros). Celui-ci doit donc ressembler à ça :
begin prog = irexec remote = <nom de la télécommande> button = <nom du bouton> config = <commande à exécuter> end |
Exemple complet
Mettons que je veuille prendre une photo avec le module caméra du raspberry à chaque fois que j’appuie sur le bouton ENTER de ma télécommande ; alors le fichier de configuration ressemblera à ça :
begin prog = irexec remote = telecommandeIR button = KEY_ENTER config = /opt/vc/bin/raspistill -o /home/xbian/Camera/`date +%y-%m-%d_%T`.jpg end |
Il est préférable de mettre le chemin complet de l’exécutable (si vous ne le connaissez pas, un coup de whereis
vous aidera). Bien sûr, si la commande à exécuter est un peu longue, rien ne vous empêche d’écrire un script .sh, et de l’appeler dans le fichier .lircrc
.
A propos de ma commande
Ici, j’utilise la commande raspistill pour prendre une photo. Cette commande nécessite un nom de fichier de sortie. Pour éviter d’écraser les photos précédentes, celles-ci sont nommées en fonction de la date (année-mois-jour_heures :minutes :secondes.jpg), voir ici pour plus de détails.
Lancement de irexec
Pour pouvoir exécuter notre commande, il faut bien sûr lancer la commande irexec
. Il est possible de lancer irexec
en tant que daemon, c’est-à-dire en arrière plan :
irexec -d |
Lancer irexec au démarrage du Raspberry
Si vous voulez que irexec
soit lancé automatiquement au démarrage de la framboise, créez un fichier dans le dossier /etc/init.d/
(par exemple irexec.sh
), qui contient :
#! /bin/bash sudo -u root irexec -d /home/xbian/.lircrc |
Ensuite, il faut mettre à jour la liste de scripts de démarrage :
sudo update-rc.d irexec.sh defaults |
Et voilà !