Interfacer Lirc avec Python sur Raspberry

Part.1 – Installer Lirc

1. Installation du paquet.

sudo apt-get install lirc

2. Editer le fichier /etc/modules pour lancer dev lirc au boot.

lirc_dev
lirc_rpi gpio_in_pin=numeroPin # En l'absence de cette ligne le capteur devra être brancher en GPIO18

Important : Les gpio 28, 29, 30 et 31 (connecteur P5) ne sont pas déclarés dans Lirc, il est nécessaire de recompiler un patch disponible à cette adresse.

3. Modifier le fichier de configuration /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

4. Rebooter le raspberry et lancer un test mode2.

mode2 -d /dev/lirc0

La console retourne les codes IR sous la forme « pulse 599 space 528 etc… »
Taper Ctrl + C pour revenir à l’invite de commande.

5. Enregistrement des codes IR dans un fichier config

irrecord -d /dev/lirc0 ~/lircd.conf

Suivre les instructions du terminal.
La liste des touches s’obtient avec la commande ci-dessous ou en consultant ce lien.

irrecord --list-namespace

Le fichier lircd.conf généré doit ressembler à l’arborescence suivante. Le fichier peut être édité pour changer le nom de la télécommande ainsi que le nom des touches.

begin remote

  name  myRemote
  bits           32
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       9038  4456
  one           606  1642
  zero          606   518
  ptrail        603
  repeat       9042  2206
  gap          107968
  toggle_bit_mask 0x0

      begin codes
          KEY_POWER                0x00FFA25D
      end codes

end remote

6. Déplacement du fichier de configuration et redémarrage du daemon.

sudo cp lircd.conf /etc/lirc/lircd.conf
sudo /etc/init.d/lirc restart

7. Lancer la commande irw puis appuyer sur les touches de la télécommande. Le terminal doit retourner le nom de la touche enfoncée.

8. Démarrer les services automatiquement au boot.

update-rc.d lirc defaults
update-rc.d irexec defaults # à vérifier

Part.2 – Installer Pylirc

1. Installation du paquet python-pylirc.

sudo apt-get install python-pylirc

2. Création du fichier ~/.lircrc pour le daemon lircd.

begin
   remote = myRemote
   prog = myProg
   button = KEY_POWER
   config = myVariable
   repeat = 0
end

3. Instancier pylirc dans le code python.

import pylirc
pylirc.init("myProg","pathLircrc") # /home/pi/.lircrc
list = pylirc.nextcode()
if list is not None:
   for code in list:
      if code == "myVariable":
         code...

Important : Pylirc n’est pas compatible avec Python 3.x, utiliser la version 2.7


So, what do you think ?

You must be logged in to post a comment.