2016年11月15日 星期二

RPI3's lirc

refer to : http://ozzmaker.com/how-to-control-the-gpio-on-a-raspberry-pi-with-an-ir-remote/

hardward : 1838B 接 GPIO, 3.3V, GND, PIN18

Software :
1. sudo apt-get install lirc liblircclient-dev
2. 在 /etc/modules 裏加兩行
   lirc_dev
   lirc_rpi gpio_in_pin=18
3. 改 /etc/lirc/hardware.conf
   DEVICE="/dev/lirc0"
   MODULES="lirc_rpi"
4.  reboot, 理論上應該 lircd 會自動起來, 但並沒有
5. 用mode2 測試硬體
    sudo /etc/init.d/lirc stop  ( 沒有這個也無妨, 因為 service 沒設好? )
    mode2 -d /dev/lirc0
6. irrecord --disable-namespace -d /dev/lirc0 lircd.conf
    錄試遙控器的 key, 要加 --disable-namespace 才能隨便給名字
    錄好後 copy 到 /etc/lirc/lircd.conf
7. 手動起 lircd -d /dev/lirc0 
    這是試出來的, 沒有手動起這個 irw 會說 connect fail, 
    而沒有用 -d 指定 /dev/lirc0 的話, irw 沒反應
8. 用 irw 試,  它會印 lircd.conf 出按鍵的名字
9. 原文的程式會去讀 /root/lircrc 或 /etc/lirc/lirc/lircrc 
    可以在 readconfig 那裏改 path, 但之後的 irexe 不知怎麼指定 path, 
    所以還是建了 /etc/lirc/lirc/lircrc
    那程式只是做了和 irw 類似的事
10. 設定 lircrc
    begin
        button = power
        prog   = irexec
        repeat = 1
        config = /home/pi/autoplay/starttv1.sh
    end
   起 irexe, 它就會依遙控器的 button, 去執行 config 那行