空中鼠标原理及问题
“空中鼠标”是一款无线鼠标,由于该款鼠标内置了某种类似姿态判断和控制的系统,彻底摆脱了鼠标必须在桌面上才能使用的操作模式。操作十分灵敏,能够智能识别打字状态还是在桌面上的状态,更加快捷方便,从而发挥无线超空的作用。
“空中鼠标”的原理
将空中鼠标的X轴(Pitch)角速度和Z轴(Yaw)映射到鼠标的移动速度上。因此抓握设备的方式就事先要确定,比如哪面朝前,哪面朝上。灵敏度也需要通过实验进行确定。如果能够获取屏幕的分辨率或者屏幕尺寸从而进行动态调节,则效果更佳。
抗静态偏移
鼠标在不移动的时候,光标自然是不能移动的。但不得不指出,廉价的陀螺仪本身会有静态输出。有些甚至能达到20度/s。 好在偏移通常不会因为环境而发生变化。所以需要在出厂前进行校正。这种问题比较容易解决。
平滑算法
消费级陀螺仪由于成本所限,精度必然不会很高,数据会出现抖动。通过提高采样速率,即所谓的过采样技术,对同一时刻多个数据进行滤波和平滑,从而尽可能准确地反馈当时的运动状态。
运动平面不匹配
如上图所示,如果以Z为轴,向Y方向旋转,那么鼠标会划出一条水平的轨迹。但当设备本身发生一定倾斜,如在X轴上有一个旋转角,那么像刚才的移动,就会划出一条斜线。这可能会对用户造成费解。如果拥有加速度计,测量设备的倾斜程度,通过传感器融合算法,就能相对而言避免这类问题。但算法要求较高。
旋转,而不是位移
普通鼠标都是基于位移的,移动多少,光标就移动多少。但空鼠不是,空鼠是基于旋转的。如果把空鼠在不旋转的基础上,移动一定距离,会发现光标完全没有变化(可能会因为一些干扰造成晃动)。这会让用户费解。可能有算法会试图通过所谓的加速度积分获取位移来考虑水平或垂直运动。但这种算法肯定是不行的,因为传感器的精度限制会非常不准确,基本没有解决的可能性。
防按键抖动
普通鼠标的按键基本都做在鼠标的顶部,所以按键不会造成鼠标位移。想象按键若做在鼠标侧面,而且按键很硬的话,可能就会出现抖动。因此空中鼠标对按键的要求很高,需要尽可能的软,同时还能有明确的触觉反馈。在按下去的时候,能尽量让鼠标不发生位移。最麻烦的是双击操作,双击时人点击鼠标的力量通常比单击大不少。而且会有两次连续的抖动。如果位移过远,操作系统会将其认为是一次拖拽操作,而非双击操作,这需要额外的处理。
手势识别
这涉及到比较高级的问题,空鼠显然脱离键盘,一些快捷操作无法实现,通过一定的手势能够检测特定的动作,从而触发之前定义的操作。但这涉及到机器学习的话题,而且需要较高的用户学习成本。同样的操作,不同用户做出来的特征可能完全不同。
休眠
电池供电系统,功耗是必须考虑的,可考虑在一定时间内没有检测到运动,则自动进入低功耗模式,间歇式的发送数据。
面临的问题
1、何保证高性能和成本控制的平衡:如果要实现高精度,需用DSP或者FPGA配合优化的高效率图像处理算法来降低运算量,但这意味着高成本,而且需要投入很多精力放在算法研发上,开发周期更长。最好的选择是专用的ASIC配合成熟的技术解决方案。
2、干扰:由于图像传感器捕捉的是红外光,所以像阳光,烛光或者灯光的干扰会对最终控制的屏幕光标有严重影响,例如在强阳光下空中鼠标无法使用,或者台灯发出的光会让光标抖动等等。
3、功耗:空中鼠标属于手持设备,需要电池供电,设计时既要保证足够的使用距离,又要保证低功耗,这样用户才不会经常更换电池或充电。
4、决影响用户主观感受的各种问题:因为鼠标离开桌面拿在手中,人手不可避免的抖动会让光标随之颤动,如何解决防抖问题,如何让用户有更好的体验感觉便成了关键。
结论
通过基本原理实现最简单的空鼠并不困难,但用户体验并不好。通过加入其它方法,能够有效提升准确性。但必须指出,解决运动平面不匹配的方法虽然能解决匹配问题,会降低实时性,产生类似时滞的感觉,所以取舍还需要具体分析。
非常好我支持^.^
(160) 54.1%
不好我反对
(136) 45.9%
相关阅读:
- [通信网络] 制作一个基于Arduino的空中鼠标 2022-08-31
- [电子说] FLYMOUSE7体感空中鼠标评测 家庭中的娱乐神器和手机党的操控利器 2019-03-13
- [MEMS/传感技术] 基于MEMS技术的空中鼠标 2018-04-10
- [无线/传感] 蓝牙4.0 超低功耗蓝牙空中鼠标解決方案 2015-08-17
- [MEMS/传感技术] 空中鼠标系统设计的关键因素 2014-01-17
( 发表人:罗勇杰 )