2010年2月28日 星期日

WinLIRC : 利用家用遙控器控制電腦(1)

2010年2月28日 星期日
從小就對一支小小的遙控器可以遙控各種電器用品、玩具 ...... 感到神奇,也認為那應該是一種藏著很高深學問的東西。可不可以也利用家用遙控器來控制電腦呢?兩、三年前找網路上看到一篇有關紅外線接收器製作的文件,下載後儲存在桌面上,由於不是電子科班出身,當時有些東西實在搞不清楚,因此就這樣擱著。後來又在 MOBILE01 看到了這一篇 [WinLIRC電腦萬用紅外線遙控器],今年寒假總算找時間去光華商場把 WinLIRC 紅外線接收器的零件買齊,並把它實作出來。




WinLIRC 紅外線接收器用到的電子零件只有五樣,加一個 9 pins 的 RS-232 接頭和少許導線即可搞定,沒有複雜的電路,連電路板都不用。只要照上述的文章,按圖索驥即可。花多少錢呢?
  • 6038LM 紅外線接收模組:25元
  • LM78L05 穩壓 IC: 7元
  • RS-232 DB9 的母端子: 5元
  • DB9 的保護殼:5元
  • 1N4148 二極體、電解電容 4.7uF/50V、電阻 1/4W 4.7K歐姆:不到 5 元
加一加不到 50 元。

前述的硬體負責的工作是幫我們把紅外線遙控器發出的訊號傳給電腦,至於電腦接收到以後可以執行哪些指令則是看軟體怎麼處理了。軟體的部份有許多的選擇,我試過的方案有:
  1. WinLIRC + WinLIRC_Helper
  2. WinLIRC + AutoHotKey
  3. uICE (30天試用)
  4. Girder5 (30天試用) + IgorPlug
  5. Girder3.29 + IgorPlug
方案 1 和 2 的好處是,用的軟體通通是可以免費取得並使用的, WinLIRC 負責由 RS-232 接收遙控器的訊號並判斷是哪一個按鈕被按下,而 WinLIRC_Helper 或 AutoHotKey 則可以讓我們指定哪一個按鈕要對應到鍵盤的哪一個按鍵、或是滑鼠的什麼按鍵,甚至是執行什麼系統指令......。尤其是 AutoHotKey 功能強大,可以讓我們自己寫巨集,隨心所欲的去控制電腦。
但是 WinLIRC 有個小缺點,它的遙控器按鈕學習功能很明顯沒有其它新出的軟體來得容易,而且它一次只能辨別一支遙控器,如果只是單純的用來遙控電腦應該是夠用,如果想要應用在 類似「按按按」的 IRS 則會較困難。

方案 3 中的 uICE 和方案 4 中的 Girder5 有提供 30 天的試用,時間到了要花錢買授權才能繼續使用,不過,用起來會最簡便、順手。

方案 5 使用的是免費版的 Girder 3.29 加上另一位好心人士寫的 Girder Plugin ─ IgorPlug,它具有以下的優點:
  • 可以免費使用軟體
  • 支援同時使用不同的遙控器
  • 遙控器學習的方法較簡單
  • 按鈕的功能的設定較容易上手

下載與安裝

先下載

IgorPlug 網站中有好幾個版本,如果是按 WinLIRC 的電路圖設計的接收器,就下載名為 「IgorPlug」 的,千萬別選到 「IgorPlugXP」 了,因為它需要改電路。


安裝 Girder

將下載回來的壓縮檔解開,執行 girder329.exe 即可開始進行安裝程序。


安裝 IgorPlug

1.先將下載回來的壓縮檔解壓縮,然後把裡面的 IgorPlug.dll 複製到 Girder 安裝路徑的 plugins 目錄 (例如: c:\Program Files\girder32\plugins\ )

2.啟動 Girder

3.按主選單 [File] → [Settings] 然後點選 [Plugins]

4.在右邊清單中找到 [Igor SFH-56 device] 以後用滑鼠點選


5.勾選好了以後按 [Apply] 按鈕先套用,這樣才能馬上進行設定


6.勾選左上角的 [Auto Enable input device] ,讓 Girder 以後可以自動載入這個 Plugin


7.按 [Setting] 的按鈕進入 "Igor Config" 的設定視窗


8.然後看紅外接收器是接在哪一個 port ,選取 COM port,而 [Input Signal] 則要選取「DCD」。


設定完就可以按 [OK] 結束。


讓 Plugin 生效

改完 Girder 的 Plugin 設定,別忘了讓 Girder 重新讀取設定,方法有兩種:
可以先點選主選單 [File] → [Disable Input Devices] ,Girder 視窗右下角應該會變成「藍色」的狀態燈號。然後再點選 [File] → [Enable Input Devices],Girder 視窗右下角應該會變成「綠色」的狀態燈號。
另外一種方式則是先按一次 [F9] 鍵讓狀態變成「藍色」,再按一次 [F9] 鍵讓狀態變成「綠色」。
 

 



完成後就可以利用 Girder 來指定遙控器按鍵的功能了。

我做了一個針對 PowerPoint 而設計的設定檔,可以參考看看。


後記:

前述的 IgorPlugin 的設定在我的班級電腦上一直有問題,有時可用,有時不能用,嚴重時甚至會讓 Windows reboot,各種方法都試過了,找了幾天,終於試出可能的問題所在。如果有類似的狀況,可以在 Igor 的設定視窗中
  1. 按 [Advanced] 的按鈕,展開進階選項。
  2. 將 [Allow Ring0 priority] 的勾勾取消掉。
  3. 將 [Priority level] 改為最高值的 [8]
照作者網站的說明, [Allow Ring0 priority] 應該是可以讓 Girder 處理紅外線訊號時可以更順,但是在學校的班級電腦上反而會讓系統不正常。而且 [Allow Ring0 priority] 取消以後,每次按 [Apply] 按鈕或是 [Enable Input device(s)] 時也比較不會「頓一下」。

5 則留言:

  1. 請問您有給Girder 3.29 或 3.38用的WinLirc plugin檔嗎?一直找不到...

    回覆刪除
  2. 您實在太可愛了,這一篇 post 的標題是?
    IgorPlug 就是您要的啦!

    回覆刪除
  3. 不知老師在IThome中提到的遙控器是買什麼廠牌的?價格多少?在何處買?感謝您的分享!受益良多!!

    回覆刪除
  4. 樓上這位朋友您好,
    iThome 那篇裡,記者的報導有兩個錯誤:
    其一是我兼任 "系統管理師" 五年,"資訊組長" 三年,而不是資訊組長八年。
    另外,我給學生玩 IRS 的遙控器是學校的,不是自己買的。
    那個遙控器是原來按按按系統(EZClick) 套件中的,簡單,好用,但是價格滿貴的,印象中問到的價格是一個五、六百元(有一點誇張),而且它一次是賣五支一組。建議可以先用一般遙控器試試即可。

    回覆刪除
  5. 請問一下老師,有沒有辦法寫C#或是VB程式
    去跟Girder作連結,讓遙控器可以遙控自己寫的程式?

    回覆刪除

 
雄::gsyan © 2009. Design by Pocket