全志A20[android教程]-紅外遙控器調試

來源:互聯網
上載者:User

第1章 前言
要在樹莓派3 (A20)android系統上實現紅外遙控器,因為super3上有紅外接收頭,所以可以直接支援紅外遙控器,可以把樹莓派3應用到家庭控制當中。當作網路機頂盒用
樹莓派3的紅外遙控器,還有滑鼠功能,也就是它可以代替的部份的滑鼠功能,因為在有些軟體,不支援純遙控支援,必須要滑鼠箭頭去它按鈕的,就可以用到這個功能了

只要輕輕按一下右下角這個“箭頭”按鈕,就可以用方向鍵來控制滑鼠箭頭了

遙控器的購買連結

http://item.taobao.com/item.htm?&id=37686098339


第2章 硬體相關
2.1電路原理圖
樹莓派3的紅外接收頭對應的IO口是PB4,如


2.2 實物圖
板子上的紅外接收頭位置
遙控器外觀和對應編碼注意,上面的客服碼,ff是高8位,00是低8位,所以add_core=0xff00;

第3章軟體修改3.1 修改fex設定檔(sys_config.fex) 修改superoid\lichee\tools\pack\chips\sun7i\configs\android\smfy-super3\sys_config.fex 如下項

[ir_para]ir_used             = 1ir_rx               = port:PB04<2>
配置PB04作為紅外輸放腳(匹配我們內部的驅動)。
3.2 修改kernel3.2.1 修改ADDR_CODE 在檔案lichee\linux-3.4\drivers\input\keyboard\ir-keymap.h中,根據自己的遙控器的地址碼修改如下代碼
#define IR_ADDR_CODE (0xff00)譬如說,如果地址碼為0x7f80,則修改成
#define IR_ADDR_CODE (0x7f80)
如果發現無效,則將兩個位元組的值交換一下位置,修改成
#define IR_ADDR_CODE (0x807f) 本教程所針對的這個遙控器地址碼是 0xff00
3.2.2 修改sun7i-ir.c修改lichee\linux-3.4\drivers\input\keyboard\sun7i-ir.c 檔案

if(SCIRPT_ITEM_VALUE_TYPE_INT != script_get_item("ir_para", "ir_wakeup", &ir_wakeup)){                         pr_err("%s: ir_wakeup script_get_item error. \n",__func__ );                        ir_wakeup = 0;         }         if(SCIRPT_ITEM_VALUE_TYPE_INT != script_get_item("ir_para", "power_key", &power_key)){                         pr_err("%s: power_key script_get_item error. \n",__func__ );                        power_key = 0x4d;         }         if(SCIRPT_ITEM_VALUE_TYPE_INT != script_get_item("ir_para", "ir_addr_code", &ir_addr_code)){                         pr_err("%s: ir_addr_code script_get_item error. \n",__func__ );                        ir_addr_code = 0xff00;  //----這裡重新指定了code,所以,修改了上面的 IR_ADDR_CODE,還要改這裡才會生效          }

3.2.3 編譯kernel 在lichee目錄下執行 #./build.sh–p sun7i_android編譯核心 然後在android42目錄下#extract-bsp 拷貝sun7i-ir.ko到module目錄
3.2.4 手動調試(新手可跳過)Step1: 樹莓派3進入android系統,串連USB線到PC上,通過adb命令進到PC# adb shellStep2: 在adbshell裡,# rmmod sun7i-ir.ko卸載原來的驅動Step3: 拷貝新編譯的sun7i-ir.ko到super3根目錄PC# adb pushC://sun7i-ir.ko /Step4: 再次adbshell進到super3裝置命令列,#insmod sun7i-ir.ko手動載入驅動模組#getevent然後對著super3按遙控器,如果前面的地址碼改對了,那這裡就應該看得到按遙控會有key event列印出來,這就表示android底層已識別出了遙控器了,向上發了event了,此時可以放心地進行下一步
3.3 修改kl檔案 3.3.1 修改sun7i-ir.kl 檔案superoid\android42\device\softwinner\smfy-super3\sun7i-ir.kl檔案針對前面2.3章裡的圖2.3 紅外遙控器碼錶
key 64   BACK               WAKE_DROPPEDkey 4    MENU               WAKE_DROPPEDkey 85    DPAD_CENTER        WAKE_DROPPEDkey 22   DPAD_DOWN          WAKE_DROPPEDkey 70   DPAD_UP            WAKE_DROPPEDkey 6   HOME               WAKEkey 71    DPAD_LEFT          WAKE_DROPPEDkey 21   DPAD_RIGHT         WAKE_DROPPEDkey 16   VOLUME_UP          WAKEkey 20   VOLUME_DOWN        WAKEkey 24   POWER              WAKEkey 12   0                  WAKEkey 84   1                  WAKEkey 72   2                  WAKEkey 7   3                  WAKEkey 80   4                  WAKEkey 18   5                  WAKEkey 17   6                  WAKEkey 76   7                  WAKEkey 14   8                  WAKEkey 13   9                  WAKEkey 8   MUTE               WAKEkey 86   PROG_RED           WAKEkey 91   PROG_BLUE          WAKEkey 87   PROG_GREEN         WAKEkey 31   PROG_YELLOW        WAKEkey 23   MOUSE              WAKEkey 75   DEL                WAKE

3.3.2 調試(新手可跳過) 如果是android老手,這個時候,可以手動調試一下,以保證這個地址碼是對的,可以立即看得到修改的效果Step1: 通過USB串連樹莓派3,PC上cmd進命令列, PC# adb push C:// sun7i-ir.kl/system/usr/keylayout/上面命令的前題:我們已把sun7i-ir.kl檔案放在了PC的C盤根目錄下 如上命令是把sun7i-ir.kl檔案拷貝到super3的/system/usr/keylayout/目錄下替換原檔案 Step2: 重啟樹莓派3,進入android系統 此時應該遙控器已經可以用了,可以用上下左右鍵進行選擇。
3.4滑鼠功能支援
修改build.prop檔案 進入super3的終端命令列修改如下項
ro.softmouse.left.code=71ro.softmouse.right.code=21ro.softmouse.top.code=70ro.softmouse.bottom.code=22ro.softmouse.leftbtn.code=85

第4章 編譯打包
#make –j4 編譯到系統#pack打包img
大功告成了
http://item.taobao.com/item.htm?&id=15301429836


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.