您好,登錄后才能下訂單哦!
這篇文章主要介紹了Cubieboard自帶的紅外接收怎么測試的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Cubieboard自帶的紅外接收怎么測試文章都會有所收獲,下面我們一起來看看吧。
首先,你要自己有編譯sun4i-ir.ko驅動,不過好像默認編譯就帶了這個驅動,所以,你們用的各個版本的內核應該都已經有驅動了,不過不一定自動加載了的。自己lsmod查看一下有木有,如果木有,就去驅動目錄下insmod一下(insmod /lib/modules/3.0.57+(換3.0.57+為你的內核版本)/kernel/drivers/input/keyboard/sun4i-ir.ko)
先看看驅動信息,和被加載的位置:
如果無誤,那就可以直接使用了~
要強調的是:請使用家里的電視機遙控器來測試,因為我試過空調遙控器,因為頻率不對,接收不到,完全沒反應。
先看看紅外接收設備被加載在哪個位置,它其實是被當做鍵盤設備來加載的,當接收到信息的時候就會產生系統事件,所以我們只要查看這個設備產生的事件就好了。嗯,是input1,經測試,該事件的系統路徑應該在/dev/input/event1
現在我們直接來在命令行里查看接收到的信息被解碼后的數據,因為直接查看的話,一堆二進制0101在命令行里展示出來就是亂碼,所以我使用hexdump將其轉換為16進制查看。
看到了吧,收到的信息就是這些,你買個遙控器,把每一個鍵的信息記錄下來之后,就可以寫程序監聽這些信號,實現遙控板操控CB了,哈哈
最后解釋一下我猜測的 信號解讀,比如:
00003f0 0b7f 0000 312b 0007 0000 0000 0000 0000
0000400 0b7f 0000 861b 000a 0001 005b 0001 0000
0000410 0b7f 0000 8621 000a 0000 0000 0000 0000
0000420 0b80 0000 a199 0000 0001 005b 0000 0000
0000430 0b80 0000 a19e 0000 0000 0000 0000 0000
0000440 0b80 0000 d641 0005 0001 005b 0001 0000
0000450 0b80 0000 d646 0005 0000 0000 0000 0000
0000460 0b80 0000 502c 000b 0001 005b 0000 0000
0000470 0b80 0000 5031 000b 0000 0000 0000 0000
0000480 0b81 0000 6b30 000b 0001 005b 0001 0000
0000490 0b81 0000 6b36 000b 0000 0000 0000 0000
00004a0 0b82 0000 8c76 0001 0001 005b 0000 0000
00004b0 0b82 0000 8c7b 0001 0000 0000 0000 0000
00004c0 0b82 0000 6927 0009 0001 005b 0001 0000
00004d0 0b82 0000 692c 0009 0000 0000 0000 0000
00004e0 0b82 0000 d320 000e 0001 005b 0000 0000
00004f0 0b82 0000 d325 000e 0000 0000 0000 0000
0000500 0b84 0000 6dc5 0005 0001 005b 0001 0000
0000510 0b84 0000 6dcb 0005 0000 0000 0000 0000
0000520 0b84 0000 dbd7 000a 0001 005b 0000 0000
0000530 0b84 0000 dbdc 000a 0000 0000 0000 0000
這是我反復按下和放開同一個鍵得到的信息,首先,可以確認的是,當你按下一個鍵,會產生一組信號,當你的紅外移出IR的接收范圍或者放開按鍵,又會產生一組信號。
我來截取其中4組信號來分析:
00004c0 0b82 0000 6927 0009 0001 005b 0001 0000 #這兩行是第1次按下時產生的
00004d0 0b82 0000 692c 0009 0000 0000 0000 0000
00004e0 0b82 0000 d320 000e 0001 005b 0000 0000 #這兩行是第1次放開時產生的
00004f0 0b82 0000 d325 000e 0000 0000 0000 0000
0000500 0b84 0000 6dc5 0005 0001 005b 0001 0000 #這兩行是第2次按下時產生的
0000510 0b84 0000 6dcb 0005 0000 0000 0000 0000
0000520 0b84 0000 dbd7 000a 0001 005b 0000 0000 #這兩行是第2次放開時產生的
0000530 0b84 0000 dbdc 000a 0000 0000 0000 0000
首先拋開第一列(紅色部分),那是hexdump打印出的解碼后的信號的內存地址。
第二列,應該是每次按下和放開是相同的值,第二次按下就會+2,那我們可以理解為每一次按鍵產生信號的自增ID,如果多個遙控器在給他發信號,你接收信號可以不會亂,因為某次按下和放開的值始終相同。
第3列,不清楚,可能是第二列的擴展,或者是第4列的開始(前半部分)
第4、5列,看不懂了。。都是同一個鍵。。這些變化的數據肯定和鍵的值無關
每次按下同一個鍵的時候,不變的部分,就是后面4列了。而且我按完所有的鍵,每一組(兩行)的第二行后4列始終是0.
那么是不是可以理解為,每一組第一行的數據后4列:
0001 005b 0001 0000 表示我遙控器上的xx鍵被按下
0001 005b 0000 0000 表示我遙控器上的xx被按放開
則0001 005b代表我的鍵的標示符,0001 0000 表示被按下 0000 0000 表示被放開
再進一步想,0x10000換成十進制就是65536 。應該沒有人會用65536 表示按下 然后 0表示放開吧?
所以后面4個0應該也不用管,可能有其他用途把,那么0001就應該表示被按下, 0000表示放開。
關于“Cubieboard自帶的紅外接收怎么測試”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Cubieboard自帶的紅外接收怎么測試”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。