邹江
摘 要: 设计基于USBD12和加速度计的空中键鼠,通过手势在空中的动作便可控制鼠标的移动。设计的研发调试过程中,采用了加速度传感器数据采集、USB设备gadget层HID设备、LCD?NOKIA5110显示、AVR单片机熔丝位的配置、蓝牙模块、手势动作识别算法、菜单与UI界面等模块的软、硬件调试,接收端有一个USB口,插入PC后被识别为一个标准HID人体学输入设备,无须驱动,即插即用。用户的操作达到可动态交互的目的。采用动作手势识别算法,蓝牙模块等实现了通过手势在空中的动作便可控制鼠标的移动,通过按键进行对键盘的操作,并且不需要连接线,通过蓝牙与插在电脑上的接收端相连接通信,达到动态交互的目的。
关键词: 蓝牙; USB; 免驱动; 键鼠
中图分类号: TN99?34; TN46 文献标识码: A 文章编号: 1004?373X(2017)18?0101?03
Air mouse and keyboard combo pack based on USBD12 and accelerometer
ZOU Jiang
(School of Physics and Electronic Science, Zunyi Normal University, Zunyi 563006, China)
Abstract: An air mouse and keyboard combo pack based on USBD12 and accelerometer was designed, which can control the mouse movement by means of the gestures in the air. In the process of development and debugging of the design, the modules of accelerometer sensor data acquisition, gadget?layer HID device of USB device, LCD?NOKIA5110 display, configuration of AVR MCU fuse bit, Bluetooth, hand gestures recognition algorithm, menu and UI interface are used for software and hardware debugging. A USB port at the receiving end is recognized as a standard HID after PC insertion, which is free?drive, and plug and play. The operation of users can realize dynamic interaction. The gesture recognition algorithm and Bluetooth module are used to control the movement of mouse and keyboard combo pack by means of the gestures in the air. The keyboard is operated via keys and neednt connecting lines, which is connected with the terminal end inserted into computer through Bluetooth for communication to realize dynamic interaction.
Keywords: Bluetooth; USB; free drive; mouse and keyboard
0 引 言
空中鼠标是一种输入设备,能像传统鼠标一样操作光标,却不局限在某一平面进行操作,只是在空中晃动就能实现想要的功能,自由方便就是它最突出的特性。本设计还将键盘的操作集成到了空中鼠标中,也就是设计了空中鼠标和键盘合一套装,即本产品既可以当做鼠标用,也可当作键盘用。从产品角度上讲,它适应消费电子的发展方向——更小、热插拔、无线、低成本,从技术上讲,它应用了蓝牙、USB、加速度导航技术等,有一定的理论深度和实现难度。
1 系统概览与运行流程
1.1 系统总体框架
本设计主要由6个功能模块构成:MCU主控模块、鼠标动作识别输入模块(加速度倾角识别)、按键输入模块、LCD显示模块、蓝牙串口模块、USBD12模块。本产品从硬件上看有两个独立的部分:一部分是动作识别采集编码和蓝牙发送设备;另一部分是蓝牙接收和USB免驱动链接设备,数据流参考图中连接线箭头。
1.2 系统运行流程
上电之后,系统各模块先初始化,然后通过按键进行模式选择。在一个模式的运行过程中是不能切换到另一个流程的。当在鼠标模式时,对加速度计返回的数据进行判断,四个方向的倾角对应鼠标的四个动作。当条件满足时认为有鼠标的移动,开始循环向蓝牙串口发送命令。当姿态复位时,条件不满足,停止命令的发送。在键盘模式下,只需判断按键即可发送相应的命令。一个模式的流程完成后,可以通过按键选择切换到另一个模式。
2 各功能模块的实现原理和方法
2.1 动作识别
动作识别模块主要采用美新公司的MXC6202芯片,它是一款双轴加速度计,通过混合信号处理和集成IIC总线组成一个完整的传感系统,可以直接和微处理器连接而不再需要A/D转换。MXC6202芯片测量加速范围为±2 g,工作在3.0 V,25 ℃环境下精度可达到[g512~g128。]动态静态加速都可测量。endprint
因为不同动作时,手挥动的加速度与角速度是不同的,所以动作的识别总的来说有以下几种方案:
(1) 只通过加速度来判定动作[1];
(2) 只通过角速度来判定动作;
(3) 通过加速度和角速度协同来判定动作;
(4) 通过红外发射与定位来判定动作。
对于方案(4),需要很多红外定位设备来实现这个功能,而方案(2)和(3)虽然精度和效果可以达到很高但是成本也会相当高。因此本设计采取了方案(1)来实现“空中操作”这个功能[2]
通过倾角来识别动作,即通过手使设备向四个方向倾斜,若倾斜超过一个范围,则判定为移动,达到鼠标移动的目的。通过水平位移来识别动作,即通过平移设备得到移动的加速度,积分一次即是移动速度,再积分一次就是移动的位移了。只需要将速度的大小对应为USB向PC发送报告的频率,即可实现移动的效果[3]本设计的软、硬件条件,由于硬件条件有限:单片机的运算能力有限、单加速度计漂移的问题较为严重,因此初步选用方案(1),而方案(2)则作为后期拓展开发用。具体来说,就是通过x,y两个轴的数值进行阈值判断,若倾斜到一定程度,即通过I2C返回的数值达到一定标准(阈值),则向蓝牙串口模块发送相对应的命令。
2.2 蓝牙模块
本文采用HC?05 嵌入式蓝牙串口通信模块实现无线功能。该模块的特点是射频方面的硬件已经调试完备,而且给用户的接口只是很简单的UART总线[4] ,这给本文的开发带来了极大的便利。本设计的发送和接收端配置时采用命令响应工作模式,工作时采用自动连接工作模式,其中发送端配置成主模式,接收端配置成从模式。
HC?05是主从模式,配置步骤如下:
(1) PIO11 置高;
(2) 上电,模块进入AT 命令响应状态;
(3) 设置波特率38 400 b/s。
2.3 基于USBD12的免驱动模块
USBD12芯片是荷兰飞利浦半导体公司的通用USB接口芯片,由其名称可以了解HID设备是计算机直接与人交互的设备,例如键盘、鼠标和游戏杆等 [5]。本设计中采用的USBD12芯片就可以帮助实现免驱动通信的功能。
为了实现免驱动和本设计中所需功能,对USBD12的控制步驟如下:
(1) 配置USBD12模块,如读模块ID是否正确,若不正确则模块初始化失败;
(2) 进入无限循环,等待上位机发给模块的中断,进入USB设备初始化的枚举过程;
(3) 枚举成功后置位配置标志位,检测串口是否有命令到来,若有命令,则向上位机发送一个报告,形成一次键盘或鼠标动作。
3 实物操作
如图1所示,可看到本设计的两部分硬件设备。系统由2节5号电池供电,有1个电源开关、8个操作按键、4个不同颜色的彩色LED指示灯、1块LCD屏、以及1个USB接收端。8个按键分别为,左侧:上、下、左、右;右侧:A,B,C,D(自左向右,自上到下)。B按键为模式切换按键,可切换4种模式。
空中鼠标模式下,改变设备的倾角即可移动鼠标,左键和下键为鼠标左键功能,右键和上键为鼠标右键功能。在空中键盘模式下,上、下、左、右、A,B,C,D分别对应的功能为:键盘上、下、左、右、Atl+F4、切换模式、Alt+Table、Enter。同时在进行按键操作后,会在LCD上显示按下的按键。
4 方案的可拓展方向及研发前景
首先在平台方面,可以将这一思想嵌入到当今的移动设备中,如当下流行的智能手机和平板电脑。例如在Android设备中,加速度计几乎是一个必备器件,而其I2C驱动则是由OEM商已经提供好的,只需编写相应的应用程序调用相应的接口,再加上一个通用的蓝牙USB接收端即可完成本设计的核心功能。这对产品的硬成本的增加几乎为0。
其次在硬件方面,可以有更多的选择。对于处理器,可以选择价格相对低廉的单片机,同时也可以选择更高端的处理器,在其上运行操作系统达,到多任务运行并且有UI的效果。
另外在动作识别方面,本设计还有较大的提升。目前在消费电子领域,有一款名为WII的游戏机设计的十分成功,它的动作识别就是通过加速度计和陀螺仪配合导航。本设计虽然可以流畅实现空中键鼠的功能,但是还可以尝试其他的算法,以提高响应速度和可靠性。
5 结 语
本文设计了基于USBD12和加速度计的空中键鼠,该键鼠通过手势在空中的动作便可控制鼠标的移动。设计程中,采用了加速度传感器数据采集、USB设备gadget层HID设备、LCD?NOKIA5110显示、AVR单片机熔丝位的配置、蓝牙模块、手势动作识别算法、菜单与UI界面等等模块的软硬件调试,接收端有一个USB口,插入PC后被识别为一个标准HID人体学输入设备,无须驱动,即插即用。用户的操作达到可动态交互的目的。采用动作手势识别算法,蓝牙模块等实现了通过手势在空中的动作便可控制鼠标的移动,通过按键进行对键盘的操作,并且不需要连接线,通过蓝牙与插在电脑上的接收端相连接通信,达到动态交互的目的。
参考文献
[1] 李道斌.基于加速度的无人机纵向控制方案设计[J].现代电子技术,2015,38(18):95?97.
[2] 郭晓博,赵敏,乐珺.基于USB?HUB的能谱仪通信系统设计[J].机械制造与自动化,2015(1):155?157.
[3] 杨磊.通信终端安全模块研究与设计[D].西安:西安电子科技大学,2015.
[4] 闫蕴霞.基于USB总线的FPGA运行控制卡设计[D].太原:中北大学,2016.
[5] 吴子贤.基于USB的数字扫频仪的测控接口设计[D].西安:西安科技大学,2013.
[6] 刘亚丽.USB会议签到器的设计与实现[J].工业控制计算机,2017(3):116?117.endprint