展会信息港展会大全

全志A20[android教程]-红外遥控器调试
来源:互联网   发布日期:2015-09-28 15:57:58   浏览:6154次  

导读:第1章 前言 要在树莓派3 (A20)android系统上实现红外遥控器,因为super3上有红外接收头,所以可以直接支持红外遥控器,可以把树莓派3应用到家庭控制当中。当作...

第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= 1

ir_rx= port:PB04

配置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

赞助本站

人工智能实验室

相关热词: android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港