嵌入式系统的多维蓝牙HID激光鼠标设计*
2017-04-19刘浩宇侯政旭郝白东
刘浩宇,侯政旭,郝白东
(黑龙江科技大学 电子与信息工程学院,哈尔滨 150022)
嵌入式系统的多维蓝牙HID激光鼠标设计*
刘浩宇,侯政旭,郝白东
(黑龙江科技大学 电子与信息工程学院,哈尔滨 150022)
系统基于嵌入式ARM Cortex-M3系列芯片,采用激光感应器件、加速度计、二维操作杆等对数据进行实时采集。激光感应器件对平面移动数据采集,结合了加速计对手部姿态计算,计算的移动数值通过蓝牙HID发送到PC机,省去不便携带的接收器。其可实时更新到电脑的屏幕上,光标会跟随人手部移动的方向而移动,实现鼠标办公、演讲多平面维度使用。
多维鼠标;激光传感器;BlueCore-04;HID;Cortex-M3
引 言
随着通信网络及控制技术的提高,新兴技术也逐渐融入到日常生活之中。一直以来,电脑鼠标的存在具有普遍性,但普通的有线光电鼠标对平面要求高,无法在任意平面使用,在需要教学等空间中操作不便,在一定程度上限制了人们对电脑的操纵范围,不能给更多电脑用户提供更方便的服务。与普通2.4 GHz鼠标相比,使用蓝牙HID接口,可省去接收器的硬件接口,可轻松与PC、平板电脑、智能手机等蓝牙设备连接。由于常见空中鼠标定位难,因此将激光传感器融合参与加速度校偏,能得到较好数据值。
在移动办公的时代,人们早已将移动PC设备作为日常轻办公的首选,随着电子设备的成本降低,在硬件上提供丰富的外设接口,如蓝牙、红外等基础接口。并且随着3D行业的发展,人们对显示效果的追求不断提高,要求身临其境,传统的鼠标控制器已不能满足人们对真实体验的追求了[1]。人们在玩游戏时常常会随着游戏画面的更迭而左右摇摆、摆动手脚,此时,人们便把手中的鼠标当成一个实体操控器,尽情娱乐[2]。
本文首先研究了蓝牙协议栈相关内容,讨论了蓝牙HID的实现方式;通过不断修改激光感应器件,实现空中鼠标应用激光辅助加速度矫正,平面鼠标使用加速计对位移值矫正,空中鼠标采用摇动替换滚轮编码器。经过产品需求分析,常见空中鼠标具有位移飘、定位难等人工操作缺陷,因而本文设计采用空中鼠标差速操作模式,在精准点击时使用慢速摇杆进行精准移动,大幅度跨越平面使用陀螺仪轻松跨越大幅平面,对相关嵌入式系统技术进行了研究,完成了系统总体方案的设计。
1 基于ARM Cortex-M3的软硬件框架设计
图1 系统软硬件框图
新一代ARM Cortex-M3的32位处理器性价比非常高,有很广阔的应用前景。[3]系统分为数据处理和发送两部分,数据处理端又分为平面控制和空间控制两部分,平面控制使用激光传感器采集平面偏移值,融合移动速度影响的偏移干扰。空间控制使用加速计解算手部转动姿态,激光传感器对图像偏移量融合,减少位置偏移量。结构图如图1所示。
1.1 激光传感器
激光传感器选用的是Avago Technologies(安华高科技)的ADNS-9500,它是一款高性能激光导航传感器,通过比较两图片使用STM32F103的内部高速DMA外设,可以访问ADNS-9500的数值变化。
ADNS-9500拥有功能强大的导航处理引擎,可以提供超高速移动检测和高达150 ips(1 bps=inches per second 英寸/秒)的高速运动检测,ADNS-9500可以使用SPI串行外设接口进行数据通信,而 STM32F103内部集成高速SPI协议,数据传输速率最快可达18 Mbps;可对 X 轴 Y 轴进行独立的分辨率设置,可以对不同场景进行编程处理,如ATM取款机,降低相应使用轴的分辨率,从而减少主控负载,降低功耗。
使用Motion_Burst突发模式可提高通信时延时时常,极大程度地提高传输速率;且激光传感器响应速度优于传统光学鼠标,激光对平面处理能力优于传统光学传感器,平面兼容性测试如图2所示。
图2 ADNS-9500平面兼容性图示
1.2 加速度计及陀螺仪
美国Invensense公司的MPU-6050为整合性6轴运动处理组件,MPU-6050可以使用I2C总线进行读取,自带DMP高速运动引擎直接输出四元数,降低微处理器的工作负担,数据转化后会产生中断信号通知CPU从而降低CPU采集次数,提高转换速率,且具有成本低、市场应用广等特点[4]。MPU-6050对人的手部转动进行结算,经芯片使用DMP库处理分析,得到优化降噪的原始数据,转换成为可读的移动数据。使用手腕摆动的数据及多姿态角度融合后,可适应不同握姿,结合蓝牙HID无线传输直接传送到PC端及安卓智能终端。利用差速摇杆运动,可实现高低速定位转换,同时实现单击双击及空中翻页等功能。设计具有体积小 、重量轻、功耗低、可靠性高、易于集成和实现智能化等特点[5]。
本文设计的多维鼠标对不同平台进行二维三维两用变换,通过DSP高速处理器融合算法,在不同表面均可自适应。
1.3 蓝牙HID基础简介
蓝牙无线技术是一种短距离的连接便携且可固定电子设备的传统线缆替代技术。这种技术的特点是高效、低功耗、低成本[6]。The Human Interface Device (HID)协议规范是专为USB人机交互设备开发的[7]。HID协议定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等蓝牙链路控制器,其有2个主要状态:待机(STANDBY)和连接(CONNECTION)状态[8],以英国Cambridge SiliconRadio(简称CSR)公司生产的BlueCore-04蓝牙芯片作为研究对象,以蓝牙1.2协议栈为设计指导,提出基于蓝牙HID协议栈的鼠标读取数据采集实现[9]。HID是蓝牙设计中人性化接口设备的简称,基于BlueCore-04芯片,更改协议栈实现方式,本设计基于CSR公司芯片所提供的蓝牙HID解决方案,底层源码及固件库均由厂家提供,自主设计完成上层应用设计。
2 实现原理
2.1 系统工作原理
本设计采用STM32F103芯片负责数据融合及姿态结算,通过蓝牙HID将数据发送到PC机或智能设备。在桌面时,STM32F103将SROM固件下载进入ADNS-9500传感器,然后发送指令唤醒激光传感器,将传感器数据读回,同时读回加速计平面加速度,将回执数据融合处理后,通过蓝牙HID协议发送至移动端。在空中使用时,用MPU-6050使用DMP库引擎快速读取四元数,通过内置高速FIFO滤波器及互补滤波器后,通过四元数的AHRS航角姿态解算法换算得到最优姿态,发送至移动端。
通过对不同数据的实时处理,实现空中平面两用鼠标设计,同时设计可叠形3D打印工学折叠外壳,在应用于不同平面时使用不同握姿过渡。
2.2 蓝牙HID协议实现
蓝牙设计采用CRS公司的BlueCore-04,采用Bluelab-SDK开发包专门对上层应用进行开发。符合蓝牙3.0+EDR标准并遵守HID Profile 1.1规范,将蓝牙HID设置为默认主设备,直接连接无需加密。
主要对协议说明如下:
① HID_Init_RC:在收到消息说明之后,初始化自定义的HID结构体,并尝试重新连接上次连接的主机;
② HID_Connect_CMD:连接请求位,收到消息后,判断是否处于空闲状态,若空闲则接受连接请求;若已有主机连接,则拒绝请求。
③ HID_Connect_RM:回执连接确认消息,收到此消息后,判断连接是否成功,若正确对接,则保存主机蓝牙地址,设置为连接状态。
④ HID_Data_RC和HID_Data_RM:由主机发送的消息,接收定义帧速度和鼠标中断返回信息。
⑤ HID_Disconnect_MS:断开连接信息,当主机与蓝牙连接超出范围或一方断开时,会收到这条断开信息回执。收到消息后,设置为Idle态,并启动Idle timeout定时器。
“不错。一开始我只是把他当作棋子,故意把照片泄露给他。只是,我没有想到他乘虚而入,骗得雪萤同他结婚。我当然不会坐视不管,就收买那个看守公厕的老头儿,让他诬陷夏冰,并让你来推波助澜。这样,我就可以一箭双雕。”范坚强把手里剩下的几颗鱼饲料投到鱼缸里,抽出一张湿巾纸擦手。
⑥ HID模块上报用户按键、鼠标、转动数据都是通过调用Bluelab-SDK中的HID库函数接口。
HID发送流程如图3所示。
图3 HID发送流程图
2.3 DMP四元数全角转换欧拉角
Invensense公司官方提供的姿态解算算法、陀螺仪标度因数、安装误差系数以及零偏移值的计算与处理方法[8]由DMP 实现姿态解算算法处理,等待DMP (数字运动处理器)解算完成后产生的外部中断,在外部中断里去读取姿态解算的结果。总体不但提高了系统的实时性,还增强了系统的可靠性和单片机处理能力[10]。所得到的四元数通过STM32F103内置转换处理后,得到Roll、Pitch及Yaw角。所需要注意的是,Yaw角在地磁影响下输出值偏移量急剧增大,所以针对Yaw角偏航使用地磁计HMC-5883进行矫正,得到去磁偏影响,以有效避免欧拉角任意一轴转动90°时均会与其他轴相重合导致重合旋转轴失去作用的万向轴锁问题(Gimbal Lock)。[11]
2.4 四元数转换
(1)
其中E3×3为单位阵,HX定义为
(2)
展开式(1)可得:
(3)
设方向余弦矩阵AΦ的元素为aij,旋转特征向量Η的元素可表示为:
(4)
四元数由矢量和标量部分组成,可写成如下形式:
(5)
根据旋转特征向量和旋转角,定义四元数矢量部分和标量部分如下:
(6)
式(6)满足:
(7)
根据4式和6式,方向余弦可用四元数表示:
(8)
式(8)中:
(9)
将式(9)代入式(8)中可得:
(10)
显然,方向余弦矩阵与欧拉角转动顺序有关,以Z-Y-X转动顺序为例,即先绕偏航轴转动ψ,其方向余弦矩阵为A3(ψ);接着绕俯仰轴转动θ,其方向余弦矩阵为A2(θ);最后绕滚动轴转动φ,其方向余弦矩阵为A1(φ)。[1-2]则Z-Y-X转动的方向余弦矩阵为:
(11)
设Z-Y-X转动的四元数为q,用四元数表示,Z-Y-X转动的方向余弦矩阵即为式(10)。
3 四元数到欧拉角的全角度转换
俯仰角为-180°~-90°或+90°~+180°时,滚动角和偏航角取值范围为-180°~180°。通过数据采集,将数据融合校验得到数据真实偏差,为了保证不不失一般性,因此原则上选择超过90°角,免正切值趋近无穷。
如表1所列,欧拉角到四元数的转换显示是正确的,同时,3个轴取值范围在±90°之间的全角度四元数到欧拉角的转换显然能正确输出结果。
表1 偏移量数据融合校验表
4 系统硬件设计
本设计硬计相对简单,由主控电路、传感器电路及蓝
牙HID发射端组成。蓝牙模块采用英国CSR公司的BC417芯片,并与MX公司的8 MHz的Flash芯片29LV800C构成了模块。蓝牙模块电路如图4所示。
图4 CRS-BC147串口HID模块设计电路
5 实现方式
通过STM32F103系列32位处理器内置SPI接口及I2C通信高速接口[11],可以实现对移动传感器的数据采集,高速滤波融合通过协议拟合后发送到蓝牙接收端,蓝牙接收端通过在应用层的搭建并遵守HID Profile 1.1规范[12],将偏移量数据发送至接收机。整体实现方式说明如图5所示。
结 语
图5 整体功能实现说明
[1] 王康.多功能蓝牙遥控器的设计与实现[D].武汉:武汉理工大学,2012.
[2] 戴明.可穿戴远程健康监测预警系统研究及设计[D].南昌:南昌航空大学,2015.
[3] 丁华峰. 基于HID协议的工控自定义键盘接口设计[J].电子设计工程,2013(24):2-3.
[4] 杜丽敏.基于力矩陀螺的高分敏捷小卫星姿态机动控制研究[D].北京:中国科学院研究生院,2012.
[5] 张海鹏,房建成. MEMS陀螺仪短时漂移特性实验研究[J].中国惯性技术学报,2007(1):101-103.
[6] 刘锦伟.智能手机模拟蓝牙键盘——基于Android平台的实现[J]. 电脑知识与技术,2013,13(9):2-3.
[7] 彭孝东.MEMS三轴数字陀螺仪标定方法研究[J].传感器与微系统, 2013,32(6):6-8.
[8] 韩鹏. 蓝牙无线键盘鼠标的研制 [D].西安: 西北工业大学, 2004.
[9] 魏刚. 基于HID协议的串口蓝牙键盘鼠标设计[D].西安:西安科技大学,2005.
[10] 张颖,邢玉秀.浅析链路无关HID驱动程序[J].学术交流,2014,14(1):1-2.
[11] 田亮亮,王国发,臧家伟,等.3D无线射频鼠标的设计与实现[J].机电产品开发与创新, 2011(3).
[12] ASK.三位一体 蓝牙悄然进入4.0时代[J].电脑迷,2012(1):20.
[13] 张鹏飞,李亚,蒋亚飞,等.一种可适用于虚拟现实的3D无线鼠标的探讨与设计[J].电子世界, 2016(7):1-2.
刘浩宇(学生),主要研究方向为嵌入式系统、无线通信等。
结 语
参考文献
[1] 王科俊,丁宇航.基于静脉识别的身份认证方法研究[J].科技导报,2005,35(3):35-37.
[2] 余成波,秦华锋.生物特征识别技术:手指静脉识别技术[M].北京:清华大学出版社,2009.
[3] 王元铂,何玉青,侯雨石,等.基于DSP的静脉识别系统[J].光学技术,2009,35(5):739-741.
[4] 李钢铁.静脉识别算法研究[M].长春:吉林大学出版社,2007.
[5] 王跃宗,刘京会.TMS320DM642 DSP应用系统设计与开发[M].北京:人民邮电出版社,2009.
(责任编辑:杨迪娜 收稿日期:2016-09-01)
Multi-dimensional Bluetooth HID Laser Mouse Based on Embedded System
Liu Haoyu,Hou Zhengxu,Hao Baidong
(College of Electronics and Information Engineer,Heilongjiang University of Science and Technology,Harbin 150022,China)
The system uses the laser sensor device,accelerometer and two-dimensional joystick to collect the data in real-time,which is based on ARM Cortex-M3.The laser sensor is used to collect the moving data of the plane,the system uses the accelerometer to calculate the hand pose,the value is sent to the PC via Bluetooth HID,which eliminates the receiver carrying.The data can be updated in real-time to the computer screen,the cursor will follow the unit direction of the movement of our hands.The design can solve the difficulties of multi-planar dimension.
air mouse;laser sensor;BlueCore-04; Bluetooth; Cortex-M3
* 黑龙江省级大学生创新创业训练计划省重点项目(项目编号:201510219006)。
TN24
A
�迪娜
2016-09-14)