http://forum.netcontrol.tw/viewtopic.php?f=35&p=117
什麼是 WinLIRC
WinLIRC是一個以 LIRC為基礎而在Windows環境發展出來的模組, 而什麼是LIRC呢...它其實是 Linux Infrared Remote Control的縮寫, 本來是在Linux下所發展出來的一個紅外線的遙控模組.詳細請參閱http://www.lirc.org
為什麼用 WinLIRC
市面上有很多給PC用遙控器.為什麼獨鍾WinLIRC呢..原因是
1. 它是免費的.
2. 它使用的線路及零件非常簡單, 不用花太多的金錢(基本上不會超過50元台幣)
3. 它可以使用大部分的現有遙控器(你可以買一支300元的KTV專用遙控器也可以直接用你的電視遙控器來當WinLIRC的遙控器)
4. 它可以記錄(學習)N支遙控器.
5. 它可以用網路來遙控遠方的程式.
線路
WinLIRC可以用很多不同的電路來達到遙控的目的(當然都要透過RS-232C), 而我們就找最簡單的電路來製作就可以用了, 零件非常少(比對岸的某的電路都要少很多).
現在就來看看電路圖(電路是由 LIRC.org的設計)
右方RS-232C 對應D9 的接腳是
DCD ------- Pin 1 信號輸入
RTS ------- Pin 7 電源供應 Vcc
GND ------ Pin 5 接地
註: 圖面上的紅外線接收器我已經改成台灣比較容易買到的6038LM-5A了, 當然如果你有其它接收能力更好的相容接收器, 也可以使用.
零件如下:
1. 6038LM-5A 紅外線接收
2. 電解電容 4.7uF/50V
3. 1N4148 二極體
4. 電阻 1/4W 4.7K歐姆
5. LM78L05 100mA穩壓IC
6. RS-232 D9 母頭一個
接頭上有標明第幾Pin, 只用到 1, 5, 7 3個支腳
7. D9接頭外殼一個
8. 網路線一小段(只要3Pin的線即可)
其中 6038LM 找一下DataSheet 得知腳位為:
Pin1 : Vout .... 信號輸出
Pin2 : GND .... 接地
Pin3 : Vcc ..... +5V
來源:http://www.100y.com.tw/pdf_file/FM-6038LM-5A.pdf
而 78L05 是所謂 TO-92封裝, 腳位說明如下圖:
來源 :http://www.national.com/ds/LM/LM78L05.pdf
因為零件很少而且電路簡單..所以也不需使用萬用板.可以直接焊在RS-232 D9 接頭內.
軟體的部分. 首先請到 WinLIRC的首頁去下載WinLIRC的程式
版本是 0.6.5 載點:http://prdownloads.sourceforge.net/winlirc/winlirc-0.6.5.zip?download
解壓縮後將 WinLirc.exe及Sample.cf 這兩個檔案放到c:/WinLIRC 底下(自行開個資料夾 如c:/WinLIRC)
把我們製作的硬體裝上Com埠 (Com 1 或 Com 2)
直接執行 WinLirc.exe 出現
請按解除封鎖繼續
再出現
第一次執行會這樣..按確定, 然後會看到下面的畫面
首先把Port欄位設定成你的COM埠, 下拉式選單可以選到COM8, 如果超過, 可以直接輸入即可不用理會選單.
硬體測試
測試硬體工作正不正常, 設定好COM埠後
按下下方 Config 右方的 Browse... 鈕. 選擇 Sample.cf 檔
再 按下右方的 Raw Code鈕 會出現一個叫 Learn Rmote的視窗. 然後隨便拿著一個遙控器對著 6038LM的接收窗按按看. 如果 那個 視窗會隨著按鈕而出現一堆pulse , space...(如下圖) 那麼硬體己測試成功..請關閉這個視窗, 接下來可以開始學習遙控器了.
學習遙控器
回到主視窗後.要開始遙控器學習了..
首先我們要開一個新的檔案來學習, 在下方 Config 的檔名處改個檔名 (如 Test.cf)
再按下 Learn 鈕
學習步驟
1. 按下 Learn之後出現下面的畫面, 請輸入遙控器的名稱後按 Enter鈕
2. 接下來有2個畫面, 要輸入遙控器的特性, 因為我們並不知道..所以我們都直接按Enter讓WinLIRC自行檢查
3. 接下來這個畫面, 請按下想學習的遙控器上的某一按鍵, 然後按照上面的指示需要按10次左右
按了鍵, 系統抓到, 請你再按一次
有沒有看到中間有句 "Did not get....." 表示這次按的不成功, 還要再按一次直到出現10Left
出現10Left表示要再記錄10次..那麼..就按吧
這個步驟主要是讓WinLIRC了解這支遙控器的特性, 如果一直不成功..可能是你的遙控器碼太複雜(通常有些日本的遙控器會有這個現象), 換一支吧. 如果錯誤太多..系統可是會出現錯誤太多訊息, 而回到主選單的喔.
備註:按鍵時可以稍稍按久一點..成功率會高一點.
4. 再來開始要學習按鍵了喔.
先輸入想學習的按鍵名
再來按下想學習的按鈕..會出下圖的畫面, 其中有個 matches=?, faults=?
也就是說要每個按鈕要按到matches=7 才行..所以要多按幾次
經過7次成功match後..出現是否要Keep這個按鍵, 當然是按 是
接下來又回到第4的步驟開始, 輸入第2個鍵的按鍵名..
依此類推把所有的接鍵全都學習完為止.
最後還是會回到輸入按鍵名稱的畫面, 如果已經學習完畢了, 則不需要輸入任何名稱直接按Enter即可
5. 當結束按鍵的學習後, 系統會請你不要忘了按 analyze 鈕 來整理剛剛學習的資料
6. 所以我們當然照著作 成功會出現以下的畫面
學習的動作已經完成
請在主畫面 按下 OK 鈕, 這時WinLIR會自動跑到右下方變成一個圓形圖示去, 此時如果按一剛剛學習的遙控器的鈕, 你會發現 WinLIR的圓形圖示會變綠色的. 這表示遙控接收正常.
接下來, 我們要來測試一下剛剛學習的按鍵了, 請按 開始鈕, 再選執行(如下圖), 輸入 telnet localhost 8765
會出現一個 Telnet的視窗..現在按一下剛剛的按鍵看看. 你會發現Telnet視窗內會有 按鍵碼-按鍵名-遙控器名.....表示成功.
現在我們已經完成一支遙控器了, 如果要再學習另一支遙控器那麼請重新再來一次即可
但要注意的是. Config的檔名不能一樣, 不然原來的遙控器資料會被蓋掉.
也就是說學習的時候是一個遙控器一個檔案.
而是不是可以同時使用2個以上的遙控器呢, 當然也是可以的.
其實所有的遙控器檔案都是文字檔, 所以你把副檔名設定成.txt也可以.
你只要打開每個遙控器檔, 把從 begin remote 一直到 end remote 全部複製到另一個檔案內.
然後把那個檔案存檔, 再執行WinLIRC, 用 browse... 鈕 選擇那個檔案即可.
當WinLIRC正確運作後..以後直接執行WinLIRC即會自動載入最後的那個Config檔, 並自動縮到右下方在背後默默的工作著.
在JetKTV使用 WinLIRC遙控器
首先請把JetKTV.ini 檔案內 [WinLirc]區中的 Enable 設為 Yes
[WinLirc]
Enable=Yes
Host=localhost
存檔後執行JetConfig
再到設定鍵盤及遙控器的功能內按下學習鈕, 即可一個一個按下遙控器鈕把功能給設定好了.