LIRC 紅外線遙控 與 樹莓派安裝實作

IR remote

很早之前實作過,看了網路上很多的實作,很容易就做出來了,但是經過幾次的版本更新,原本的一些設定檔的位置都更改了,重新再來跑一遍

1. 紅外線的發射器以及接收,我購買的版本是吃5V的,雖然官方網站上是3.3V ~ 5V都可以,但是我還接在5V上面來送電。以下是是紅外線發射以及接收的圖片以及腳位說明

接收器


發射器

 

DAT 走資料就是要接在GPIO上面,VCC就是吃電接在Raspberry Pi 5v腳位上,GND就是接地。下面是Raspberry Pi 的腳位示意圖


安裝步驟

我使用的Image檔案是目前最新的版本核心版本4.9,釋出時間是2017-08-06,包含桌面GUI的 版本。

指令安裝LIRC函式庫,這是大部分的人會使用的套件,這個套件可以輕鬆地複製你的紅外線的控制器的訊號,然後再從發射器傳送出來,Kodi的玩家很多人都使用這個套件進行紅外線遙控,

sudo apt-get update #更新起手式
sudo apt-get upgrade -y 
sudo apt-get install lirc # 安裝lirc

接下來修改/boot/config.txt 來去定義GPIO上面的腳位,指的就是Data是接在哪個GPIO上

sudo nano /boot/config.txt
增加這兩行指令
dtparam=gpio_out_pin=17 #紅外線發射器所接的GPIO
dtparam=gpio_in_pin=18 #同上,只是換成接收器
並且移除 dtoverlay=lirc-rpi前面的 #

再來修改/etc/modules裡面的文件


sudo nano /etc/modules ,並且增加下列指令

lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17

這邊就是重點,很多古早時候的網路教學,都會要到/etc/lirc/hardware.conf 這邊去修改設定值,但是如果你是August之後開始玩IR,到這邊就會小卡一下,因為根本不存在這個檔案,所以你也沒有辦法進去設定修改,實際要改成到 /etc/lirc/lirc_options.conf這個檔案進行修改。

sudo nano /etc/lirc/lirc_options.conf

修改紅色框框的值
driver = default
device = /dev/lirc0

建立 /etc/modprobe.d/ir-remote.conf 檔案
sudo nano /etc/modprobe.d/ir-remote.conf # 我不確定這個是否必要的步驟

加入以下命令
options lirc_rpi gpio_in_pin=18 gpio_out_pin=17

重新開機
sudo reboot now

重新開機完以後測試IR接收器
sudo modprobe lirc_rpi

若無錯誤訊息就可以準備開始了
sudo kill $(pidof lircd)

這樣子就可以開始測試紅外線接收器是否有收到訊號了。

mode2 -d /dev/lirc0

接著將遙控器朝著接受器按下任意鍵,這是視窗應該會出現類似像以下的訊號識別。

這就代表了訊號有吃到了。
irrecord --list-namespace|grep KEY # 這個可以列出被命名的按鍵定義。

就可以往下進行複製訊號的步驟了,按下Ctrsl + C退出,輸入指令
irrecord -d /dev/lirc0 ~/lircd.conf

按下Enter 繼續

這是LIRC會檢查是否有紅外線的噪音干擾,這時候請注意不要按下任何按鈕,這個程序會執行幾秒鐘而已

這邊請輸入你要給的這個遙控器的名稱(之前的版本並沒有這樣子的功能,都是直接透過呼叫lircd.conf去送key_power這些功能,但是現在LIRC,可以透過不同的命名方式,你可以同一時間擁有多支遙控器的IR,而且傳送的指令也更為簡單,後面會說到。)
我給這個遙控器的名稱就叫做philips

按下Enter開始,這邊要按下不同的按鈕,並且直到畫面上的點點有兩行為止,每個按鈕的按下的持續時間不可以超過10個點點唷 !!!

這邊則是一直同一個按鍵,只要不要持續按壓著不放久好了。

這邊就可以輸入按鍵名稱,在後面你要irsend出去的時候,最後面所輸入的就是這個名稱,這個名稱是有規則的,請參照上面的namespace 那邊,按照列出的名字去定義

定義完以後就按下你要複製的遙控器的按鈕,按下以後直到以下這個畫面出現

這樣子就完成了,一個按鈕的複製,如果你有很多個按鈕需要複製的話,就繼續輸入你的按鈕名稱,然後複製,如果你已經不需要再進行複製,就直接按下enter。

接下來挑一個按鍵持續地案壓,直到看到Successfully written config file xxxxx.lircd.conf,就代表著系統就會自動產生xxx.lircd.conf檔案在你的home的目錄下面。

複製剛剛產生出的conf到 /etc/lirc/lircd.conf.d/這個資料夾下面。

重新開機。

sudo reboot now

可以使用irsend 的指令去送訊號出去了。(philips 是代表前面的你給遙控器的名字)

irsend SEND_ONCE philips KEY_POWER

沒有任何錯誤的話,就應該是可以工作了!!!(如果不行,請到/etc/lirc/lircd.conf 這裡面,多加上一條命令)

include "lircd.conf.d/*.lircd.conf"




























留言

張貼留言

熱門文章