一种空中鼠标的光标的去抖动方法
技术领域
本发明涉及一种防止光标在移动中发生抖动的方法,尤其涉及一种由空中鼠标操控光标时去除光标跟随空中鼠标抖动的方法。
背景技术
公开日为2009年4月1日,公开号为CN 101398721A的中国发明专利申请公开了一种空中鼠标的光标位移速度控制方法,该申请文件中记载了空中鼠标的使用特性,即这类鼠标不需要有线连接计算机,也不需要限制操作地点,使用者手持这类鼠标在立体空间移动或者转动,即可控制光标在屏幕上移动,如当使用者手持空中鼠标向左侧倾斜时,空中鼠标内部的倾角传感器即可检测到该倾斜角度,微处理器依据该倾斜角度产生鼠标信号,并将该鼠标信号通过无线通讯方式发送到计算机,以控制光标在屏幕上由右向左移动。
虽然上述申请文件仅明确给出了由空中鼠标的转动控制光标移动的说明,但实际上,空中鼠标是通过转动和平移共同控制光标的移动,具体为:图1示出了说明光标B和空中鼠标A运动关系的参考坐标系,x轴和y轴为相互垂直的水平轴和竖直轴,x轴的正向向左,y轴的正向向上,若光标可在三维空间移动,则垂直于屏幕的z轴的正向根据右手定则为向内,在此,空中鼠标采用相同定义的参考坐标系。当空中鼠标沿x轴正向(即向左平移)平移或者绕Z轴逆时针转动时,对应光标在屏幕上沿x轴正向平移,反之则沿x轴负向平移;当空中鼠标沿y轴正向平移(向上平移)或绕x轴沿x轴正向看逆时针转动时,对应光标在屏幕上沿y轴正向平移,反之则沿y轴负向平移;同理,若光标可在三维空间移动,则当空中鼠标沿z轴正向(即向前平移)平移或者绕y轴沿y轴正向看逆时针转动时,对应光标在屏幕上沿z轴正向平移,反之则沿y轴负向平移。在此,本领域技术人员应当清楚,光标的实际移动情况为上述各方向移动的综合体现。空中鼠标采用内置的例如是陀螺仪的倾角传感器判断空中鼠标绕各轴转动时的倾角变化(即当前位置相对上次转动后位置的倾角变化),并采用例如是加速度计的位移传感器判断空中鼠标(通常选定空中鼠标的质心)在各轴向平移的位移变化(即当前位置相对上次平移后位置的位移变化)。
由于使用者在通过空中鼠标操控光标时的手腕或手肘悬空没有支撑,因此,在使用者希望光标静止时,空中鼠标也会有轻微的抖动,即倾角传感器和位移传感器在静止时会有噪声输出,这样光标会在使用者希望其停留的位置处左右、上下抖动(对于二维空间而言)。如果光标不稳定,将严重影响使用,目前的降低灵敏度的方法均不能完全解决光标静止时抖动的问题,只能降低抖动范围,因此,对于空中鼠标而言,如何去除光标的抖动是亟待解决的问题。
发明内容
本发明的目的是提供一种去除空中鼠标的光标在至少一个轴向的抖动的方法。
本发明采用的技术方案为:一种空中鼠标的光标的去抖动方法,包括去除光标在参考坐标系的x、y、z轴中至少一个轴向的抖动的步骤,去除光标在是x轴、y轴或者z轴的w轴方向上抖动的具体步骤为:
步骤s1:空中鼠标的微处理器实时读取位移传感器输出的空中鼠标在w轴方向上平移的位置变化量Δp(w_平移)和倾角传感器输出的空中鼠标绕w′轴转动的位置变化量Δp(w′_转动),之后,次序进入或者并行进入步骤s2和步骤s3;其中,w轴为x轴、y轴、z轴分别对应w′轴为z轴,x轴、y轴;
步骤s2:微处理器判断读取的位置变化量Δp(w′_转动)的绝对值是否小于预设的空中鼠标绕w′轴转动时的停止预设值stop(w′_转动),如果是则进入步骤s21,否则进入步骤s22;
步骤s21:得到优化位置变化量Δp′(w′_转动)为0;其中,优化位置变化量Δp′(w′_转动)为微控制器根据读取的位置变化量Δp(w′_转动)发送给计算机的用于控制光标在w轴方向上移动的数据;
步骤s22:微处理器判断读取的位置变化量Δp′(w′_转动)是否为正数,如果是则进入步骤s221,否则进入步骤s222;
步骤s221:得到优化位置变化量Δp′(w′_转动)=位置变化量Δp(w′_转动)-停止预设值stop(w′_转动);
步骤s222:得到优化位置变化量Δp′(w′_转动)=位置变化量Δp(w′_转动)+停止预设值stop(w′_转动);
步骤s3:微处理器判断读取的位置变化量Δp(w_平移)的绝对值是否小于预设的空中鼠标沿w轴方向平移时的停止预设值stop(w_平移),如果是则进入步骤s31,否则进入步骤s32;
步骤s31:得到优化位置变化量Δp′(w_平移)为0;其中,优化位置变化量Δp′(w_平移)为微控制器根据读取的位置变化量Δp(w_平移)发送给计算机的用于控制光标在w轴方向上移动的数据;
步骤s32:微处理器判断读取的位置变化量Δp(w_平移)是否为正数,如果是则进入步骤s321,否则进入步骤s322;
步骤s321:得到优化位置变化量Δp′(w_平移)=位置变化量Δp(w_平移)-停止预设值stop(w_平移);
步骤s322:得到优化位置变化量Δp′(w_平移)=位置变化量Δp(w_平移)+停止预设值stop(w_平移)。
其中,确定停止预设值stop(w′_转动)的方法为:使用者手持带有倾角和位移传感器的空中鼠标静止不动,读取倾角传感器在预设确值时间内输出的绕w′轴转动的确值倾角变化量Δp″(w′_转动),停止预设值stop(w′_转动)=|确值倾角变化量Δp″(w′_转动)|+宽放值offset(w′_转动),其中宽放值offset(w′_转动)≥0。
其中,宽放值offset(w′_转动)的选取范围为[0,|Δp″(w′_转动)|]。
其中,确定停止预设值stop(w_平移)的方法为:使用者手持带有倾角和位移传感器的空中鼠标静止不动,读取位移传感器在预设确值时间内输出的绕w轴平移的确值平移变化量Δp″(w_平移),停止预设值stop(w_平移)=|确值平移变化量Δp″(w_平移)|+宽放值offset(w_平移),其中宽放值offset(w_平移)≥0。
其中,宽放值offset(w_平移)的选取范围为[0,|Δp″(w_平移)|]。
其中,空中鼠标的光标的去抖动方法包括去除光标在参考坐标系的x、y、z轴中二个轴向的抖动的步骤,以去除光标在由所选定的二个轴定义的平面上的抖动。
本发明的有益效果为:采用本发明的去抖动方法,至少可以去除光标在所希望的一个轴向的抖动,这可根据使用者的需求选择设定,对于平面操控,通常是去除光标在x和y轴上的抖动,这样就能去除光标在整个平面上运动的抖动。
附图说明
图1示出了光标和空中鼠标的参考坐标系;
图2示出了去除光标在x轴方向上抖动的部分流程图;
图3A示出了未应用本发明的去抖动方法时的光标在平面上移动的情况;
图3B示出了应用本发明的去抖动方法后的光标在平面上移动的情况。
具体实施方式
在实施本发明的去抖动方法时,首先需要设定空中鼠标的停止预设值stop(w_t)的大小,其中,w代表停止预设值所针对的轴向,w为x轴、y轴或z轴;t表示停止预设值所针对的运动方式,t为转动或者平移;如停止预设值stop(x_平移)为空中鼠标沿x轴方向平移时的停止预设值,停止预设值stop(z_转动)为空中鼠标绕z轴方向转动的停止预设值。在设定空中鼠标的停止预设值stop(w_t)时,可先查看在使用者手持带有倾角和位移传感器的空中鼠标静止不动时的状态,确定在预设确值时间(如2秒)内的确值位置变化量Δp″(w_t),其中,确值位置变化量Δp″(w_转动)为倾角传感器在预设确值时间内检测到的绕w轴转动的确值倾角变化量,确值位置变化量Δp″(w_平移)为位移传感器在预设确值时间内检测到的沿w轴平移的确值平移变化量,以此确值位置变化量Δp″(w_t)的绝对值加上一定的宽放值offset(w_t)(≥0)作为上述停止预设值stop(w_t),在此,对于常规使用,仅需控制光标在二维平面上移动,因而,在该步骤中,仅需要确定停止预设值stop(x_平移)、stop(z_转动)、stop(y_平移)和stop(x_转动),前两种运动对应光标在x轴方向上的移动,后两种运动对应光标在y轴方向上的移动,若将空中鼠标作为需要三维操作的手柄使用,则还需要确定停止预设值stop(z_平移)、stop(y_转动)。例如,若手持空中鼠标静止不动时,位置传感器检测到空中鼠标的确值位置变化量Δp″(x_平移)为±3,加入一定的例如是等于2的宽放值offset(x_平移)后可确定停止预设值stop(x_平移)为5;同理,若手持空中鼠标静止不动时,倾角传感器检测到空中鼠的确值位置变化量Δp″(z_转动)为±3,加入一定的例如是等于2的宽放值offset(z_转动)后可确定停止预设值stop(z_转动)为5。采用相同的方法即可确定所需的所有停止预设值stop(w_t),在此,上述数值为位置传感器的输出经数模转换后输入至空中鼠标的微处理器中的数值,其并不是实际的变化量,而是可反应实际的变化量。在确定确值位置变化量Δp″(w_t)时,可采用多次测量取平均值的方法。另外,宽放值offset(w_t)的选取范围一般为[0,|Δp″(w_t)|],优选为 宽放值选取的越小,灵敏度越高;宽放值选取的越大,去抖动的效果越好,但也会牺牲灵敏度,因此,宽放值offset(w_t)的选取可根据使用者的操作习惯确定。
如图1所示,本发明的去抖动方法去除光标在x轴方向上抖动的具体步骤为:
步骤s1:空中鼠标的微处理器实时读取位置变化量Δp(x_平移)和Δp(z_转动),之后,分别 进入步骤s2和步骤s3;
步骤s2:微处理器判断读取的位置变化量Δp(z_转动)的绝对值是否小于停止预设值stop(z_转动),如果是则进入步骤s21,否则进入步骤s22;
步骤s21:得到优化位置变化量Δp′(z_转动)为0,之后,进入步骤s1;其中,优化位置变化量Δp′(z_转动)为微控制器根据读取的位置变化量Δp(z_转动)发送给计算机的用于控制光标在x轴方向上移动的数据;
步骤s22:微处理器判断读取的位置变化量Δp(z_转动)是否为正数,如果是则进入步骤s221,否则进入步骤s222;
步骤s221:得到优化位置变化量Δp′(z_转动)=位置变化量Δp(z_转动)-停止预设值stop(z_转动),之后进入步骤s1;
步骤s222:得到优化位置变化量Δp′(z_转动)=位置变化量Δp(z_转动)+停止预设值stop(z_转动),之后进入步骤s1;
步骤s3:微处理器判断读取的位置变化量Δp(x_平移)的绝对值是否小于停止预设值stop(x_平移),如果是则进入步骤s31,否则进入步骤s32;
步骤s31:得到优化位置变化量Δp′(x_平移)为0,之后,进入步骤s1;其中,优化位置变化量Δp′(x_平移)为微控制器根据读取的位置变化量Δp(x_平移)发送给计算机的用于控制光标在x轴方向上移动的数据;
步骤s32:微处理器判断读取的位置变化量(x_平移)是否为正数,如果是则进入步骤s321,否则进入步骤s322;
步骤s321:得到优化位置变化量Δp′(x_平移)=位置变化量Δp(x_平移)-停止预设值 stop(x_平移),之后进入步骤s1;
步骤s322:得到优化位置变化量Δp′(x_平移)=位置变化量Δp(x_平移)+停止预设值stop(x_平移),之后进入步骤s1。
计算机根据接收到的优化位置变化量Δp′(z_转动)和优化位置变化量Δp′(x_平移)控制光标沿x轴移动,光标最终停留的位置是由优化位置变化量Δp′(z_转动)和优化位置变化量Δp′(x_平移)分别作用的矢量叠加。去除光标在y轴和z轴方向上抖动的具体步骤可参照上述步骤执行。
例如,若确定停止预设值stop(z_转动)为5,读取的位置变化量Δp(z_转动)有-6,-3,-2,1,6,7;则微处理器处理后输出的优化位置变化量Δp′(z_转动)为-1,0,0,0,1,2,这样就不会向计算机输出绝对值小于停止预设值stop(z_转动)的数据,即可去除抖动。
图3A示出了未应用本发明的去抖动处理时的光标在平面上移动的情况,图3B示出了应用本发明的去抖动处理后的光标在平面上移动的情况,经过对比可知,采用本发明的去抖动处理可有效地去除噪声和抖动。
上述的用于检测空中鼠标绕各轴转动的倾角变化量的倾角传感器例如是陀螺仪,而用于检测空中鼠标沿各轴向平移的平移变化量的位移传感器例如是加速度计。
以上所述仅为本发明较佳的实施方式,并非用来限定本发明的实施范围,但凡在本发明的保护范围内所做的等效变化及修饰,皆应认为落入了本发明的保护范围内。