基于空中运动/手势控制接口的空中鼠标设计

2022-03-19 09:27:33 | 浏览次数:

zoޛ)j馟Ŀi0CiLu~?}
tӍ}׭:^7ӏ7	}yy'{^zלz%}bvvrG�щbju)�azx Ä)i+j+ʇφhW܆jâ )jwCzל)^&J'+r^&]4됡vr'j*mv觵iǭygZ ʇڊ*'jw`zn(u方案设计

空中鼠标系统设计分为两部分:手持端和主机端。手持端是由可充电锂电池、升压稳压电路、电容式触摸感应开关、C8051F311、MEMS传感器ADXL343和发送蓝牙模块组成。空中鼠标手持端设计框图如图1所示。

图1 空中鼠标手持端设计框图

主机端是由接收蓝牙模块、UART转USB桥接电路和PC上位机组成,空中鼠标主机端设计框图如图2所示。

图2 空中鼠标主机端设计框图

2 系统硬件设计

2.1 主控器与MEMS传感器

本设计采用C8051F311单片机作为主控芯片,它具有增强型UART和增强型SPI串行接口,高速、流水线结构的8051兼容的 CIP⁃51 内核。ADXL343是一款多功能3轴、低功耗和具有I2C和SPI接口的数字输出低g MEMS加速度计[4]。以高分辨率(13位)测量加速度,测量变化范围达±16 g;内置运动检测功能,可以检测到活动、静止和自由落体的运动,所有中断可独立映射至两个外部中断引脚;采用32级FIFO缓冲器存储数据,将MCU的负荷降至最低,并降低了整体系统功耗。

2.2 锂电池充电电路设计

锂电池充电电路采用了恒定电流/恒定电压充电芯片TP4056为充电器。空中鼠标的锂电池可用USB进行充电,通过2管脚外接的电阻调节充电电流大小。锂电池充电电路如图3所示,红色D1亮时表示正在充电,蓝色D2亮时表示充电完成,当欠压、电池温度过高、过低时D1,D2都熄灭[5]。

图3 充电电路

2.3 升压稳压电路设计

由可充电锂电池给系统供电,长时间使用电池电压会降低,不足以提供系统3.3 V正常工作电压。现采用BL8530芯片将低电压(低至0.8 V)升压稳压至3.3 V电压。升压稳压电路如图4所示,BL8530只需要电感、输出电容和肖特基二极管3个外部元件就可以输出3.3 V电压。

2.4 电容式触控开关

应用电容式触控传感器技术[6],使空中鼠标更加低功耗。手接触电容式触控开关(当空中鼠标正常使用时),使系统处于导通工作状态;当手不接触电容开关时,系统处于低功耗待机状态。

图4 升压稳压电路

2.5 蓝牙通信

无线通信采用以CC2540为核心的低功耗蓝牙4.0系列HM⁃11模块,支持AT指令,可更改主、从模式以及串口波特率等参数。上位机与蓝牙接收模块之间应用Silicon Labs公司的USB转UART桥接芯片CP2102,实现了MEMS三轴加速度与上位机通信。

3 系统软件设计

3.1 主程序设计

接触空中鼠标电容式触摸键,使系统上电;系统初始化、配置UART、 SPI和使能中断;对ADXL343寄存器进行参数设置,包括活动阈值(THRESH_ACT)、静止阈值(THRESH_INACT)、静止时间(TIME_INACT)、数据格式(DATA_FORMAT)以及中断使能与中断映射等;等待外部DATA_READY中断获取DATAX0,DATAX1,DATAY0,DATAY1,DATAZ0,DATAZ1寄存器数据;通过蓝牙发送包含三轴加速度的8个字节数据,系统主程序流程框图如图5所示。

图5 系统主程序流程框图

3.2 上位机软件设计

在VB上位机将接收到的8 B进行数据解析,如果没找见第1个字节0xDD,返回值为1;第8个字节是对前7个字节CRC校验,如果校验错误,返回值为2;如果头字节与CRC校验尾字节都接收正确,返回值为0,继续读取中间6个字节的加速度,数据格式为Data[N].ax,Data[N].ay,Data[N].az。由于MEMS传感器安装存在方向性,利用旋转矩阵调整坐标方向,使手势运动方向与MEMS传感器坐标方向相一致。数据接收流程图见图6。

图6 数据接收流程图

手势姿态加速度Data[0]在xy,yz,xz三个平面的投影加速度为axy,ayz,axz。由于鼠标指针在xy平面运动,所以[axy]>阈值、[ayz]<阈值、[axz]<阈值,当某个平面的投影加速度小于阈值时,表示在该平面保持静止状态。利用xy平面投影加速度axy正负控制指针移动方向、 axy模大小控制指针移动速度。Data[0].ax、Data[0].ay按一定非线性对应关系得到相对位移dx和dy,驱动鼠标事件mouse_event(&H1,Int(dx),Int(dy),0,0)来控制鼠标指针移动。手势控制空中鼠标倾斜角度越大,axy模越大,指针移动速度越快。空中鼠标指针移动流程框图如图7所示。

利用当前手势姿态加速度Data[0],解析为ax,ay,az,axy,ayz,axz,手势姿态流程框图如图8所示,比较各个分量加速度与设定阈值的关系和手势姿态保持时间(Time) 的关系,得到六种空间姿态(静态):上、下、左、右、前、后。六种姿态来驱动键盘事件(keybd_event),对键盘事件定义不同,实现不同的快捷键播放多媒体(PPT)功能,如F5,Alt+F4,Page_Up等快捷键。

通过手势动作获得N组加速度Data[N],通过数据筛选法得到x,y,z三轴加速度的最大值与最小值,对应三轴最值作差得到dx,dy,dz,记录出现最大值时三轴对应的N值ax_t1,ay_t1,az_t1和最小值时N值ax_t2,ay_t2,az_t2,当dz>dx与dz>dy时,因为双击时会出现四次极值,所以在一定时间内比较连续极值的次数,判断是否发生双击。手势动作流程框图如图9所示,通过比较识别出七种动作(动态):向左、向后、向前、向后、向下(左击)、向上(右击)与双击。各种手势动作驱动不同事件来模拟鼠标按键和媒体播放功能。

图7 空鼠指针移动流程框图

图8 手势姿态流程框图

4 实验分析

随机抽取20个人对空中鼠标指针移动、PPT播放和鼠标单/双击功能的准确率做100次实验数据次数统计与分析,实验测试结果如表1所示。

图9 手势动作流程框图

表1 基于空中运动/手势控制接口技术空中鼠标实验测试

实验证明本文设计的空中鼠标功能准确率在96%以上。鼠标指针移动失误源于倾斜角度过大或过小导致偏离指定目标;控制PPT播放失误源于手势姿态(静态)不够标准;鼠标单/双击操作的失误是未能向正确的方向做出对应动作(误动作),如向下动作一次是单击,实验者不是向下动作,而是向右下方动作。通过给实验者指导使用空中鼠标姿态与动作后再次实验统计,准确率高达99%以上。

5 结 论

本文设计的空中鼠标在具有传统鼠标功能的基础上又融入了多媒体播放快捷键功能,更主要的是突破了传统鼠标必须放在桌面使用的限制,实现了空中无按键全手势/运动控制。实验证明:空中运动/手势控制接口技术对手势姿态与动作的识别率高,准确的控制鼠标指针移动、模拟鼠标按键功能和遥控多媒体播放。在空中运动/手势控制接口技术的基础上,为进一步开发人机体感交互设备提供参考。

参考文献

[1] DRAKE A J, KIM H, CHAE J, et al. Two⁃dimensional position detection system with MEMS accelerometer for MOUSE applications [C]// Proceedings of 2001 IEEE Conference on Design Automation. [S.l.]: IEEE, 2001: 852⁃857.

[2] 陈建新,卜翔,王荣,等.基于MEMS加速度的三维无线鼠标设计与实现[J].无线互联科技,2011(8):22⁃25.

[3] 陈建新,王荣,章韵.MEMS加速度传感器的距离测量性能分析[J].电脑与电信,2011(11):30⁃32.

[4] Analog Devices. ADXL343: 3⁃Axis, ±2 g/±4 g/±8 g/±16 g digital MEMS accelerometer datasheet [R]. US: Analog Devices, 2012.

[5] 丁学用,王玲玲,何彦廷.便携式太阳能手机充电器设计[J].中国科技信息,2014(16):190⁃192.

[6] 孙俊杰.用电容式触控技术触摸生活[J].中国电子商情·基础电子,2010(7):28⁃29.

推荐访问: 鼠标 手势 接口 控制 运动