RPi와 IR 센서(늘솜 NS-GPIO-04)는 지인에게 얻은 것이고, 리모콘은 VHS/DVD 콤보를 중고로 구입할 때 딸려온 것인데 짝이 맞지 않아서인지 작동이 되지 않아 못쓰고 있었다.
IR 센서 연결
센서 모듈은 조립이 된 상태로 받은 것인데, 센서가 기판의 앞면에 붙어있어서 RPi 2에 꽂는데에 문제가 없다. IR 센서는 RPi의 GPIO18에 연결된다(데이터시트).
디바이스 트리 오버레이 추가
RPi에 IR 센서를 연결하였으면 config.txt 파일을 편집해야 한다. OpenELEC에서는 /flash 디렉터리에 있는데, 파일시스템이 읽기 전용으로 마운트되어 있기 때문에 편집하기 위해서는 쓰기가 가능하도록 마운트해야 한다. SSH로 접속하여 다음의 명령을 실행한다.
openelec:/flash # mount | grep flash
/dev/mmcblk0p6 on /flash type vfat (ro,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
openelec:/flash # mount -o remount,rw /flash
openelec:/flash # mount | grep flash
/dev/mmcblk0p6 on /flash type vfat (rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
config.txt에 한 줄을 추가하고 리부트한다.
openelec:/flash # tail -1 config.txt
dtoverlay=lirc-rpi
리모콘 테스트
modprobe를 실행하고,
openelec:~ # modprobe lirc_rpi
lircd 프로세스를 종료한 다음,
openelec:~ # killall lircd
다음의 명령을 실행하고 리모콘을 눌러본다.
openelec:~ # mode2 -d /dev/lirc0
space 16777215
pulse 4528
space 4428
pulse 598
...
리모콘 기록
irrecord를 실행하여 리모콘의 버튼 하나하나에 이름을 붙인다.
openelec:~ # irrecord --device=/dev/lirc0 /storage/.config/lircd.conf
irrecord의 지시를 따라 키보드와 리모콘을 누르다보면 다음과 같은 파일이 만들어진다. /etc/lirc/lircd.conf.rpi 파일과 http://lirc.sourceforge.net/remotes/lg/6710CDAL01G 를 참고했다.
openelec:~/.config # more lircd.conf
# Please make this file available to others
# by sending it to
#
# this config file was automatically generated
# using lirc-0.9.1-git(default) on Sun Nov 13 02:57:53 2016
#
# contributed by
#
# brand: LG
# model no. of remote control: 6710CMAM03C
# devices being controlled by this remote:
#
begin remote
name LG_6710CMAM03C2
bits 16
flags SPACE_ENC|CONST_LENGTH|REPEAT_HEADER
eps 30
aeps 100
header 4518 4441
one 580 1653
zero 580 535
ptrail 579
repeat 580 1652
pre_data_bits 16
pre_data 0x808
gap 107643
toggle_bit_mask 0x0
begin codes
KEY_POWER 0x7887
KEY_MUTE 0xF807
KEY_VOLUMEUP 0xE817
KEY_VOLUMEDOWN 0x6897
KEY_SLEEP 0x43BC
KEY_1 0x827D
KEY_2 0x42BD
KEY_3 0xC23D
KEY_4 0x22DD
KEY_5 0xA25D
KEY_6 0x629D
KEY_7 0xE21D
KEY_8 0x12ED
KEY_9 0x926D
KEY_0 0xD22D
KEY_UP 0x20DF
KEY_DOWN 0x728D
KEY_LEFT 0x609F
KEY_RIGHT 0xE01F
KEY_ENTER 0xA05F
KEY_MENU 0xB24D
KEY_STOP 0x708F
KEY_CHANNELUP 0xC837
KEY_CHANNELDOWN 0x48B7
KEY_RECORD 0xA857
KEY_STOP 0x708F
KEY_FASTFORWARD 0x8877
KEY_REWIND 0x08F7
KEY_PLAY 0xB04F
KEY_BACK 0x30CF
end codes
end remote
리부트하면 OpenELEC에서 리모콘을 사용할 수 있다. 키보드나 스마트폰 앱으로 조작하는 것보다 훨씬 편하다.
참고
- http://wiki.openelec.tv/index.php/Guide_To_lirc_rpi_GPIO_Receiver
- http://wiki.openelec.tv/index.php/Config.txt
- https://learn.adafruit.com/using-an-ir-remote-with-a-raspberry-pi-media-center/lirc
- http://marklodato.github.io/2013/10/24/how-to-use-lirc.html
댓글 없음:
댓글 쓰기