Récepteur de télécommande IR
Nous allons utiliser LIRC (Linux Infrared Remote Control)
Commencer par installer lirc
sudo apt-get install lirc liblircclient-dev
Nous allons ensuite lancer le service Lirc au démarrage en définissant le port ou est branché le capteur IR
sudo nano /boot/config.txt
Modifier la ligne (enlever le # devant dtoverlay ) :
# Uncomment this to enable the lirc-rpi module dtoverlay=lirc-rpi,gpio_in_pin=18
Modifier le fichier de configuration :
sudo nano /etc/lirc/lirc_options.conf
changer les lignes :
driver = devinput
en
driver = default
et
device = auto
en
device = /dev/lirc0
On redémarre :
sudo reboot
Pour tester la télécommande :
On arrête le service Lirc :
sudo /etc/init.d/lircd stop
Ensuite :
sudo mode2 -d /dev/lirc0
En appuyant sur les boutons de la télécommande on voit apparaitre les longueurs des pauses et des impulsions IR :
pulse 575 space 581 pulse 579 space 587 pulse 578 space 1656 pulse 581 space 1656 pulse 576 space 1655 pulse 580 space 39262 pulse 9138 space 2230 pulse 580 space 95526 pulse 9140 space 2227 pulse 585
Modifier ensuite le fichier de configuration de la télécommande :
sudo leafpad /etc/lirc/lircd.conf.d/devinput.lircd.conf
Remplacer par :
# Please make this file available to others
# by sending it to lirc@bartelmus.de
#
# this config file was automatically generated
# using lirc-0.9.0-pre1(default) on Tue Sep 19 19:32:37 2017
#
# contributed by
#
# brand: CARMP3
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name CARMP3
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 9102 4472
one 617 1625
zero 617 544
ptrail 616
repeat 9104 2204
pre_data_bits 16
pre_data 0xFF
gap 108163
toggle_bit_mask 0x0
begin codes
KEY_CHANNELDOWN 0xA25D
KEY_CHANNEL 0x629D
KEY_CHANNELUP 0xE21D
KEY_PREVIOUS 0x22DD
KEY_NEXT 0x02FD
KEY_PLAYPAUSE 0xC23D
KEY_KPMINUS 0xE01F
KEY_KPPLUS 0xA857
KEY_FN 0x906F
KEY_0 0x6897
KEY_1 0x30CF
KEY_2 0x18E7
KEY_3 0x7A85
KEY_4 0x10EF
KEY_5 0x38C7
KEY_6 0x5AA5
KEY_7 0x42BD
KEY_8 0x4AB5
KEY_9 0x52AD
KEY_FN_1 0x9867
KEY_FN_2 0xB04F
end codes
end remote
(Ce fichier peut être créé par la commande : irrecord -d /dev/lirc0 ~/devinput.lircd.conf )
On relance le service lirc :
sudo /etc/init.d/lircd start
On teste notre fichier de configuration de la télécommande :
irw

On installe python-lirc :
sudo apt-get install python3-lirc
On crée un fichier de configuration des touches utilisées dans notre programme et qui appellera le programme Python associé :
sudo nano /home/pi/alphabot_lirc
Par exemple :
begin
prog = alphabot_IR
button = KEY_2
config = AVANT
repeat = 1
end
begin
prog = alphabot_IR
button = KEY_8
config = ARRIERE
repeat = 1
end
begin
prog = alphabot_IR
button = KEY_6
config = DROITE
repeat = 1
end
begin
prog = alphabot_IR
button = KEY_4
config = GAUCHE
repeat = 1
end
begin
prog = alphabot_IR
button = KEY_9
config = ARRET
repeat = 0
end
Ensuite le programme python alphabot_IR.py :
import lirc
lirc.init('alphabot_IR','alphabot_lirc')
while True:
ircode = lirc.nextcode()
print(ircode)
if ircode[0] == 'ARRET':
break
lirc.deinit()
