空间鼠标的数据处理方法以及鼠标指针的控制方法与流程

文档序号:11464369阅读:210来源:国知局
空间鼠标的数据处理方法以及鼠标指针的控制方法与流程
本发明涉及空间鼠标技术领域,尤其涉及一种空间鼠标的数据处理方法以及鼠标指针的控制方法。

背景技术:
目前,计算机鼠标指针的定位大多数都依靠光学传感器或激光传感器来实现,这些传感器都基于物理光学原理,使得传感器需要依靠桌面等平台来实现。但是在很多场合,例如在计算机多媒体教学中,用户想在空中操控鼠标指针或是通过在空中操控鼠标指针来实现多媒体电视播放、网页浏览等应用,仅使用传统的传感器就无法实现,于是空间鼠标应运而生。空间鼠标是一种输入设备,像传统鼠标一样操作鼠标指针(屏幕光标),但却不需要放在任何平面上,在空中晃动就能直接依靠空中运动姿态的感知实现对鼠标指针的控制。要实现空中运动姿态的感知,一般在空间鼠标中设置惯性器件,利用惯性器件测量技术实现对运动载体姿态的跟踪。惯性跟踪系统的基本原理是在目标初始位置和姿态已知的基础上,依据惯性原理,利用陀螺仪传感器、加速度传感器等惯性器件测量物体运动的角速度和直线加速度,然后通过积分获得物体的位置和姿态。但是在实际使用的过程中,在惯性器件打开的时候,所述惯性器件在初始点位置计算得到的位移变化量是会有问题的。在实际应用中,用户经常会根据各种实际使用需求,短时间或者长时间关闭空间鼠标的惯性器件,在惯性器件重新开启时,对于初始点位置而言,其位移变化量是由当前采集到的空间坐标数据和所记录的前一次采集的空间坐标数据的差值得到的,所述前一次采集的空间坐标数据为所述惯性器件上次关闭前最后一次采集到的空间坐标数据,因为惯性器件在关闭和重新开启时通常都不会是处于同一位置或相近位置的,所以由此计算出的初始点位置的空间鼠标的位移变化量可能是有问题的,并进而确定的所述空间鼠标的位置和姿态就会有误差,鼠标定位就会有误差。相关技术可参考公开号为US2009295729(A1)的美国专利申请,该专利申请公开了一种空间定位的具体实现。

