基于体感算法的新型蓝牙遥控器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随着三网融合[1]的推进,多功能电视机顶盒
已经进入了千家万户。电视除了能够收看电视节
目外,视频点播、浏览网页、多媒体游戏、视频通
话等功能也已经或即将被引入现代电视(或电视
机顶盒)中。因此,仅具有按键功能的红外线遥控
器已经无法满足如此众多的功能需求。为此,本
文在普通遥控器的按键功能上增加了体感模块
和语音模块,引入了体感控制算法,并以蓝牙协
议作为通信方式,设计了一款具有体感控制功能
的多功能遥控器。
1系统总体设计
系统总体设计框图如图1所示。系统以HL1010芯
片为控制核心,数字加速度传感器、数字陀螺仪和地磁计的数据通过I2C总线传至HL1010的8051微控制器,经过滤波和体感算法的处理,转化为主机服务端可用的数据,由HL1010的蓝牙控制器传至主机服务端。8051微控制器对键盘模块进行键盘扫描,将键值通过蓝牙发送至主机服务端外,还可以进行简单的音频压缩和解码,并通过蓝牙控制器和语音模块,完成遥控器和主机服务端的语音传输。遥控器中加入了E2PROM,用以存储程序和初始化数据以及蓝牙通信所需的重连信息。电源管理模块用以管理各个模块之间的电源,达到节能和延长电池使用寿命的作用。此外,串口接口为HL1010烧录程序的接口。
基于体感算法的新型蓝牙遥控器的设计
寇凡1,盛怀茂2,王直杰1
(1.东华大学信息科学与技术学院,上海201600;
2.汉凌微电子有限公司,上海200120)
摘要:提出了一种具有体感控制功能的多功能遥控器的设计方案。遥控器通过蓝牙与主机通信,数字加速度传感器、数字陀螺仪和磁力计的数据通过体感算法处理后,实现对空中鼠标以及体感游戏的控制。在此基础上,遥控器还加入了键盘和语音传输功能。经测试证明,该方案是可行的。
关键词:体感算法;蓝牙通信;遥控器
中图分类号:TN919.6+文献标识码:A文章编号:0258-7998(2012)04-0031-03 Design of novel bluetooth remote controller based on somatosensory algorithm
Kou Fan1,Sheng Huaimao2,Wang Zhijie1
(1.College of Information Science and Technology,Donghua University,Shanghai201600,China;
2.Hanlynn Technologies,Shanghai200120,China)
Abstract:A design of multifunctional remote controllor which has somatosensory function was proposed.It was connected with service though bluetooth.Data from a digital accelerometer,a magnetometer and a digital gyroscope was processed by somatosensory algorithm.Therefore,air mouse function and control of somatosensory video games were realized.Besides,keyboard input and voice function were added.And its feasibility was verified by a set of samples.
Key words:somatosensory algorithm;bluetooth;remote controllor
R is =cos θcos Ψsin φsin θcos Ψ-cos φsin Ψcos φsin θcos Ψ+sin φsin Ψ
cos θsin Ψsin φsin θsin Ψ+cos φcos Ψcos φsin θsin Ψ-sin φcos Ψ-sin θsin θcos θcos φcos !"""""""#
$%%%%%%%&
θ
(2)
表1传感器部分参数
传感器型号输出方式测量量程测量维数/轴输出位数/(bit/轴)
输出精度采样频率/kHz 通信方式
加速度传感器
LIS3DH 数字输出
2g/6g 可选量程
310
0.002g 或0.006g
1~5可选I 2C/SPI 可选
陀螺仪
L3G4200D 数字输出
±250/500/2000dps
316
最高0.008dps/bit
100/200/400/800可选
I 2C/SPI 可选
地磁计
MMC3120MR 数字输出
±2Gauss
3200.002Gauss/bit
400I 2C/SPI 可选
2硬件设计
2.1HL1010接口及外围电路
HL1010为蓝牙控制芯片,其特点是:除了具
有独立的蓝牙控制核心外,还集成了一颗8051微控制器核心;具有28个独立的GPIO ,两路语音输入输出通道;集成了I 2
C 和SPI 控制器,便于
外围设备的扩展;内部固化了键盘扫描固件,可以通过简单的寄存器读写完成键盘扫描。
利用HL1010的外围电路,其中,GPIO10~GPIO17作为键盘行扫描,GPIO30~GPI-O37作为键盘列扫描;GPIO20~
GPIO27为电源管理GPIO ,分别通过软件来控制加速度传感器、数字陀螺仪、地磁计、E 2PROM 、扬声器、振动电机
等模块的开关,以达到节能的作用;Pin44、45、48、49、50为语音模块接口,pin23、24为I 2
C 接口。其余引脚为芯片
的供电和射频匹配电路。HL1010的外围电路可参考文献[2]。
2.2传感器模块
表1为本设计中传感器的部分参数,三个传感器
都通过I 2C 总线与主控芯片进行交互,电路设计较为简单。
3软件设计
3.1体感算法
体感功能中最常用的是空中鼠标,即通过遥控器在空中的挥舞来控制屏幕中鼠标的运动,同时通过遥控器按键实现鼠标按键的操作,从而使用户能在远距离的三维空间中获得鼠标的操作功能。为了实现空中鼠标的功能,本文采用陀螺仪和加速度传感器。通过对陀螺仪得到的角速度数据分析得出遥控器的运动状态,作为空中鼠标的主要数据;通过对加速度传感器提供的加速度(主要是判断重力加速度的方向)数据进行分析,得到遥控器所处的姿态,从而对陀螺仪的数据进行坐标转换。陀螺仪所得数据中与重力加速度平行的方向为Y 轴,与重力加速度垂直的为X 轴,使最终空中鼠标的Y 轴与重力加速度的平行方向始终一致、X 轴与重力加速度的垂直方向始终一致。其数学方法如下[3-4]:
遥控器的加速度为a s ,大地系加速度为a i ,两者的转化关系为:
a i =a s R is (1)
其中,R is 为遥控器相对于大地系的余弦阵,其表达式为:
遥控器在大地系下的角速度则为:
β=T s ω=
1sin φtan θcos φtan θ0cos φ-sin φ0
sin φ
cos θ
cos φcos θ!""""""""""#
$%%%%%%%%%%&
ωx ωy ωz
!"""""""#
$%%%%%%%&
(3)
其中,β=[φθΨ]T 为O s x s y s z s 相对于O i x i y i z i 的欧拉角,
T s 为转换矩阵。
经过坐标转换后,无论使用者如何将遥控器握在手中(正握,反握,竖立,倒立等),空中鼠标的运动仅与使用者手臂的运动方向有关,而与遥控器的运动方向无关。
算法的主要流程为:(1)对角速度进行采样,并进行数字滤波;(2)对加速度进行采样,并进行数字滤波;(3)通过加速度传感器数据对陀螺仪的坐标轴进行旋转;
(4)计算鼠标两个轴的偏移量;(5)通过键盘扫描得到鼠
标按键键值;(6)通过HID 协议将键值发送给服务端。数
据流程如图2所示。
3.2状态机
软件通过状态机控制遥控器处于不同的工作状态。该状态机包括配对状态、重连状态、连接状态和休眠状态。遥控器状态示意图如图3所示。
(1)睡眠状态。系统开机首先进入睡眠模式,当按下任意按键(配对键除外)或者摇动遥控器时,遥控器被唤醒,如果遥控器中已经存有重连信息(最近一次与之配对的主机信息,包括BD Address 和Pin Code )并且电量足够则进入重连状态,否则继续停留在睡眠状态。在睡眠状态中,遥控器将关闭8051微控制器、蓝牙控制器、加速度传感器、地磁传感器、E 2PROM 、语音模块以及所有LED ,键盘和数字陀螺仪仍保持工作,但会降低采样频率,用作唤醒系统之用。
(2)重连状态。进入重连状态后,遥控器读取重连信