近段時間在家DIY咱的屌絲版智能小車(總預算小于100),想復用我家三星電視遙控器來遙控我的智能小車,本來以為很簡單的事情,結果弄了幾天沒弄好,各種折騰,逼著我把現在市面最流行的幾種紅外解碼協議都研究了一把,最后實在沒招,把紅外收下來的方波下降沿全部打出來一看,發現是三星的紅外編碼規則竟然是自成一家,與國內主流的NEC 1621不兼容,害人不淺啊。后面在老外的網站上才找到資料,對于三星這種非主流選擇,真想罵娘,你丫的這不是沒事找事嗎,有標準不靠,非得不走尋常路。
這是我寫好三星紅外解碼程序以后,通過單片機收集到的遙控碼表,僅供參考:

智能小車還有幾個問題沒解決,暫沒時間折騰,先DIY一個PC遙控器出來玩玩:
主要的想法是,通過電視遙控器遙控電腦操作,紅外接收頭連單片機,單片機連PC,電路圖太簡單,不貼了,直接上個實物圖:

PC端從串口收數據,再去調控制指令。本來是想用node.js通過node-serialport擴展來讀取串口,但node-serialport 依賴一堆其它庫,其它庫又依賴其它庫,其它庫又依賴其它庫 ,其它庫又依賴其它庫 ,其它庫又依賴其它庫 。。。這樣直接導致用npm安裝半個小時下不完,話說國外npm可是飛快的,國內的孩子想干點有境界的事情真TMD傷不起啊。
后面在等npm的時間,我用vs2008自個寫了一個讀串口(從vcbase里抄的一個開源庫),調外部命令的程序,外部控制指令通過 nircmd.exe 這個犀利哥去執行。這個程序很簡單,100行代碼不到,npm沒下完,我的VC版本已經搞完了,讀一個配置:
config.ini:
test,RM:IRCode:0x65,nircmd.exe sendkey left press
test,RM:IRCode:0x62,nircmd.exe sendkey right press
test,RM:IRCode:0x60,nircmd.exe sendkey up press
test,RM:IRCode:0x61,nircmd.exe sendkey down press
test,RM:IRCode:0x68,nircmd.exe sendkey enter press
test,RM:IRCode:0x58,nircmd.exe sendkey esc press
test,RM:IRCode:0x8C,nircmd.exe exec show "C:\Program Files (x86)\XBMC\XBMC.exe"
音量靜音鍵 ,RM:IRCode:0x0F,nircmd.exe sendkey 0xAD press
音量調低鍵 ,RM:IRCode:0x0B,nircmd.exe sendkey 0xAE press
音量調高鍵 ,RM:IRCode:0x07,nircmd.exe sendkey 0xAF press
媒體下一曲目鍵 ,RM:IRCode:0x10,nircmd.exe sendkey 0xB0 press
媒體上一曲目鍵 ,RM:IRCode:0x12,nircmd.exe sendkey 0xB1 press
媒體停止鍵 ,RM:IRCode:0x46,nircmd.exe sendkey 0xB2 press
媒體播放/暫停鍵,RM:IRCode:0x47,nircmd.exe sendkey 0xB3 press
寫完以后,試了一下,控制可用,為了增加顯示效果,下了一個開源的媒體中心:XBMC,裝上以后一玩,NB,比我家那5000多門的三星液晶的控制界面好太多了,可以理解為一個增強版本的電視控制系統。
XBMC的主界面(網絡上找的圖,我的沒去截圖,大概差不多,我的是中文的,這個系統操控感一流,我沒仔細去找,有沒有更好的家庭媒體軟件)

全部搞完,享受的時候到了,躺在沙發上,通過遙控器輕輕松松在電視上用XBMC把我家電腦里的相片、電影、小視頻全都過了一遍,跟操作一個真實電視機完全一樣的體驗,那叫一個爽啊。哈哈。
計算一下總成本:

因為是原型系統,所以在面包板上測試,如果要搞成實用型的,可以省去電源、USB轉串口線,把面板板換成洞洞板,單片板用不著我這么高級的STC 12C5A60S2頂級單片機,用比較低級的那種,1塊搞掂,總成本應該在10元左右,如果還要繼續追求屌絲方案,可以連單片機都不用,直接把接收頭經過簡單處理焊在RS232口上,電源什么的都不用了,理論上2塊錢內搞掂(參考老外方案:www點cesko點host.sk/girderplugin.htm)。 注:以上價格均未考慮軟件成本。--俺怎么老想著軟件不花錢哩?這是嚴重不對的,自我鄙視一下吧
|