本发明涉及空鼠消抖技术领域,特别涉及一种空鼠按键消抖系统及方法。
背景技术:
空鼠即空中鼠标,又名空中飞鼠、飞鼠等,是一种短距离通信的无线鼠标,具有体积小、方便携带、操作舒适以及不受空间限制等特点。
随着智能电视的发展,电视装载的应用越来越来丰富(如浏览器、视频播放器、游戏应用等等),需要快速进行焦点切换、移动和点击的操作场景越来越多,传统按键遥控器操作起来越发显得不便捷,空鼠遥控器也就顺势而生。空鼠遥控器既可以当传统遥控器使用,又可以当空中鼠标使用,可以方便进行快速定位和点击操作,极大满足了用户操作需求。
在实际应用中,由于结构设计缺陷和按键力度等原因,用户在使用空鼠遥控器进行按键点击,特别是连续点击操作时,不可避免的会出现遥控器抖动的情况,这时,抖动产生的位移就会使电视屏幕光标坐标偏离用户实际想点击的位置,造成误点击。
对于此问题,目前一般是通过设计更符合人体工程学的遥控器结构造型来解决,但要以增加成本和牺牲产品外观为代价。鉴于此,需要一种成本更为低廉的,并且更易实现的方法用于解决上述由于按键引起遥控器抖动而造成的错误点击问题。
技术实现要素:
本发明的目的是克服上述背景技术中不足,提供一种空鼠按键消抖系统及方法,可用于解决由于按键引起遥控器抖动而造成的错误点击问题。
为了达到上述的技术效果,本发明采取以下技术方案:
一种空鼠按键消抖系统,包括:
数据获取模块,用于获取空鼠遥控器传感器在三轴方向上原始值,所述原始值包括各方向角速度值;
位移确定模块,用于根据空鼠遥控器传感器的各方向角速度值确定空鼠光标在屏幕上的位移矢量;
状态管理模块,用于确认和维护空鼠遥控器当前工作状态;
动作确定模块,用于根据所述空鼠遥控器的工作状态、位移矢量以及空鼠遥控器当前姿态来确定所述空鼠光标在屏幕上的动作行为。
进一步地,所述空鼠遥控器传感器至少包括陀螺仪传感器。
进一步地,所述工作状态包括但不限于空闲状态、点击状态以及拖拽状态,其中,当不对空鼠遥控器进行任何按键操作时,空鼠遥控器进入所述空闲状态;当所述空鼠遥控器在空闲状态下特定按键被按下时,则进入点击状态;当所述空鼠遥控器处点击状态且位移矢量超过预设范围,则进入拖拽状态;即本发明的空鼠按键消抖系统,通过设置按键防抖定时回调机制,有效消除了空鼠遥控器按键抖动引起的光标位置偏移,避免了使用过程因按键引起的遥控器抖动而引发的错误点击问题,提升了用户空鼠操作的体验感。
进一步地,所述动作行为包括但不限于点击、拖拽。
同时,本发明公开了一种空鼠按键消抖方法,包括:
当空鼠遥控器的空鼠功能开启后,则设置空鼠遥控器状态为空闲状态,并不断获取空鼠遥控器传感器三轴方向上角速度原始值;
根据所述空鼠遥控器传感器各方向角速度原始值确定空鼠光标在屏幕上的位移矢量;
当空鼠遥控器的特定按键被按下则空鼠遥控器进入点击状态,同时,设置并开始监测按键消抖超时时间;
在所述按键消抖超时时间内,若所述空鼠遥控器产生长度大于零的位移矢量,则对该位移进行有效性判断;若位移矢量超过位移约束值范围,则认为该位移为有效位移,否则视为抖动位移;
本发明的空鼠按键消抖方法中,当空鼠遥控器空鼠被开启,则设置空鼠遥控器状态为空闲状态,并不断获取陀螺仪传感器三轴方向上角速度原始值;根据所述空鼠遥控器提供的陀螺仪传感器各方向角速度原始值确定光标在屏幕上的位移矢量;当空鼠遥控器特定按键被按下时,空鼠进入点击状态,同时设置和开始按键消抖超时时间;在按键消抖超时时间内,对位移有效性进行判断,并根据位移有效性和按键状态确定空鼠光标在屏幕上的动作行为;当按键消抖超时时间超时,根据按键状态确定空鼠光标在屏幕上的动作行为并重新调整空鼠状态;经过以上步骤,有效消除了空鼠遥控器按键抖动引起的位置偏移,避免了使用过程因按键引起的遥控器抖动而引发的错误点击问题。
进一步地,若在按键消抖超时时间内产生所述有效位移,则空鼠遥控器进入拖拽状态,并将确定的水平和垂直方向上的位移量作为本次屏幕空鼠拖拽动作的位移矢量;且在所述拖拽状态下,所有所述空鼠遥控器产生的位移都视为有效位移。
进一步地,若在所述按键消抖超时时间内产生抖动位移,则本次空鼠遥控器产生的位移在屏幕上将不产生任何效果,空鼠遥控器继续运行在点击状态下。
进一步地,若在所述按键消抖超时时间内,空鼠遥控器的特定按键被松开,则在空鼠光标当前坐标位置生成一次点击动作。
进一步地,若在所述按键消抖超时时间内,空鼠遥控器的特定按键再次或多次被按下,则需重置按键消抖超时时间。
进一步地,当所述按键消抖超时时间超时,若空鼠遥控器的特定按键仍未被松开,则进入拖拽状态,并以空鼠光标当前坐标位置作为初始点开始拖拽动作。
进一步地,当所述按键消抖超时时间超时,若空鼠遥控器的特定按键已被松开,则重新进入空闲状态。
进一步地,所述位移矢量的计算公式为:
dx=sf*gyro_z;dy=sf*gyro_y;其中,dx为空鼠光标沿x方向位移量,dy为空鼠光标沿y方向位移量,sf为比例因子,gyro_z、gyro_y分别为空鼠遥控器传感器的z轴、y轴角速度原始值。
本发明与现有技术相比,具有以下的有益效果:
一种空鼠按键消抖系统及方法,通过设置按键防抖定时回调机制,有效消除了空鼠遥控器按键抖动引起的光标位置偏移,避免了使用过程因按键引起的遥控器抖动而引发的错误点击问题,提升了用户空鼠操作的体验感,同时,还具有实现简单且不需牺牲产品外观的优点。
附图说明
图1是本发明的一个实施例的空鼠按键消抖装置的示意图。
图2是本发明的一个实施例的空鼠按键消抖方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1所示,一种空鼠按键消抖装置,包括:数据获取模块、位移确定模块、状态管理模块、动作确定模块。其中:
数据获取模块用于获取空鼠遥控器传感器在三轴方向上原始值,原始值包括各方向角速度值;具体的,本实施例中,空鼠遥控器传感器至少包括陀螺仪传感器。
位移确定模块用于根据空鼠遥控器传感器的各方向角速度原始值确定空鼠光标在屏幕上的位移矢量。
在实际应用中,角速度原始值需要根据传感器在遥控器上的实际安装方向来获取;本实施例中,通过安装方向确定陀螺仪传感器z、y轴分别对应遥控器y轴、x轴,而遥控器x轴、y轴又分别和屏幕x轴、y轴相对应,则可以通过如下公式确定屏幕光标的位移量:
dx=sf*gyro_z
dy=sf*gyro_y
其中dx为屏幕光标x方向位移量,dy为屏幕光标y方向位移量,sf为比例因子,gyro_z、gyro_y分别为传感器z轴、y轴角速度原始值。
状态管理模块用于确认和维护空鼠遥控器当前工作状态;具体的,工作状态包括但不限于空闲状态、点击状态以及拖拽状态,其中,当不对空鼠遥控器进行任何按键操作时,空鼠遥控器进入空闲状态;当空鼠遥控器在空闲状态下特定按键被按下时,则进入点击状态;当空鼠遥控器处点击状态且位移矢量超过预设范围,则进入拖拽状态。
动作确定模块用于根据空鼠遥控器的工作状态、水平和垂直方向的位移矢量以及空鼠遥控器当前姿态来确定空鼠光标在屏幕上的动作行为。具体的,述动作行为包括但不限于点击、拖拽。
具体的,实际应用中,本实施例的空鼠按键消抖装置可部署于智能电视终端上,同时也可部署于空鼠遥控器上。
实施例二
一种空鼠按键消抖方法,如图2所示,包括以下流程:
当空鼠遥控器的空鼠功能开启后,则设置空鼠遥控器状态为空闲状态,并不断获取陀螺仪传感器三轴方向上角速度原始值。
根据空鼠遥控器传感器各方向角速度原始值确定空鼠光标在屏幕上的位移矢量。
具体的,位移矢量的计算公式为:
dx=sf*gyro_z;dy=sf*gyro_y;其中,dx为空鼠光标沿x方向位移量,dy为空鼠光标沿y方向位移量,sf为比例因子,gyro_z、gyro_y分别为陀螺仪传感器的z轴、y轴角速度原始值。
当空鼠遥控器的特定按键被按下则空鼠遥控器进入点击状态,同时,设置并开始监测按键消抖超时时间;在实际应用中,按键消抖超时时间可设置为经验时间值。
一般,一次按键动作造成的空鼠遥控器抖动过程一般是空鼠遥控器先有一个向下的移动,之后又有一个向上的移动使遥控器回到按键时的初始位置,整个抖动过程所花的时间即是所谓经验时间值;不同造型空鼠遥控器抖动时间经验值可能不同,可以根据遥控器实际情况而定,因此,本实施例不对其具体取值加以限制。
在按键消抖超时时间内,若空鼠遥控器产生长度大于零的位移矢量,则对该位移进行有效性判断;具体的位移有效性判断方法为:设置空鼠遥控器向下和向上的位移量约束值,若位移矢量超过约束值,则认为该位移为用户意图位移(即有效位移),否则视为非用户意图位移(即抖动位移)。
具体的,空鼠遥控器在正常使用过程中产生的向上或向下的抖动幅度一般在一定范围内,如果抖动幅度较大,则可认为是用户有意为之,而位移量约束值则可由遥控器按键抖动幅度经验值决定;不同空鼠遥控器实际抖动幅度经验值可能不同,可以根据遥控器实际情况来确定,因此,本实施例不对位移量约束值加以限制。
具体的,若在按键消抖超时时间内产生有效位移,则空鼠遥控器需退出空鼠点击状态并进入空鼠拖拽状态,并将确定的水平和垂直方向上的位移量作为本次屏幕空鼠拖拽动作的位移矢量;且在拖拽状态下,所有空鼠遥控器产生的位移都视为有效位移。
具体的,若在按键消抖超时时间内产生抖动位移,则本次空鼠遥控器产生的位移在屏幕上将不产生任何效果,空鼠遥控器继续运行在点击状态下。
具体的,若在按键消抖超时时间内,空鼠遥控器的特定按键被松开,则在空鼠光标当前坐标位置生成一次点击动作。
具体的,若在按键消抖超时时间内,空鼠遥控器的特定按键再次或多次被按下,则需重置按键消抖超时时间。
同时,当按键消抖超时时间超时,若空鼠遥控器的特定按键仍未被松开,则进入拖拽状态,并以空鼠光标当前坐标位置作为初始点开始拖拽动作。
具体的,当按键消抖超时时间超时,若空鼠遥控器的特定按键已被松开,则重新进入空闲状态。
可知,本发明的空鼠按键消抖方法中,当空鼠遥控器空鼠被开启,则设置空鼠遥控器状态为空闲状态,并不断获取陀螺仪传感器三轴方向上角速度原始值;根据空鼠遥控器提供的陀螺仪传感器各方向角速度原始值确定光标在屏幕上的位移矢量;当空鼠遥控器特定按键被按下时,空鼠进入点击状态,同时设置和开始按键消抖超时时间;在按键消抖超时时间内,对位移有效性进行判断,并根据位移有效性和按键状态确定空鼠光标在屏幕上的动作行为;当按键消抖超时时间超时,根据按键状态确定空鼠光标在屏幕上的动作行为并重新调整空鼠状态;经过以上步骤,有效消除了空鼠遥控器按键抖动引起的位置偏移,避免了使用过程因按键引起的遥控器抖动而引发的错误点击问题。
实施例三
本实施例中公开了一种计算机设备,该计算机设备可以是服务器,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储空鼠按键消抖方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现空鼠按键消抖方法。
在另一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例二中空鼠按键消抖方法的步骤,或者,处理器执行计算机程序时实现上述实施例一的空鼠按键消抖装置的各模块的功能。为避免重复,这里不再赘述。
在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例二中空鼠按键消抖方法的步骤,或者,处理器执行计算机程序时实现上述实施例一的空鼠按键消抖装置的各模块的功能。为避免重复,这里不再赘述。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
1.一种空鼠按键消抖系统,其特征在于,包括:
数据获取模块,用于获取空鼠遥控器传感器在三轴方向上原始值,所述原始值包括各方向角速度值;
位移确定模块,用于根据空鼠遥控器传感器的各方向角速度值确定空鼠光标在屏幕上的位移矢量;
状态管理模块,用于确认和维护空鼠遥控器当前工作状态;
动作确定模块,用于根据所述空鼠遥控器的工作状态、位移矢量以及空鼠遥控器当前姿态来确定所述空鼠光标在屏幕上的动作行为。
2.根据权利要求1所述的一种空鼠按键消抖系统,其特征在于,所述空鼠遥控器传感器至少包括陀螺仪传感器。
3.根据权利要求1所述的一种空鼠按键消抖系统,其特征在于,所述工作状态包括但不限于空闲状态、点击状态以及拖拽状态,其中,当不对空鼠遥控器进行任何按键操作时,空鼠遥控器进入所述空闲状态;当所述空鼠遥控器在空闲状态下特定按键被按下时,则进入点击状态;当所述空鼠遥控器处点击状态且位移矢量超过预设范围,则进入拖拽状态。
4.根据权利要求3所述的一种空鼠按键消抖系统,其特征在于,所述动作行为包括但不限于点击、拖拽。
5.一种空鼠按键消抖方法,其特征在于,包括:
当空鼠遥控器的空鼠功能开启后,则设置空鼠遥控器状态为空闲状态,并不断获取空鼠遥控器传感器三轴方向上角速度原始值;
根据所述空鼠遥控器传感器各方向角速度原始值确定空鼠光标在屏幕上的位移矢量;
当空鼠遥控器的特定按键被按下则空鼠遥控器进入点击状态,同时,设置并开始监测按键消抖超时时间;
在所述按键消抖超时时间内,若所述空鼠遥控器产生长度大于零的位移矢量,则对该位移进行有效性判断;若位移矢量超过位移约束值范围,则认为该位移为有效位移,否则视为抖动位移。
6.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,若在按键消抖超时时间内产生所述有效位移,则空鼠遥控器进入拖拽状态,并将确定的水平和垂直方向上的位移量作为本次屏幕空鼠拖拽动作的位移矢量;且在所述拖拽状态下,所有所述空鼠遥控器产生的位移都视为有效位移。
7.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,若在所述按键消抖超时时间内产生抖动位移,则本次空鼠遥控器产生的位移在屏幕上将不产生任何效果,空鼠遥控器继续运行在点击状态下。
8.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,若在所述按键消抖超时时间内,空鼠遥控器的特定按键被松开,则在空鼠光标当前坐标位置生成一次点击动作。
9.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,若在所述按键消抖超时时间内,空鼠遥控器的特定按键再次或多次被按下,则需重置按键消抖超时时间。
10.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,当所述按键消抖超时时间超时,若空鼠遥控器的特定按键仍未被松开,则进入拖拽状态,并以空鼠光标当前坐标位置作为初始点开始拖拽动作。
11.根据权利要求5所述的一种空鼠按键消抖方法,其特征在于,当所述按键消抖超时时间超时,若空鼠遥控器的特定按键已被松开,则重新进入空闲状态。
12.根据权利要求5至11中任一所述的一种空鼠按键消抖方法,其特征在于,所述位移矢量的计算公式为:
dx=sf*gyro_z;dy=sf*gyro_y;其中,dx为空鼠光标沿x方向位移量,dy为空鼠光标沿y方向位移量,sf为比例因子,gyro_z、gyro_y分别为空鼠遥控器传感器的z轴、y轴角速度原始值。
技术总结