技术实现要素:
本发明解决的问题是惯性器件开启后,第一次计算得到的空间鼠标的位移变化量可能存在误差的问题。为解决上述问题,本发明提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量;丢弃所述惯性器件开启后第一次计算得到的空间鼠标的位移变化量。可选的,在丢弃所述惯性器件重新开启后第一次计算得到的空间鼠标的位移变化量后,对数据丢弃标志位置位;所述数据丢弃标志位在空间鼠标初始化时和惯性器件关闭时复位。可选的,所述方法还包括:若接收到坐标输出关闭命令,则停止计算所述空间鼠标的位移变化量;在接收到坐标输出关闭命令后预设时间范围内接收到坐标输出开启命令,则继续由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量;若在接收到坐标输出关闭命令后预设时间范围内未接收到坐标输出开启命令,则关闭所述惯性器件。可选的,在接收到坐标输出关闭命令后预设时间范围内记录所述惯性器件采集的空间坐标数据。可选的,所述预设时间范围大于或等于5s。可选的,基于所述空间鼠标的运动状态,对计算得到的空间鼠标的位移变化量进行修正。可选的,所述基于所述空间鼠标的运动状态,对计算得到的空间鼠标的位移变化量进行修正包括:若所述空间鼠标在水平状态下运动,则保持所述空间鼠标的位移变化量;若所述空间鼠标在垂直状态下运动,则缩小所述空间鼠标的位移变化量在x方向和y方向上的分量;若所述空间鼠标在侧立状态下运动,则放大所述空间鼠标的位移变化量在y方向上的分量。可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,空间鼠标的空间坐标数据在z方向的输出值越小,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大。可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,a为衰减系数,1≤a≤5。可选的,所述若所述空间鼠标在垂直状态下运动,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量还包括:若缩小后的所述空间鼠标的位移变化量在x方向和y方向上的分量大于分量阈值,则将所述空间鼠标的位移变化量在x方向和y方向上的分量设置为所述分量阈值。可选的,所述分量阈值为100。可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量包括:空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。可选的,所述若所述空间鼠标在侧立状态下运动,放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是空间鼠标的空间坐标数据在z方向的输出值,b为放大系数,1≤b≤5。为了解决上述技术问题,本发明技术方案还提供一种鼠标指针的控制方法,其特征在于,包括:采用如上所述的空间鼠标的数据处理方法获取所述空间鼠标的位移变化量;根据所述空间鼠标的位移变化量控制鼠标指针的移动。与现有技术相比,本发明的技术方案具有以下优点:由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量,在惯性器件重新开启后,丢弃第一次计算得到的空间鼠标的位移变化量,可以有效滤除惯性器件开启后第一次计算得到的可能错误的空间鼠标的位移变化量,使得计算得到的所述空间鼠标的位移变化量精确和可靠,提高空间鼠标定位的准确性。在可选方案中,在接收到坐标输出关闭命令后,在预设时间范围内继续记录所述惯性器件采集的空间坐标数据,停止计算所述空间鼠标的位移变化量,则在预设时间范围内再次收到坐标输出开启命令的时候,就可以根据所述记录的惯性器件采集的空间坐标数据快速、准确获得所述空间鼠标的位移变化量。在可选方案中,根据所述空间鼠标的运动状态,对计算得到的空间鼠标的位移变化量进行修正,可以准确获得所述空间鼠标的位移变化量。附图说明图1是本发明实施例一的空间鼠标的数据处理方法的流程示意图;图2是本发明实施例二的空间鼠标的数据处理方法的流程示意图;图3是本发明实施例三的空间鼠标的数据处理方法的流程示意图;图4是本发明实施例三的基于空间鼠标不同的运动状态对计算得到的空间鼠标的位移变化量进行修正的流程示意图。具体实施方式空间鼠标在正常使用时,要先打开空间鼠标和终端的电源开关,待空间鼠标和终端之间的无线通信链路建立后,空间鼠标就进入了工作状态。具体的,空间鼠标进入工作状态后首先由惯性器件采集空间坐标数据,其中惯性器件可以是陀螺仪传感器或重力加速度传感器,可以通过陀螺仪传感器测量得到的角速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到所述空间鼠标的空间坐标数据,也可以通过结合陀螺仪传感器以及重力加速度传感器测量得到的参数信息得到所述空间鼠标的空间坐标数据,所述得到所述空间鼠标的空间坐标数据的方法可以采用本领域技术人员所知晓的多种方法进行,在此不再赘述。终端接收到空间鼠标的空间坐标数据后,根据前后两次的所述空间坐标数据可以获得所述空间鼠标的位移变化量,然后通过转换计算将其转换为鼠标指针数据,如显示屏幕上的鼠标指针的平面坐标或平面坐标的变化量,就完成了空间鼠标对鼠标指针的控制。如果空间鼠标的内存允许,还可以将空间坐标数据到鼠标指针数据的转换过程放在空间鼠标内部执行,然后直接将鼠标指针数据发送给终端,再由终端完成对鼠标指针在显示屏幕上的移动控制。在基于惯性器件所采集到的空间坐标数据得到空间鼠标的位移变化量的过程中,从惯性器件在起始点位置计算空间鼠标的位移变化量、在任意位置计算空间鼠标位移变化量以及在惯性器件在短时间关闭坐标输出后再次计算空间鼠标的位移变化量的任何一个阶段中都可能会产生误差,现有技术中,有对空间鼠标的位移变化量进行校正的相关技术,但并没有一个完整、有效的方法可以使得上述各个阶段所得到的数据都准确和有效。上述过程中,在惯性器件打开(第一次开启或者重新开启)的时候,所述惯性器件在初始点位置的位移变化量可能是会有问题的。在实际应用中,用户经常会根据各种实际使用需求,短时间或者长时间关闭空间鼠标的惯性器件,而所述位移变化量是由当前采集到的空间坐标数据和所记录的前一次采集的空间坐标数据的差值得到的,在短时间或者长时间关闭空间鼠标的惯性器件时,空间鼠标系统在惯性器件关闭的这段时间是无法检测到惯性器件的运动过程的,系统所记录的最后的空间坐标数据是在所述惯性器件关闭前最后一次采集到的空间坐标数据,在惯性器件重新开启时,对于初始点位置而言,其前一次采集的空间坐标数据为所述惯性器件关闭前最后一次采集到的空间坐标数据,由此计算出的初始点位置的空间鼠标的位移变化量可能是有问题的,因为惯性器件在关闭和重新开启时通常都不会是处于同一位置或相近位置的。为解决上述问题,本发明技术方案提供一种空间鼠标的数据处理方法,所述空间鼠标包括适于采集空间坐标数据的惯性器件,所述方法包括:由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量;丢弃所述惯性器件开启后第一次计算得到的空间鼠标的位移变化量。为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。实施例一本实施例是对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除。在本实施例中,在惯性器件开启后,丢弃所述惯性器件开启后第一次计算得到的空间鼠标的位移变化量(即上述初始点位置的位移变化量),而由于在此之后计算得到的空间鼠标的位移变化量不存在如计算初始点位置时的问题,所以可以直接输出所述空间鼠标的位移变化量。图1是本实施例提供的空间鼠标的数据处理方法的流程示意图,如图1所示,首先执行步骤S101,采集当前空间坐标数据。在惯性器件开启后,由所述惯性器件采集当前空间鼠标的空间坐标数据,可以采用现有技术中的多种方法由所述惯性器件采集得到空间鼠标当前的空间坐标数据,在此不再赘述。步骤S102,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。步骤S103,判断数据丢弃标志位是否置位。在本实施例中,可以预先设置一个数据丢弃标志位,用于标示计算得到的空间鼠标的位移变化量是否被丢弃,此数据丢弃标志位在空间鼠标初始化时或者惯性器件关闭时复位。在惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量是需要丢弃的,在丢弃所述惯性器件第一次开启或重新开启后第一次计算得到的空间鼠标的位移变化量后,对所述数据丢弃标志位置位。在此步骤中,判断数据丢弃标志位是否置位,如果是,则执行步骤S105,否则执行步骤S104。步骤S104,丢弃所述空间鼠标的位移变化量,对数据丢弃标志位置位。也就是说,对于惯性器件第一次开启或重新开启后的第一次计算得到的空间鼠标的位移变化量直接丢弃,不需要进行后续的数据处理。在数据丢弃标志位没有被置位的时候,即复位的情况下,标志着当前得到的这包数据就是惯性器件第一次开启或重新开启后,第一次计算得到的空间鼠标的位移变化量,而所述第一次计算得到的空间鼠标的位移变化量如上所述是有问题的,此时丢弃所述当前空间鼠标的位移变化量,并对数据丢弃标志位置位。在丢弃第一次计算得到的空间鼠标的位移变化量后,继续由所述惯性器件采集空间坐标数据,并计算所述空间鼠标的位移变化量,即返回执行步骤S101。需要说明的是,在空间鼠标初始化(第一次开启空间鼠标)时,不存在前一次采集到的空间坐标数据,此时,可以预先设置前一次采集到的空间坐标数据为0,计算空间鼠标在初始点位置的位移变化量时,可以用当前采集到的空间坐标数据和0的差值,即用当前采集到的空间坐标数据作为第一次计算得到的空间鼠标的位移变化量,丢弃所述第一次计算得到的空间鼠标的位移变化量,并对数据丢弃标志位置位。步骤S105,输出所述空间鼠标的位移变化量。在数据丢弃标志位被置位的时候,标志着惯性器件开启后,第一次计算得到的空间鼠标的位移变化量已被丢弃,此时得到的空间鼠标的位移变化量为正确的,可以直接输出所述空间鼠标的位移变化量,以进行后续的数据处理。在惯性器件每次采集空间坐标数据后都可以执行本实施例的步骤102至S105。本实施例的空间鼠标的数据处理方法,在惯性器件开启后,通过在计算得到空间鼠标的位移变化量时先滤除初始点位置的位移变化量(第一次计算得到的空间鼠标的位移变化量),可以有效滤除第一次计算得到的可能错误的空间鼠标的位移变化量,使得计算得到的所述空间鼠标的位移变化量精确和可靠,提高空间鼠标定位的准确性。实施例二本实施例是先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。在空间鼠标的使用过程中,可以通过对空间鼠标上特定的按键操作发出用于关闭坐标输出功能的坐标输出关闭命令,以控制空间鼠标暂停向接收终端(如控制屏幕鼠标指针移动的计算机等处理设备)发送坐标数据(如空间鼠标的位移量或空间坐标数据的输出值),但此时并不关闭惯性器件,即惯性器件仍然不间断地采集所述空间鼠标的空间坐标数据。通常,考虑到系统功耗的问题,在接收到坐标输出关闭命令后,如果在预设时间范围内,没有再次收到坐标输出开启命令,系统可以自动关闭空间鼠标的惯性器件。而如果在短时间(如上述的预设时间范围)关闭坐标输出的情况下,仍然计算空间鼠标的位移变换量,则可能会有以下问题:由于系统进行计算所述空间鼠标的位移变化量是需要一定的系统消耗的,而在坐标输出关闭的短时间内并不需要输出空间坐标数据以及空间鼠标的位移变化量,短时间内一直计算所述空间鼠标的位移变化量会造成不必要的系统消耗。考虑到上述问题,在这段短时间内,也可以停止空间鼠标的位移变化量的计算以降低对系统的消耗。考虑到当再次收到坐标输出开启的命令,可以快速计算得到所述空间鼠标的位移变化量,因此,也可以在停止空间鼠标的位移变化量的计算时,继续采集空间鼠标数据并对其进行记录,则在收到再次收到坐标输出开启的命令的时候,可以直接由所述继续采集到的空间鼠标数据计算得到所述空间鼠标的位移变化量。因此,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况,本实施例的空间鼠标的数据处理方法在收到坐标输出关闭命令时,继续采集空间坐标数据并对其进行记录,但并不计算所述空间鼠标的位移变化量,如果在预设的时间范围内再次接收到坐标输出开启命令,则可以直接由当前采集的空间坐标数据以及记录的前一次空间坐标数据计算所述空间鼠标的位移变化量,可以快速、准确获得所述空间鼠标的位移变化量。所述预设时间范围应该是一个合理的时间范围,如果设置的太短,则可能会频繁关闭和开启惯性器件,由此造成不必要的系统消耗;如果设置的太长,系统在不需要输出坐标数据的情况下,一直采集和记录空间坐标数据也会产生系统消耗。当然,如果不考虑功耗问题,预设时间范围也可以设置的长些。本实施例中,所述预设时间范围设置为5s。如图2所示,首先执行步骤S201,采集当前空间坐标数据,在惯性器件打开后,由所述惯性器件采集空间鼠标的当前空间坐标数据。步骤S202,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。在得到所述空间鼠标的位移变化量后,首先对所述空间鼠标的位移变化量的初始点位置的数据进行滤除。具体地,执行步骤S203和步骤S204,可以参考实施例一的步骤S103和S104。在对空间鼠标的位移变化量的初始点位置的数据滤除之后,执行步骤S205,输出所述空间鼠标的位移变化量。执行步骤S206,判断是否收到坐标输出关闭命令。系统实时判断是否收到坐标输出关闭命令,如果是,则执行步骤S207;如果否,则继续由采集到的空间坐标数据计算和输出所述空间鼠标的位移变化量,即返回执行步骤S201。步骤S207,记录惯性器件采集的空间坐标数据。由于此时已收到坐标输出关闭命令,则不需要再计算所述空间鼠标的位移变化量,而记录惯性器件采集的空间坐标数据,是为了在预设时间范围内再次收到坐标输出开启命令的时候,可以直接由最后一次记录的空间坐标数据计算所述空间鼠标的位移变化量。执行步骤S208,判断是否收到坐标输出开启命令,如果是,则恢复计算并输出空间鼠标的位移变化量,即返回执行步骤S201;如果否,则执行步骤S209,判断坐标输出关闭命令所持续的时间是否超过5s。如果步骤S209的判断结果为是,也就是5s内都没有收到坐标输出开启命令,则执行步骤S210,关闭空间鼠标的惯性器件;如果步骤S209的判断结果为否,则执行步骤S211,采集当前空间坐标数据,然后返回执行步骤S207,记录惯性器件采集的空间坐标数据。需要说明的是,如果在超过5s后,再次收到坐标输出开启命令,则先开启惯性器件,然后从步骤S201开始执行。在本实施例中,通过在计算得到空间鼠标的位移变化量时先滤除初始点位置的位移变化量,然后针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行处理的方法,可以有效滤除第一次计算得到的可能错误的空间鼠标的位移变化量,而且针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,并可以快速、准确得到空间鼠标的位移变化量。实施例三本实施例是先对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除,然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正,并针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行的数据处理。在本实施例中,在对惯性器件开启后第一次计算得到的空间鼠标的位移变化量进行滤除之后,在后续数据处理的过程中,根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正,以得到精确的空间鼠标的位移变化量。在由惯性器件采集到空间鼠标的空间坐标数据后,可以由当前采集到的空间坐标数据和前一次采集到的空间坐标数据获得空间鼠标的位移变化量,在现有技术中,为解决各种因素对空间鼠标的数据处理准确性的影响,已有多种对于空间鼠标在运动过程中的位移变化量dx、dy进行补偿的方法,但却没有涉及到根据空间鼠标的运动状态来修正位移变化量dx、dy。其中,dx为位移变化量在x方向上的分量,dy为所述位移变化量在y方向上的分量。通常,x方向对应屏幕的水平方向,y方向对应屏幕的竖直方向,z方向垂直x方向和y方向。在空间鼠标的实际使用中,当空间鼠标运动的时候,可以通过z方向上的数据对空间鼠标的旋转角度等进行补偿,进而得到空间鼠标在运动过程中的位移变化量dx和dy。正常情况下,z方向上的数据是会受到重力加速度影响的,会以重力加速度作为参考点的,但当空间鼠标处于垂直状态下运动的时候,此时z方向上重力加速度的值接近于所述重力加速度的参考点的零点,即此时相当于没有重力加速度做参考,则测得的z方向上的数据是有误差,测得的值会比较大,而用一个比较大的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dx和dy也是偏大的,空间鼠标运动时越垂直,则得到的位移变化量dx和dy值也就越偏大。同理,对于空间鼠标处于水平状态下的运动,以及处于侧立状态下的运动,也会由于重力加速度的原因,而导致输出的空间鼠标的位移变化量在x方向的分量dx以及在y方向上的分量dy的值可能会有误差。在本实施例中,基于所述空间鼠标的运动状态,修正所述空间鼠标的位移变化量。所述空间鼠标的运动状态可以根据重力加速度传感器的数据进行判断,所述运动状态可以为水平状态下的运动、垂直状态下的运动以及侧立状态下的运动等。如图3所示,首先执行步骤S301,采集当前空间坐标数据。可以参考实施例一步骤S101,在惯性器件打开后,由所述惯性器件采集当前空间鼠标的空间坐标数据。步骤S302,由当前采集到的空间坐标数据和前一次采集到的空间坐标数据计算所述空间鼠标的位移变化量。在得到所述空间鼠标的位移变化量后,首先对所述空间鼠标的位移变化量的初始点位置的数据进行滤除。具体地,执行步骤S303和步骤S304,可以参考实施例一的步骤S103和S104。在对空间鼠标的位移变化量的初始点位置的数据滤除之后,执行步骤S305,判断判断空间鼠标的运动状态。根据重力加速度传感器的数据判断当前空间鼠标的运动状态。例如,在所述空间鼠标在运动的过程中可以通过重力加速度传感器测量得到的直线加速度等参数信息而得到基于重力加速度传感器的空间坐标数据,根据前后至少两次得到的基于重力加速度传感器的空间坐标数据来判断当前空间鼠标的运动状态。执行步骤S306,基于所述空间鼠标不同的运动状态,对计算得到的空间鼠标的位移变化量进行修正。具体地,上述步骤S305至步骤S307可以参见图4,图4是本实施例的判断空间鼠标的运动状态以及基于所述空间鼠标不同的运动状态对计算得到的空间鼠标的位移变化量进行修正的流程示意图,如图4所示,步骤S401,判断空间鼠标的运动状态。步骤S401即为本实施例步骤S305。具体地,如果空间鼠标输出的位移变化量在z方向上的分量没有变化时,仅在y方向上的分量有变化时,判断当前空间鼠标处于水平状态下运动,此时执行步骤S402,确定当前空间鼠标为水平状态下运动。如果空间鼠标输出的位移变化量仅在z方向上的分量有变化时,而在x方向上和y方向的分量均没有变化时,判断当前空间鼠标处于垂直状态下运动,此时执行步骤S403,确定当前空间鼠标为垂直状态下运动。如果空间鼠标输出的位移变化量仅在x方向上的分量有变化量时,而在y方向上和z方向的分量均没有变化时,判断当前空间鼠标处于侧立状态下运动,此时执行步骤S404,确定当前空间鼠标为侧立状态下运动。然后根据空间鼠标的不同的运动状态,对空间鼠标的位移变化量进行修正。若所述空间鼠标在水平状态下运动,则可以不进行任何修正;若所述空间鼠标在垂直状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越小,当空间鼠标的空间坐标数据在z方向的输出值越小(即空间鼠标越垂直的时候),所述空间鼠标的位移变化量在x方向和y方向上的分量缩小程度越大;若所述空间鼠标在侧立状态下运动,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越小,当空间鼠标的空间坐标数据在z方向的输出值越大,所述空间鼠标的位移变化量在y方向上的分量放大程度越大。具体地,在由步骤S402确定当前空间鼠标为水平状态下运动时,执行步骤S405,保持所述空间鼠标的位移变化量。由于水平状态下运动时,重力加速度对于空间鼠标运动的影响基本可以忽略不计,所以对于所获得的空间鼠标位移变化量可以不进行任何修正,直接输出即可。在由步骤S403确定当前空间鼠标为垂直状态下运动时,执行步骤S406,缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。当空间鼠标为垂直状态下运动时,由于受重力加速度的影响,得到的dx和dy是偏大的,此时应该适当的对dx和dy进行衰减,即缩小所述空间鼠标的位移变化量在x方向和y方向上的分量。本实施例中,所述缩小所述空间鼠标的位移变化量在x方向和y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在x方向上的分量dx缩小为(f(z)/a)×dx,所述空间鼠标的位移变化量在y方向上的分量dy缩小为(f(z)/a)×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,a为衰减系数,1≤a≤5。进一步,还可以预先设置分量阈值,用于控制dx以及dy缩小的程度。举例来说,可以预先设置分别对应于dx和dy的分量阈值(单位为长度单位),若缩小后的所述空间鼠标的位移变化量在x方向上的分量大于对应于dx的分量阈值,则将所述空间鼠标的位移变化量在x方向上的分量强制设置为该对应于dx的分量阈值;若缩小后的所述空间鼠标的位移变化量在y方向上的分量大于对应于dy的分量阈值,则将所述空间鼠标的位移变化量在y方向上的分量强制设置为该对应于dy的分量阈值。所述对应于dx的分量阈值和对应于dy的分量阈值为经验值,可以根据实际应用设置为同样的数值,例如100,也可以设置为不同的数值,在此不做限定。在由步骤S404确定当前空间鼠标为侧立状态下运动时,执行步骤S407,放大所述空间鼠标的位移变化量在y方向上的分量。当空间鼠标处于侧立状态下运动的时候,此时重力加速度对y方向上的运动会影响最大,相对于z方向上的数据,此时相当于以较大的重力加速度做参考,测得的z方向上的数据值相对来说会比较小,用一个比较小的值对空间鼠标的旋转角度等进行补偿时,得到的空间鼠标在运动过程中的位移变化量dy也是偏小的,此时应该适当的对dy进行放大,即放大所述空间鼠标的位移变化量在y方向上的分量。本实施例中,所述放大所述空间鼠标的位移变化量在y方向上的分量通过下述方式实现:所述空间鼠标的位移变化量在y方向上的分量dy放大为(b/f(z))×dy,其中,f(z)是基于重力加速度传感器的空间坐标数据在z方向的数据,b为放大系数,1≤b≤5。至此完成根据空间鼠标的不同运动状态,对计算得到的空间鼠标的位移变化量进行修正的过程,如图3所示,即可以执行步骤S307(即图4所示步骤S408),输出所述空间鼠标的位移变化量。将上述根据空间鼠标的不同运动状态,修正后的空间鼠标的位移变化量作为最终值进行输出。在惯性器件每次采集空间坐标数据后都可以执行本实施例的步骤S401至S407,对计算得到的空间鼠标的位移变化量进行修正。之后可以执行步骤S308至步骤S313,针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况下进行数据处理,具体可以参考实施例二步骤S206至步骤S211。需要说明的是,在步骤S303的判断结果为是之后且执行步骤S305之前,或者在步骤S405、S406或S407执行之后且执行步骤S408(图3所示步骤S307)之前,还可以根据实际应用情况,进一步采用一些现有的对位移变化量dx、dy进行修正或补偿的方法,以消除其他因素对空间鼠标的位移变化量的影响,可以使得最终输出空间鼠标的位移变化量更为精确。本实施例的空间鼠标的数据处理方法,不仅可以有效滤除第一次计算得到的可能错误的空间鼠标的位移变化量,且可以由效解决由于重力加速度的原因而导致输出的空间鼠标的位移变化量因为运动状态的不同而产生误差的问题,同时针对空间鼠标在短时间关闭坐标输出但不关闭惯性器件的情况进行数据处理,可以有效降低系统功耗,并可以快速、准确得到空间鼠标的位移变化量。通过本实施例所提供的方法,可以使得空间鼠标的各个阶段所得到的数据都准确、有效。本发明技术方案还提供了一种鼠标指针的控制方法,所述方法采用上述空间鼠标的数据处理方法获取所述空间鼠标的位移变化量,根据所述空间鼠标的位移变化量控制鼠标指针的移动。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1