這篇是「1) 遙控器紅外線解碼」的第二部份。
使用 IRRecord 進行紅外線解碼
你可以用 WinLIRC 附的 IRRecord.exe 工具來為你的遙控器進行紅外線解碼。IRRecord.exe 的語法為:
IRRecord.exe -d SerialDevice.dll ..\BenQ.cfg上列是使用 Serial 介面的紅外線接收器的指令,如果你用的是 Audio 介面的紅外線接收器,指令為:
IRRecord.exe -d AudioCapture.dll ..\BenQ.cfg當解碼工作完成後,解碼結果將儲存在與 IRRecord.exe 同一個資料夾下的 BenQ.cfg 檔中。
解碼步驟
1) 執行 IRRecord.exe –d SerialDevice.exe ..\BenQ.cfg,WinLIRC 會顯示下列這段訊息提醒你在完成你的 Config 檔時記得要回饋到 LIRC 社群:
2) 按下「Enter」繼續,WinLIRC 提醒你要開始記錄遙控器的紅外線編碼了,請準備好你的遙控器:
3) 按下「Enter」繼續,接著拿起遙控器,然後對著紅外線接收器開始按遙控器。為了讓 WinLIRC 辨識遙控器所用的紅外線協定,你必須按遙控器按很多次:
▲ 遙控器每按一次會產生一個「點」或很多個「點」,當畫面上出現兩列的「點」的時候,辨識工作就完成了
接著會顯示底下這段訊息,代表要開始記錄遙控器各個按鈕的紅外線編碼了。
4) 先輸入要記錄的按鈕名稱(如 power),然後按下遙控器的按鈕:
照著這個步驟做,把遙控器的每個按鈕都記錄起來:
5) 當所有按鈕都記錄起來的時候,就按下「Enter」結束記錄工作,然後 WinLIRC 會顯示 "Checking for toggle bit mask … " 的訊息,這時候按下「Enter」,然後再按遙控器任意一個按鈕,要按很多次,直到出現 "Successfully written config file" 訊息為止:
6) 當你看到 "Successfully written config file." 這個訊息時,恭禧你!這代表你已經完成遙控器紅外線編碼的記錄工作了。這時會在 winlirc.exe 同一個資料夾下產生 BenQ.cfg 檔,我的 BenQ.cfg 檔案內容如下:
載入 Config 檔
完成遙控器的紅外線解碼工作後,接著請打開 winlirc.exe 主程式,並切到外掛設定的畫面,如下:
按一下「Browse」,然後輸入 Config 檔的路徑,如 C:\WinLIRC\BenQ.cfg:
按下「OK」,並按下主畫面「Hide Window」把 WinLIRC 縮小到系統工具列。
在一般閒置的狀態下,WinLIRC 的圖示是這樣:
當 WinLIRC 偵測到紅外線訊號,而且順利解碼成功時,圖示會瞬時間變成綠色的,像這樣:
電腦遙控測試
接著用 Media Player Classic 做個簡單的測試,看看能不能用遙控器來遙控 Media Player Classic 播放影片。
打開 Media Player Classic,然後點選單 View > Options > Player > Keys 打開底下這個設定畫面:
照上圖的指示,先勾選視窗下方的 WinLIRC 的 checkbox,再點兩下 Play 指令的 RemoteCmd,然後輸入 power。這個 "power" 要跟 WinLIRC 的 Config 檔裏的按鈕名稱匹配才行。
好了,先用 Media Player Classic 打開一部影片,然後現在可以拿起遙控器按下 power 鈕,Media Player Classic 就會開始播放影片了。如果一切順利的話,恭禧你,你已經入門,會用紅外線遙控電腦了。
LIRC 遙控器 Config 檔資料庫
用 IRRecord.exe 來記錄遙控器的紅外線編碼步驟有點繁瑣。其實這工作也不一定非自己做不可,因為 LIRC 已經收集了大量遙控器的 Config 檔,在用紅外線遙控電腦前,只要先到底下這個網址查查看有沒有合用的遙控器廠牌型號的 Config 檔,之後再決定要不要用 IRRecord.exe 自己錄紅外線:
您好!在之前就第一個紅外線文章就已經注意到了,直到近有看到您又發表新文章,但在紅外線又找到這一篇。在新的搖控器無法使用您發表文章中,小弟不材不是寫程式的料,只是喜歡您的發表文章,希望能幫助您。
回覆刪除http://www.ladyada.net/wiki/tutorials/learn/sensors/ir.html
第一篇紅外線文章? 你是指「紅外線遙控原理與 NEC IR Protocol」這篇嗎? 這篇我是在 2010/01 文章發表的耶,哇!你那時候就注意到了啊。:)
回覆刪除謝謝你的欣賞,也謝謝你提供我 IR 的資訊,這篇我讀完後如果有心得再來發表分享。
您好,不知您有沒有嘗試過骨頭先生提供的IR資訊,
回覆刪除我嘗試了很久仍然測試不出來,懇請您撥冗嘗試一下,
無理請求請多包含,謝謝
hi, 我沒試過骨頭先生提供的IR資訊。
回覆刪除好啊,不會的,我改天來試試看,不過最近工作有點忙,所以可能得等下禮拜之後才有空試。
你好!
回覆刪除我在記錄按鍵時出現了
"Something went wrong. Please try again. <9 retries left>"
請問是甚麼意思?
如何解決?
@C^3,
回覆刪除不好意思,我沒有遇過這個情況
也許你可以用 "Something went wrong. Please try again lirc" 當關鍵字找資料研究一下
作者已經移除這則留言。
回覆刪除這是我用遙控器按完兩列所出現的提示:
回覆刪除Space/pulse encoded remote control found.
Signal length is 37.
Found possible header: 8432 4182
Found trail pulse: 562
No repeat code found.
Signals are space encoded.
Signal length is 17
Now enter the names for the buttons.
請問這樣跟我出現
"Something went wrong. Please try again."這個問題有關連嗎?
新增問題:
還是是我遙控器的問題?
上面那個訊息是第 3 步驟「辨識遙控器所用的紅外線協定」會出現的正常訊息...
回覆刪除但是為什麼會出現 "Something went wrong. Please try again." 我就不曉得了
你試的是同一支遙控器嗎? 要不要換另一支遙控器試試看? 建議用電視遙控器不要用冷氣遙控器,因為電視遙控器的紅外線 code 比較單純
我之前用的搖控器是控制投影機的
回覆刪除然後在換成另一種遙控器後就成功了
或許就跟你說的一樣吧?
總之感謝!
不客氣
回覆刪除LIRC 網站有紅外線資料庫,如果解不出來,也許可以到哪找有沒所用遙控器的 code:
http://lirc.org/