CN102262460B - 空中鼠标及控制鼠标指针移动的方法与装置 - Google Patents
空中鼠标及控制鼠标指针移动的方法与装置 Download PDFInfo
- Publication number
- CN102262460B CN102262460B CN2011102506705A CN201110250670A CN102262460B CN 102262460 B CN102262460 B CN 102262460B CN 2011102506705 A CN2011102506705 A CN 2011102506705A CN 201110250670 A CN201110250670 A CN 201110250670A CN 102262460 B CN102262460 B CN 102262460B
- Authority
- CN
- China
- Prior art keywords
- mouse
- sensitive axes
- coordinate
- index value
- pitch angle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
Abstract
一种空中鼠标及控制鼠标指针移动的方法与装置,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,所述控制鼠标指针移动的方法包括:基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;确定空中鼠标的空间坐标;将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。本发明技术方案能实现根据空中鼠标的实际运动情况动态调节报点率,以控制鼠标指针的移动。
Description
技术领域
本发明涉及定位技术领域,特别涉及一种空中鼠标及控制鼠标指针移动的方法与装置。
背景技术
目前,计算机鼠标指针的定位大多数都依靠光学传感器或激光传感器来实现,这些传感器都基于物理光学原理,使得传感器需要依靠桌面等平台来实现。但是在很多场合,例如在计算机多媒体教学中,用户想在空中操控鼠标指针或是通过在空中操控鼠标指针来实现多媒体电视播放、网页浏览等应用,仅使用传统的传感器就无法实现,于是空中鼠标应运而生。空中鼠标是一种输入设备,像传统鼠标一样操作屏幕光标(鼠标指针),但却不需要放在任何平面上,在空中晃动就能直接依靠空中运动姿态的感知实现对鼠标指针的控制。要实现空中运动姿态的感知,一般在空中鼠标内设置惯性器件,利用惯性器件测量技术实现对运动载体姿态的跟踪。
利用惯性器件测量技术进行运动载体姿态的跟踪具有非常广阔的前景。惯性跟踪系统的基本原理是在目标初始位置和姿态已知的基础上,依据惯性原理,利用陀螺仪传感器、加速度传感器等惯性器件测量物体运动的角速度和直线加速度,然后通过积分获得物体的位置和姿态。其中,陀螺仪基本原理是运用物体高速旋转时,强大的角动量使旋转轴一直稳定指向一个方向的性质,所制造出来的定向仪器。当运动方向与转轴指向不一致时,会产生相应的偏角,再根据偏角与运动的关系,得到目前运动物体的运动轨迹和位置,从而实现定位的功能。而加速度传感器技术是惯性与力的检测综合体,目前在汽车电子和消费电子领域有较多的应用。加速度传感器通过实时采集运动物体加速度信号,通过二阶积分的方式得到运动的轨迹实现定位。另外,在器件处于相对稳定的状态下,可以通过分析传感器件自身重力加速度,得到目前器件的自身姿态。然而,由于陀螺仪传感器技术以及加速度传感器技术都存在运动物体姿态与运动状态很难完全体现的不足,因此,通常将陀螺仪传感器技术以及加速度传感器技术结合,从而能实现空间定位的准确性和稳定性。
鼠标的报点率(mouse report rate)又称为报告率,是衡量鼠标性能的一个重要指标,报点率的单位是Hz,它能反映出一秒钟内鼠标向系统(通常指计算机系统,也可指包含计算机系统的设备,例如计算机、数字电视机、投影仪等)发送数据(该数据一般指用于鼠标指针定位的坐标或坐标的变化量)的频率,即一秒钟内鼠标传送数据给系统的次数。报点率当然是越高越好,报点率越高鼠标指针的定位也就越准,因为单位时间内传送数据给系统的次数越多则表示鼠标指针(光标)的移动更为细腻滑顺,点击也能更为精准。一般地,普通USB接口的鼠标最高可以达到125Hz的报点率,而一个PS/2接口的鼠标却只能在40Hz到90Hz之间徘徊,大多数为60Hz左右。
但是,对于空中鼠标来说,由于其向系统传输数据(以控制鼠标指针的移动)通常是通过一无线射频模块以发射无线信号的方式进行的,每次发射的功耗较大,而单位时间内传送数据给系统的次数越多则意味着功耗越大,从而减少了空中鼠标的待机时间(缩短了使用寿命,需要以更高频率更换电池)。而且,空中鼠标的报点率通常是预先设定好的,用户使用空中鼠标控制鼠标指针移动时,只能以固定的报点率输出数据,难以根据空中鼠标的实际运动情况动态调节报点率。
另一方面,空中鼠标需要确定其空间坐标的变化,并将所述空间坐标的变化除以一定的灵敏度系数后得到鼠标指针的坐标变化,从而实现对鼠标指针的控制。而现有技术中,无论是陀螺仪传感器通过测量其敏感轴的角速度进而利用积分运算得出倾斜角以确定空中鼠标的空间坐标变化,还是加速度传感器通过测量各敏感轴的加速度分量进而通过反三角函数运算得出倾斜角以确定空中鼠标的空间坐标变化,都需要进行复杂的运算(积分运算、反三角函数运算等),而且这些运算中大多涉及浮点运算,这对于空中鼠标中的处理控制芯片来说,例如微控制器(MCU,Micro Control Unit),如果选用处理能力相对较弱的MCU,由于其有限的处理能力,在进行复杂而大量的运算时需要耗费较多的资源,导致处理速度较慢,难以使空中鼠标以较高的报点率输出数据,而且具有较高的功耗,如果选用处理能力更强的MCU,又会使成本上升。
相关技术还可参考公开号为WO2005108119(A2)的国际专利申请,该专利申请公开了一种带有倾斜补偿和提高可用性的自由空间定位设备。
发明内容
本发明要解决的问题是现有技术中难以根据空中鼠标的实际运动情况动态调节报点率以控制鼠标指针的移动。
为解决上述问题,本发明的技术方案提供一种控制鼠标指针移动的方法,利用空中鼠标控制鼠标指针的移动,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,所述控制鼠标指针移动的方法包括:
基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;
确定空中鼠标的空间坐标;
将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;
以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
可选的,所述基于所述加速度输出值的矢量和设定空中鼠标的报点率包括:按加速度由小到大依次设置多个档次的加速度范围,每一档次的加速度范围对应一个报点率的设定范围,根据所述加速度输出值的矢量和所处加速度范围的档次确定对应的报点率的设定范围,所述加速度范围的档次越高,对应的报点率的设定越高。
可选的,所述确定空中鼠标的空间坐标包括:
建立索引值与敏感轴的参数之间的对应关系,所述索引值与所述惯性器件的敏感轴的测量值所对应,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;
获取所述惯性器件的各个敏感轴的测量值;
基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。
可选的,所述敏感轴的参数包括基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标包括:
基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的惯性器件的敏感轴的坐标值;
基于查询到的惯性器件的敏感轴的坐标值确定所述空中鼠标的空间坐标。
可选的,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值;基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标包括:
基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的敏感轴的倾斜角及其三角函数值;
基于查询到的惯性器件的敏感轴的倾斜角及其三角函数值,确定所述空中鼠标的空间坐标。
可选的,按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述对应关系中敏感轴的参数的配置。
可选的,将与所述索引值对应的倾斜角的三角函数值扩大预定倍数并取整。
可选的,所述确定空中鼠标的空间坐标还包括以稳定的敏感轴确定所述空中鼠标的空间坐标;判断敏感轴是否稳定包括:若缓存区内不同的索引值的数量小于或等于第一阈值,且各索引值之间的差值均小于或等于第二阈值,则确定该敏感轴稳定;所述缓存区存有每隔预定时间所获取的索引值。
可选的,所述控制鼠标指针移动的方法还包括:以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势,若所述运动趋势为直线运动,则降低所述空中鼠标的报点率。
可选的,所述以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势包括:若任意两个连续的索引值之差小于或等于第三阈值,则识别出所述运动趋势为直线运动。
可选的,所述控制鼠标指针移动的方法还包括:对至少两个连续确定的空中鼠标的空间坐标进行插值运算。
可选的,所述进行插值运算包括:若所述运动趋势为直线运动,则进行线性插值运算,否则进行抛物线插值运算。
可选的,所述重力加速度传感器为电容式重力加速度传感器,所述测量值为所述电容式重力加速度传感器的敏感轴的电容值。
可选的,所述惯性器件还包括陀螺仪传感器,所述测量值为所述陀螺仪传感器的敏感轴的电压值。
可选的,所述重力加速度传感器至少包括两个相互垂直的敏感轴,其中一个敏感轴垂直于地平面。
为解决上述问题,本发明的技术方案还提供一种控制鼠标指针移动的装置,利用空中鼠标控制鼠标指针的移动,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,所述控制鼠标指针移动的装置包括:
报点率设定单元,用于基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;
坐标确定单元,用于确定空中鼠标的空间坐标;
转换单元,用于将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;
控制单元,用于以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
为解决上述问题,本发明的技术方案还提供了一种包括上述控制鼠标指针移动的装置的空中鼠标。
与现有技术相比,本技术方案至少具有以下优点:
通过基于重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率,将所确定的空中鼠标的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量,并以所设定的报点率输出所述鼠标指针的坐标或其变化量以控制鼠标指针的移动,从而能实现根据空中鼠标的实际运动情况动态调节报点率,使空中鼠标在加速度较大的运动情况下以较高的报点率输出数据,确保鼠标指针的移动细腻平滑,在加速度较小的运动情况下以较低的报点率输出数据,降低了功耗。
进一步地,通过建立索引值与敏感轴的参数(倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值)之间的对应关系,当获取到惯性器件的敏感轴的测量值后,基于与所述测量值对应的索引值查询所述对应关系,能够快速得到与所述索引值所对应的倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值,进而快速确定空中鼠标的空间坐标,由于避免了复杂而大量的计算(积分运算、反三角函数运算等),因此能够提高处理速度,从而使空中鼠标能以较高的报点率输出数据,而且使功耗降低。
通过将与索引值对应的倾斜角的三角函数值扩大预定倍数并取整,避免了浮点运算,从而能够以相对低端的微控制器实现计算,降低了空中鼠标的成本。
此外,通过以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势,在识别出所述运动趋势为直线运动时,降低空中鼠标的报点率,能够在不影响鼠标指针移动平滑度的情况下,降低功耗。
进一步地,根据识别出的空中鼠标的运动趋势进行相应的插值运算,能够获得更多的空间坐标,确保空中鼠标能以更高的报点率输出数据,使鼠标指针的移动轨迹更为细腻平滑。
附图说明
图1是本发明实施方式提供的控制鼠标指针移动的方法的流程示意图;
图2是根据敏感轴的倾斜角确定空间坐标的示意图;
图3是本发明实施例一提供的确定空中鼠标的空间坐标的方法的流程示意图;
图4是本发明实施例一的倾斜角索引表中倾斜角的分割精度示意图;
图5是本发明实施例一的重力加速度传感器开启后的空间姿态识别示意图;
图6是本发明实施例一提供的控制鼠标指针移动的装置的结构示意图;
图7是图6所示坐标确定单元20的结构示意图;
图8是本发明实施例二提供的控制鼠标指针移动的装置的结构示意图;
图9是图8所示坐标确定单元60的结构示意图;
图10是线性插值运算的示意图;
图11是抛物线插值运算的示意图;
图12是本发明实施例三提供的控制鼠标指针移动的装置的结构示意图。
具体实施方式
现有技术中空中鼠标通常只能以固定的报点率输出数据,难以根据空中鼠标的实际运动情况动态调节报点率以控制鼠标指针的移动。本技术方案通过基于重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率,将确定的空中鼠标的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量,并以所设定的报点率输出所述鼠标指针的坐标或其变化量以控制鼠标指针的移动,从而能实现根据空中鼠标的实际运动情况动态调节报点率,使空中鼠标在加速度较大的运动情况下以较高的报点率输出数据(鼠标指针的坐标或其变化量),确保鼠标指针的移动细腻平滑,在加速度较小的运动情况下以较低的报点率输出数据,降低了功耗。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
图1是本发明实施方式提供的控制鼠标指针移动的方法的流程示意图。本发明实施方式中利用空中鼠标控制鼠标指针的移动,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,如图1所示,所述控制鼠标指针移动的方法包括:
步骤S10,基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;
步骤S20,确定空中鼠标的空间坐标;
步骤S30,将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;
步骤S40,以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
下面以三个具体实施例对上述控制鼠标指针移动的方法作详细说明。
实施例一
本实施例中,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,进一步地,该重力加速度传感器为电容式重力加速度传感器,其至少包括两个相互垂直的敏感轴,其中一个敏感轴垂直于地平面。具体实施时,一般选用的是三轴重力加速度传感器,将垂直于地平面的敏感轴记为z轴,其余两个敏感轴相互垂直且分别垂直于z轴,分别记为x轴、y轴,x轴和y轴构成的平面平行于地平面。由于目前空中鼠标达到的要求仅为在屏幕上实现的实际上是二维的坐标体系,因此采用三轴中任意两轴即可达到所需要求(确定二维坐标体系内的坐标),例如选取x轴和z轴(x轴和z轴构成的平面平行于屏幕),虽然在空间上实现的是三维动态,而在屏幕上只要求实现二维坐标即可,故本实施例中暂未使用y轴。当然,在其他实施例中,如果加入y轴则可以实现屏幕三维动态效果的处理(例如3D游戏中对鼠标的控制),此外,还可以使用y轴作为其他两轴数据的校准。
众所周知,地球表面附近的物体,在仅受重力作用时具有的加速度叫做重力加速度,也叫自由落体加速度,用g表示(通常将g作为常数,一般为9.8米/秒2)。而重力加速度传感器的敏感轴的加速度输出值通常以重力加速度g的倍数进行表示(以g作为参考的加速度),例如0.5g、1g、2g、2.5g、3.8g等,并且,由于加速度为矢量,除了具有大小还有方向,因此重力加速度传感器的敏感轴的加速度输出值还以正负号表示其方向,例如0.5g、-0.5g、2.5g、-2.5g等。空中鼠标在空中运动的过程中,某一时间段内运动情况可分为加速运动、减速运动、匀速运动,当重力加速度传感器具有1个以上敏感轴时,各种运动情况可体现为各个敏感轴的加速度输出值的矢量和的大小,例如,当所述加速度输出值的矢量和为2g时,则说明空中鼠标以2g的加速度作加速运动,当所述加速度输出值的矢量和为-2g时,则说明空中鼠标以2g的加速度作减速运动,当所述加速度输出值的矢量和为0或接近0时,则说明空中鼠标作匀速运动。发明人考虑,当空中鼠标以较小的加速度(例如为0~2g的加速度)作加速或减速运动时,其空间坐标的变化量较小,因此可以向系统输出相对较少的数据(用于鼠标指针定位的坐标点),反之,当空中鼠标以较大的加速度(例如为4g以上的加速度)作加速或减速运动时,其空间坐标的变化量较大,因此必须向系统输出相对较多的数据才能确保鼠标指针的移动能够细腻平滑。所以,可以针对上述空中鼠标的实际运动情况,动态地调节空中鼠标的报点率,使其在加速度较大的情况下以较高的报点率输出数据,从而确保鼠标指针的移动细腻平滑,而在加速度较小的情况下以较低的报点率输出数据,以降低功耗。
具体地,即执行步骤S10,基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率。其中,所述基于所述加速度输出值设定空中鼠标的报点率具体包括:按加速度由小到大依次设置多个档次的加速度范围,每一档次的加速度范围对应一个报点率的设定范围,根据所述加速度输出值的矢量和所处加速度范围的档次确定对应的报点率的设定范围,所述加速度范围的档次越高,对应的报点率的设定越高。具体地,本实施例按加速度的绝对值由小到大依次设置三档加速度范围,每一档次的加速度范围对应一个报点率的设定范围,分别为:
第一档加速度范围为0~2g(包括2g),其对应的报点率的设定范围为50~60Hz;
第二档加速度范围为2g~4g(包括4g),其对应的报点率的设定范围为80~100Hz;
第三档加速度范围为4g以上,其对应的报点率的设定范围为120~150Hz。需要说明的是,第三档加速度范围在实际实施一般为4g~8g,至于大于8g的情况一般发生的可能性较小,故将其合并在第三档加速度范围内处理,况且,120~150Hz的报点率的设定范围也已经属于比较高了,基本能满足控制鼠标指针平滑移动的目的。此外,由于上述三档加速度范围是以加速度的绝对值进行设置的,因此不管敏感轴的加速度分量的方向如何,均以加速度输出值的绝对值界定所处的加速度范围的档次,例如某敏感轴的加速度输出值为-2.5g,其绝对值为2.5g,则应该处于第二档加速度范围(2g~4g)。
在其他实施例中,也可根据实际情况(例如根据加速度输出值的预计输出范围)设置不同档次的加速度范围,并为每个档次的加速度范围设定对应的报点率的范围。
如此,当获取到加速度传感器的敏感轴的加速度输出值的矢量和后,便可以判断出所述加速度输出值的矢量和所处的加速度范围的档次,再根据所处的加速度范围的档次确定对应的报点率的设定范围。当然,在实际实施时,需要预先从报点率的设定范围中选取其中一个报点率的值进行设定,当凭借敏感轴的加速度输出值的矢量和识别出空中鼠标的运动情况后,则切换到与当前运动情况相适应的报点率。例如:假设空中鼠标从t0至t1这段时间内运动,获得的敏感轴的加速度输出值的矢量和为1.5g,可以将空中鼠标的报点率设定为50Hz,假设在t1至t2这段时间内获得的敏感轴的加速度输出值的矢量和为2.5g,则将空中鼠标的报点率动态地调整为80Hz。总之,空中鼠标在用户的操纵下在空中运动,其报点率便会随着其运动情况作动态调节。
除了进行报点率的设定,还需要执行步骤S20,确定空中鼠标的空间坐标。因为只有当空中鼠标在运动过程中的空间坐标被确定后,才能将所确定的空间坐标或空间坐标的变化量相应转换为鼠标指针的坐标或鼠标指针的坐标变化量,进而以设定的报点率输出所述鼠标指针的坐标或鼠标指针的坐标变化量以控制鼠标指针的移动。而确定空中鼠标的空间坐标的关键通常又在于重力加速度传感器对倾斜角的测量。
本领域技术人员知晓,重力加速度传感器以重力作为输入矢量来决定物体在空间的方向,而倾斜角就是重力与其敏感轴的夹角,当重力与其敏感轴垂直时,它对倾斜最敏感,在该方位上其对倾角的灵敏度最高。当敏感轴与重力平行时,每倾斜1度都引起输出加速度的变化。下面简单介绍下重力加速度传感器对倾斜角测量的原理。由于重力的方向是不变的,始终垂直地平面向下,当加速度传感器的某个敏感轴与重力形成倾斜角时,可以基于测量到的该敏感轴的加速度,通过三角函数,可以得出加速度和倾斜角之间的关系,例如在单个敏感轴(x轴)的情况下:
Ax=gn*cosβ
上述表达式中,Ax为x敏感轴的加速度输出值;gn为以重力作为参考的加速度(即重力加速度g);β为倾斜角度。所以,β的值可以通过反余弦函数方程求得,即β=arccos(Ax/gn)。当然,也可以通过其他反三角函数计算出倾斜角。如果存在多个敏感轴时,则可以根据各敏感轴与重力形成倾斜角以及各敏感轴的加速度分量确定空间坐标。图2是根据敏感轴的倾斜角确定空间坐标的示意图。如图2所示,设原来坐标轴数据分别为X、Y、Z,变化后为X1、Y1、Z1,z轴的倾斜角为α,x轴的倾斜角为θ,明显地,θ=90°-α,则:
Y1=Y
Z1=Z*cosα+X*sinα
X1=-Z*sinα+X*cosα
通过矩阵关系表示为:
因此,只需要计算出z轴的倾斜角为α,便可以确定变化后的空间坐标(X1,Y1,Z1)。特别地,在x轴和z轴构成的二维坐标系中,仅需要得到坐标(X1,Z1)。当然,通过x轴的倾斜角θ同样可以确定变化后的空间坐标。
然而,现有技术中,根据测量得到的各个敏感轴的加速度输出值计算出倾斜角,需要进行反三角函数运算,而计算机在进行反三角函数运算时是非常耗费资源的,对于处理能力相对较弱的MCU,因其有限的处理能力,导致处理速度较慢,进而导致确定空间坐标的速度也会较慢,从而难以使空中鼠标以较高的报点率输出数据,特别是当空中鼠标以较大的加速度进行运动时,如果不能支持以较高的报点率输出数据,则鼠标指针的移动轨迹就难以达到细腻平滑的效果,严重影响鼠标指针的定位质量,另外还会导致功耗较高,但如果选用处理能力更强的MCU,又会使成本上升。
因此,本实施例采用了不同于现有技术的确定所述空中鼠标的空间坐标的方法。图3是本发明实施例一提供的确定空中鼠标的空间坐标的方法的流程示意图,如图3所示,所述确定空中鼠标的空间坐标的方法包括:
步骤S101,建立索引值与敏感轴的参数之间的对应关系,所述索引值与所述惯性器件的敏感轴的测量值所对应,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;
步骤S102,获取所述惯性器件的各个敏感轴的测量值;
步骤S103,基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。
本实施例中,通过建立索引值与所述惯性器件(本实施例中为重力加速度传感器)的敏感轴的倾斜角及其三角函数值之间的对应关系能够解决上述问题,即步骤S101中所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值。具体地,建立索引值与重力加速度传感器的敏感轴的倾斜角及其三角函数值之间的对应关系,所述索引值与所述惯性器件的各个敏感轴的测量值所对应。由于电容式重力加速度传感器会把测量的加速度转换为电容器的电容量变化,测得的电容值的不同,反映到寄存器中的值也不同,因此可根据敏感轴在不同的加速度下实际测量的电容值或者电容值的范围设置其所对应的寄存器中的值,并与此时的倾斜角及其三角函数值之间建立对应关系,例如当寄存器中的值为1时,对应的倾斜角为2.69度,2.69度的正弦值约为0.046932,2.69度的余弦值约为0.998898,将所述对应关系以表的形式存储于只读存储器(ROM,Read-Only Memory)中,在本实施例将该表称为倾斜角索引表。需要说明的是,步骤S101中的所述索引值具体即为上述寄存器中的值(简称为寄存器值)。
在开启重力加速度传感器后,电容式重力加速度传感器会测得基于各敏感轴的加速度分量所转化的电容值,即执行步骤S102,获取惯性器件的各个敏感轴的测量值,其中,所述测量值具体即为测得的电容值,然后,MCU能够从寄存器中读取与测得的电容值所对应的寄存器值。
读取到寄存器值之后,基于所述寄存器值查询所述倾斜角索引表,能够凭借所述对应关系直接得到该寄存器值所对应的倾斜角及其三角函数值,并基于查询到的所述倾斜角及其三角函数值确定所述重力加速度传感器的敏感轴的坐标值,从而确定空中鼠标的空间坐标以实现对其的定位,即执行步骤S103,基于与所获取的测量值对应的索引值查询所述对应关系(倾斜角索引表),确定所述空中鼠标的空间坐标。
需要说明的是,建立索引值、所述惯性器件的敏感轴的倾斜角及其三角函数值之间的对应关系(本实施例中即建立倾斜角索引表)时,需要将敏感轴的偏转(偏转产生倾斜角)分为四个不同的象限,每个象限中倾斜角的范围均从0度至90度,不同的角度值对应不同的三角函数值,其中最为关键的是以怎样的分割精度配置所述对应关系(倾斜角索引表)中的倾斜角。一方面,分割精度需要考虑应用的需求进行配置,比如说0.5度或者0.1度,较高的分割精度能保证后续所确定的空间坐标的准确性。但分割精度越高,倾斜角索引表中倾斜角的数量也越多,数据的存储量也越大,同时也给MCU提出了更高的要求,比如当倾斜角的分割精度精确到0.1度时,就需要MCU的4K的ROM存储空间。因此,另一方面,对于配置倾斜角索引表中的倾斜角还需要考虑到MCU的存储空间与运行速度。
本实施例中是按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述倾斜角索引表中倾斜角及其三角函数值的配置(确定了倾斜角的配置即确定了其三角函数值的配置)。
图4是本发明实施例一的倾斜角索引表中倾斜角的分割精度示意图。如图4所示,以0度至90度的倾斜角对应的正弦值为例,A点的斜率是大于B点的,因此在相同分割精度的条件下,A点附近对应的正弦值的变化要大于B点附近对应的正弦值的变化。由此,可以考虑将A点附近对应的倾斜角的分割精度设置得相对高一些,而将B点附近对应的倾斜角的分割精度设置得相对低一些,例如,在0至45度的倾斜角范围内多选取几个角度以及三角函数值存入所述倾斜角索引表(分割精度相对较高),而在45至90度则少选取几个角度以及三角函数值存入所述倾斜角索引表(分割精度相对较低),如此便能在一定程度上既保证后续所确定的空间坐标的准确性,又减小了对MCU的存储空间与运行速度的要求。
仍参阅图4,本实施例中,按照倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述倾斜角索引表中倾斜角及其三角函数值的配置,即倾斜角从0度至90度,所对应的斜率逐步变小,而存入倾斜角索引表中的倾斜角之间的差值越来越大(角度间差值越大,分割精度越低),举例来说,倾斜角从0度至90度,最开始选择0度、2.69度、5.38度、8.08度、10.81度,分割精度分别为2.69度(2.69度-0度)、2.69度(5.38度-2.69度)、2.7度(8.08度-5.38度)、2.73度(10.81度-8.08度),可以看出分割精度在逐步降低,而到后来选择57.54度、62.95度、69.64度、79.86度,分割精度分别为5.41度、6.69度、10.22度,可以看出分割精度越来越低。
需要说明的是,上述按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述倾斜角索引表中倾斜角及其三角函数值的配置的方式只是一种选取倾斜角的基本原则,具体实施时,在这一基本原则下,可根据实际情况确定倾斜角索引表中倾斜角及其三角函数值的配置,如下表所示,表1是根据实际情况多次测量后所确定的倾斜角索引表的示例。
表1
表1中,列出了从0度至90度所选取的23个倾斜角的角度值,每一个倾斜角的角度值对应有一个索引值,依次为0~22。0度和90度这两个端点一般是任何一张倾斜角索引表所必选的,而处于0度~90度之间的倾斜角,则可以根据上述按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度的基本原则并结合实际情况所确定。
需要说明的是,通常由于反三角函数值参与的运算中涉及浮点运算,而复杂而大量的浮点运算对于处理能力相对较弱的MCU来说难以实现快速的处理,但如果选用处理能力更强的MCU,又会增加成本。因此在本实施例中,采取的方法是将与索引值对应的倾斜角的三角函数值扩大预定倍数并取整后存于所述倾斜角索引表。如表1所示,索引值所对应的倾斜角的三角函数值包括正弦值(sin)和余弦值(cos),其中,正弦值有两列,左边一列是将索引值所对应的倾斜角的正弦值扩大10000倍后取整,右边一列是将索引值所对应的倾斜角的正弦值扩大100倍后取整;类似地,余弦值也有两列,左边一列是将索引值所对应的倾斜角的余弦值扩大10000倍后取整,右边一列是将索引值所对应的倾斜角的余弦值扩大100倍后取整。所述扩大的预定倍数可以根据实际需求进行设定,如果需要更高的计算精度,则应将三角函数值扩大的预定倍数设定地较大,如果对计算精度的要求相对较低,则可以将三角函数值扩大的预定倍数设定地相对较小些。当然,对三角函数值扩大的预定倍数设定地越大,则意味着MCU需要进行的计算量也会越大。总之,通过将与索引值对应的倾斜角的三角函数值扩大预定倍数并取整后存于所述倾斜角索引表,避免了浮点运算,从而能够以相对低端的微控制器(例如可以采用8位的MCU)实现计算,降低了成本。在其他实施例中,如果对精度的要求高,并且有处理能力较强的MCU支持,则可以用与索引值对应的倾斜角的三角函数值参与浮点运算。
上述对倾斜角索引表的查询过程,可以通过二分法查找实现,二分法查找为现有技术中常用手段,在此不再赘述。
此外,本实施例中,所述确定所述空中鼠标的空间坐标的方法还包括通过判断敏感轴的是否稳定,以稳定的敏感轴所获得的倾斜角及其三角函数值确定空中鼠标的空间坐标的值。由于在具体实施时,所述空中鼠标的各敏感轴的稳定性可能并不相同,相应得出的倾斜角也不同,由此会产生各自不同的空间坐标的值,此时就需要基于稳定的敏感轴所得到的倾斜角所对应的三角函数值确定出空间坐标的值。例如:可以同时采用x轴和z轴互做补偿,哪个轴稳定就采用稳定的敏感轴获得的索引值。一般地,水平移动时,z轴稳定;垂直移动时,x轴稳定;斜向移动,则x,z轴都不稳定,此时返回之前处于稳定时的索引值。具体判断敏感轴是否稳定可采取以下方式:若缓存区内不同的索引值的数量小于或等于第一阈值,且各索引值之间的差值(绝对值)均小于或等于第二阈值,则确定该敏感轴稳定;所述缓存区存有每隔预定时间所获取的索引值。具体实施时,随着各敏感轴加速度的变化,位于寄存器中的索引值也会有所变化,将预定时间内所读取到的索引值存入一缓存区中,可以通过分析该缓存区中的数据判断敏感轴是否稳定。所述第一阈值可取3,第二阈值可取2,即:当某个敏感轴在缓存区内不同的索引值的数量小于或等于3,且各索引值之间的差值均小于或等于2,可确定该敏感轴稳定。举例来说,假设x轴在缓存区内的索引值包括:22,22,22,21,21,20,20,20,19,19,18,18,17,17,而z轴在缓存区内的索引值包括:2,2,2,2,2,2,3,3,3,3,3,3,3,3。通过对缓存区内的索引值的分析可知:x轴在缓存区内不同的索引值的数量有6个,且最小索引值与最大索引值之间差值为4,已经不满足各索引值之间的差值均小于或等于2,则确定x轴处于不稳定状态;而z轴在缓存区内不同的索引值的数量仅为2个,且最小索引值与最大索引值之间差值为1,即能满足各索引值之间的差值均小于或等于2,则确定z轴处于稳定状态。需要说明的是,本实施例中所述索引值之间的差值指的是索引值之间差的绝对值。
另外,缓存区中的数据(索引值)还可以用来判断停顿,如全正、全负或者最大索引值与最小索引值之差小于某个数时就自动检测为所述感知设备处于停顿状态,停顿状态也属于稳定状态的一种。当敏感轴都不稳定时会返回之前的索引值,但只要稍有停顿,重力加速度传感器就会认为是稳定了,就会立即检测到加速度变化并转换成空间坐标。以空中鼠标的控制为例,比如刚开始是水平拿的,突然向斜上方运动,如果没有检测到稳定(稍有停顿或其他稳定的情况),则鼠标会水平移动,一旦检测到稳定,鼠标就会沿斜上方运动。因为只要检测到稳定(如有停顿),重力加速度传感就会输出正确的值。在现实生活中,当手持空中鼠标进行控制时,不可能一直处于不稳定的(比如斜向上)的运动状态,如果稍有停顿或者对缓存区中的数据检测确定敏感轴稳定,就会输出正确的索引值而不会返回之前处于稳定状态的索引值。
如前所述,建立倾斜角索引表时,需要将敏感轴的偏转(偏转产生倾斜角)分为四个不同的象限(表示偏转产生的倾斜角所在的象限),每个象限中倾斜角的范围均从0度至90度,不同的角度值对应不同的三角函数值,具有相同的角度值但处于不同的象限时,所得到的三角函数值有正负之分,对应的索引值也有正负之分。因此,本实施例中,开启重力加速度传感器后,还可基于所述索引值和垂直于地平面的敏感轴(z轴)的方向确定所述空中鼠标的空间姿态。所述空间姿态具体指空中鼠标是正拿、反拿、是否有偏转以及向哪个方向偏。具体地,可根据索引值是大于零、等于零或小于零,以及表示z轴方向的值是小于零(方向向上)或是大于零(方向向下,以重力的方向为正方向)确定空中鼠标的空间姿态。所述表示z轴方向的值可以通过对缓存区中数据的值(索引值)求均值并经过判定后得到。如前所述,重力加速度传感器在运行过程中,所述缓存区存有每隔预定时间所获取的索引值,通过对缓存区中的所述索引值的分析,可以判断出敏感轴是否稳定。例如:本实施例中设定缓存区中的数据(索引值)为14个,这14个数据中如果全正或者全负并且缓存区中数据的值不超过3个不同的,且差距不大于2时,判断目前敏感轴是稳定的。进一步地,可以对缓存区中的数据的值进行求均值运算,如果均值为正数就输出1,如果均值为负数就输出-1,而输出的1或-1即为所述表示z轴方向的值。特别地,如果缓存区中的数据的值全为正值并且判断出敏感轴稳定的话是肯定输出1的,如果全为负值并且判断出敏感轴稳定的话肯定是输出-1的。
图5是本发明实施例一的重力加速度传感器开启后的空间姿态识别示意图。如图5所示,当重力加速度传感器开启后,即可根据索引值和表示z轴的方向的值对空中鼠标的空间姿态进行识别,具体地:
若索引值等于零(无偏转)且表示z轴方向的值小于零,则识别为正拿;
若索引值等于零(无偏转)且表示z轴方向的值大于零,则识别为反拿;
若索引值小于零(有偏转)且表示z轴方向的值小于零,则识别为第一象限,此时空间坐标的计算为(以x轴的倾斜角γ为例):
X1=X*cosγ+Z*sinγ
Z1=-X*sinγ+Z*cosγ
若索引值小于零(有偏转)且表示z轴方向的值大于零,则识别为第二象限,此时空间坐标的计算为(以x轴的倾斜角γ为例):
X1=-X*cosγ+Z*sinγ
Z1=-X*sinγ-Z*cosγ
若索引值大于零(有偏转)且表示z轴方向的值大于零,则识别为第三象限,此时空间坐标的计算为(以x轴的倾斜角γ为例):
X1=-X*cosγ-Z*sinγ
Z1=X*sinγ-Z*cosγ
若索引值大于零(有偏转)且表示z轴方向的值小于零,则识别为第四象限,此时空间坐标的计算为(以x轴的倾斜角γ为例):
X1=X*cosγ-Z*sinγ
Z1=X*sinγ+Z*cosγ
结合表1,基于索引值可获得其对应的倾斜角及其三角函数值,将三角函数值代入上述公式便可计算出重力加速度传感器的敏感轴的坐标值,从而确定空间坐标的值(本实施例中为二维坐标)。需要说明的是,表1中仅列出索引值大于或等于零时对应的倾斜角及其三角函数值,而对索引值小于零时对应的倾斜角及其三角函数值并未列出,但可参照表1实施。例如:索引值为1时,对应倾斜角为2.69度,而当索引值为-1时,对应倾斜角仍可为2.69度。如前所述,索引值的正负结合表示z轴方向的值便可用于对敏感轴偏转后产生的倾斜角所处象限进行识别,所述倾斜角在不同的象限所得出的三角函数值有正负之分。
需要说明的是,在步骤S20,通过采用上述确定空中鼠标的空间坐标的方法所获得的空间坐标的精度虽然较现有技术有所降低,但是却能够以更快的速度确定出所述空间坐标,即使选用处理能力相对较弱的MCU,相对于现有技术,在相同的时间内也能够获得更多的空间坐标,通过后续步骤能输出更多的鼠标指针的坐标或其变化量,从而增强了空中鼠标以较高的报点率输出数据的能力,使鼠标指针的移动轨迹更为细腻平滑,提高了鼠标指针的定位质量,另外还降低了成本和功耗。在实际实施时,快速确定空中鼠标的空间坐标的意义比追求空间坐标的更高精度的意义显得更为重要,因为空中鼠标在空中运动过程中,只有快速确定其空间坐标,才能及时输出鼠标指针的坐标或其变化量以控制鼠标指针的移动,形成鼠标指针移动的轨迹,而空间坐标的更高精度虽然能使鼠标指针的定位更为精准,但是处理速度慢的缺点(尤其是选用处理能力相对较弱的MCU时)使控制鼠标指针的移动显得有些滞后,例如用户操纵空中鼠标在空中运动,当MCU计算出某个空间坐标的精确值并输出鼠标指针的坐标或其变化量以控制鼠标指针移动时,空中鼠标的位置却早已过了那个空间坐标,此时即使计算出具有很高精度的空间坐标的值也显得意义不大了。
在确定空中鼠标的空间坐标后,则可执行步骤S30,将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量。具体地,当通过步骤S20确定空中鼠标的空间坐标后,还需将所确定的空间坐标除以灵敏度系数后转换为鼠标指针的坐标,或者将所确定的空间坐标的变化量除以灵敏度系数后转换为鼠标指针的坐标的变化量,以所述鼠标指针的坐标或鼠标指针的坐标变化量才能实现对鼠标指针的定位,控制鼠标指针移动。需要说明的是,通过步骤S20所确定的空中鼠标的空间坐标不止一个,而是一系列连续的空间坐标(单位时间内确定的空间坐标的数量与所述惯性器件的采样频率有关),因此,上述所确定的空间坐标的变化量具体是指任意连续的两个空间坐标之间的变化量,本实施例中,所述空间坐标的变化量包括x轴的变化分量和z轴的变化分量。例如:假设先后确定的连续两个空间坐标分别为(x,z)和(x’,z’),则x轴的变化分量Δx=x’-x,z轴的变化分量Δz=z’-z。通过将一系列的空间坐标的变化量转换为鼠标指针的坐标变化量,同样能定位鼠标指针,控制鼠标指针的移动。此外,所述灵敏度系数包括惯性器件的灵敏度系数和鼠标的灵敏度系数,是根据实际需求和运行环境,例如准确度要求、屏幕大小和分辨率等而设定和调整,此为本领域技术人员所公知,在此不再展开说明。
获得鼠标指针的坐标或其变化量后,执行步骤S40,以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。由于报点率反映的是鼠标向系统发送数据(鼠标指针的坐标或坐标的变化量)的频率,报点率越高,单位时间内传送数据给系统的次数越多,则向系统输出的鼠标指针的坐标或其变化量的数量也越多,鼠标指针(光标)的移动也就更为细腻平滑。空中鼠标每次向系统传送的数据包括由单位时间内获得的多个连续的空间坐标或其变化量相应转换而成的鼠标指针的坐标或其变化量,可以将每次向系统输出的多个连续的鼠标指针的坐标或其变化量称为一组数据,因此,报点率表示的是单位时间内向系统输出多少组数据。因为通过步骤S10已经根据空中鼠标的运动情况设定出相适应的报点率,所以执行步骤S40时,便可基于所设定的报点率控制向系统输出的鼠标指针的坐标或其变化量的数据量,由此实现了根据空中鼠标的运动情况控制鼠标指针的移动,使空中鼠标在加速度较大的情况下以较高的报点率输出数据,从而确保鼠标指针的移动细腻平滑,而在加速度较小的情况下以较低的报点率输出数据,以降低功耗。
上述实施例中,所述惯性器件为重力加速度传感器,在其他实施例中,所述惯性器件还可以包括陀螺仪传感器,与上述实施例有所区别的是,由于现有技术中,陀螺仪传感器是通过敏感轴(又称为检测轴或检测臂)测量电压的变化,根据测得的电压值与角速度的对应关系,对角速度进行积分运算后获得倾斜角,因此,为了避免复杂而大量的积分运算、反三角函数运算,提高处理速度,同样可以建立索引值、陀螺仪传感器的敏感轴的倾斜角及其三角函数值之间的对应关系(倾斜角索引表),通过敏感轴的测量值(一般为电压值)所对应的索引值(寄存器值)查询所述对应关系(倾斜角索引表),获得与所述索引值对应的倾斜角及其三角函数值,基于所述三角函数值确定所述重力加速度传感器的敏感轴的坐标值,进而确定空中鼠标的空间坐标以实现对其的定位。
基于上述控制鼠标指针移动的方法,本实施例还提供了一种控制鼠标指针移动的装置,并利用空中鼠标控制鼠标指针的移动。图6是本发明实施例一提供的控制鼠标指针移动的装置的结构示意图,如图6所示,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,所述控制鼠标指针移动的装置包括:报点率设定单元10,用于基于所述重力加速度传感器的敏感轴的加速度值设定空中鼠标的报点率;坐标确定单元20,用于确定空中鼠标的空间坐标;转换单元30,用于将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;控制单元40,用于以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
图7是是图6所示坐标确定单元20的结构示意图。参阅图7,图6所示坐标确定单元20包括:对应关系生成单元201,用于建立索引值与敏感轴的参数之间的对应关系,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值,所述索引值与所述惯性器件的各个敏感轴的测量值所对应;获取单元202,用于获取所述惯性器件的各个敏感轴的测量值;定位单元203,用于基于与获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。所述定位单元203包括:第二查询单元203a,用于基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的敏感轴的倾斜角及其三角函数值;第二确定单元203b,用于基于查询到的惯性器件的敏感轴的倾斜角及其三角函数值,确定所述空中鼠标的空间坐标。
具体实施例中,所述索引值与敏感轴的参数(惯性器件的敏感轴的倾斜角及其三角函数值)之间建立的对应关系以表的形式存于只读存储器中,该表即为图7所示的倾斜角索引表200。所述对应关系生成单元201包括配置单元(图中未示出),用于按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述倾斜角索引表200中倾斜角及其三角函数值的配置。所述对应关系生成单元201还包括扩值取整单元(图中未示出),用于将与所述索引值对应的倾斜角的三角函数值扩大预定倍数并取整后存于所述倾斜角索引表200。仍参阅图6,所述控制鼠标指针移动的装置还包括稳定判断单元50,所述稳定判断单元50与所述坐标确定单元20相连,用于判断敏感轴是否稳定,包括:若缓存区内不同的索引值的数量小于或等于第一阈值,且各索引值之间的差值(绝对值)均小于或等于第二阈值,则确定该敏感轴稳定;所述缓存区存有每隔预定时间所获取的索引值;所述坐标确定单元20以稳定的敏感轴所获得的倾斜角及其三角函数值确定所述空间坐标。
本实施例中,所述空中鼠标包括的所述惯性器件为重力加速度传感器,其至少包括两个相互垂直的敏感轴,其中一个敏感轴垂直于地平面。所述空中鼠标还包括空间姿态识别单元,用于基于所述索引值和垂直于地平面的敏感轴的方向确定所述空中鼠标的空间姿态。
关于本实施例中所述控制鼠标指针移动的装置的具体实施可参考上述控制鼠标指针移动的方法,在此不再赘述。
实施例二
本实施例提供的控制鼠标指针移动的方法基于实施例一所述的控制鼠标指针移动的方法,与实施例一之间的区别是,对于确定空中鼠标的空间坐标的方法有所不同。可结合图3,本实施例中,步骤S101中所述敏感轴的参数包括基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值。为了能够使步骤S103中确定所述空中鼠标的空间坐标以实现对其定位的速度更快,本实施例中考虑直接建立所述索引值和基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值之间的对应关系。当然,所述索引值和基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值之间的对应关系同样可以表的形式存储于只读存储器中,在本实施例,将该表称为坐标对应表,即所述坐标对应表包括所述索引值和基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值,所述索引值与坐标值之间具有对应关系。在实际实施时,MCU读取到寄存器中的索引值后,能够直接根据所述索引值查询所述坐标对应表,得到所述索引值对应的坐标值(所述索引值对应的倾斜角的三角函数值所确定的所述惯性器件的敏感轴的坐标值),从而确定空中鼠标的空间坐标。例如:可以参考实施例一中的表1,读取到索引值为1(倾斜角为2.69度),则查询坐标对应表得到对应的坐标值为x1和z1,从而确定的姿态空间坐标为(x1,z1),读取到索引值为2(倾斜角为5.38度),则查询坐标对应表得到对应的坐标值为x2和z2,从而确定的空间坐标为(x2,z2)等,这样可以免去三角函数值与空间坐标之间的变换计算,从而能够以更快的速度确定空间坐标以实现对空中鼠标的定位。当然,在其他实施例中,也可以将所述坐标对应表与实施例一中所述倾斜角索引表进行合并,即合并后形成的倾斜角索引表中除了包括具有对应关系的所述索引值、倾斜角及其三角函数值,还包括与所述索引值、倾斜角及其三角函数值具有对应关系的所述惯性器件的敏感轴的坐标值,如此可根据需要,通过查询合并后的倾斜角索引表得到对应的所述惯性器件的敏感轴的坐标值和/或倾斜角。
关于本实施例的所述控制鼠标指针移动的方法的具体实施可参考实施例一中所述控制鼠标指针移动的方法的相关描述,在此不再赘述。
基于上述控制鼠标指针移动的方法,本实施例还提供了一种控制鼠标指针移动的装置,利用空中鼠标控制鼠标指针移动。图8是本发明实施例二提供的控制鼠标指针移动的装置的结构示意图,如图8所示,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,所述控制鼠标指针移动的装置包括:报点率设定单元10,用于基于所述重力加速度传感器的敏感轴的加速度值设定空中鼠标的报点率;坐标确定单元60,用于确定空中鼠标的空间坐标;转换单元30,用于将所确定的空间坐标的变化量除以灵敏度系数后转换为鼠标指针的坐标的变化量;控制单元40,用于以设定的报点率输出所述鼠标指针的坐标的变化量,以控制鼠标指针的移动。
本实施提供的控制鼠标指针移动的装置与实施例一中所述的控制鼠标指针移动的装置的区别在于坐标确定单元的结构有所不同。图9是图8所示坐标确定单元60的结构示意图。参阅图9,图8所示坐标确定单元60包括:对应关系生成单元601,用于建立索引值与敏感轴的参数之间的对应关系,所述敏感轴的参数包括基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值,所述索引值与所述惯性器件的各个敏感轴的测量值所对应;获取单元602,用于获取所述惯性器件的各个敏感轴的测量值;定位单元603,用于基于与获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。所述定位单元603包括:第一查询单元603a,用于基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的惯性器件的敏感轴的坐标值;第一确定单元603b,用于基于查询到的惯性器件的敏感轴的坐标值确定所述空中鼠标的空间坐标。
具体实施例中,所述索引值与敏感轴的参数(基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值)之间建立的对应关系以表的形式存于只读存储器中,该表即为图9所示的坐标对应表600。所述对应关系生成单元601包括配置单元(图中未示出),用于按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述坐标对应表600中基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值的配置。
此外,本实施例中同样可包括实施例一所述的扩值取整单元、稳定判断单元50,具体可参考实施例一中所述控制鼠标指针移动的装置。关于本实施例提供的控制鼠标指针移动的装置的具体实施可参考本实施例以及实施例一中所述控制鼠标指针移动的方法的相关内容,在此不再赘述。
实施例三
在实施例一或实施例二的基础上,发明人考虑到空中鼠标的运动情况不仅包括加速运动、减速运动或匀速运动,还包括其运动趋势(轨迹),所述运动趋势包括直线运动和非直线运动,若能够判断出空中鼠标的运动趋势为直线运动,则通过降低空中鼠标的报点率,还能够在不影响鼠标指针移动轨迹的平滑度的情况下,降低功耗。
因此,本实施例中,利用空中鼠标控制鼠标指针移动的方法还包括:以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势,若所述运动趋势为直线运动,则降低所述空中鼠标的报点率。具体地,所述以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势包括:若任意两个连续的索引值之差小于或等于第三阈值,则识别出所述运动趋势为直线运动。如实施例一所述,可以通过分析缓存区中的数据(索引值)判断敏感轴是否稳定,当某个敏感轴在缓存区内不同的索引值的数量小于或等于3,且各索引值之间的差值(绝对值)均小于或等于2,可确定该敏感轴稳定。在判断出敏感轴稳定的基础上,可进一步利用缓存区中的数据(索引值)识别空中鼠标的运动趋势。举例来说,通过对缓存区内的索引值的分析可判断出某敏感轴稳定,假设在每次判断出敏感轴稳定后连续获取的多个索引值包括2,2,2,3,3,3,3,3,4,4,4,4,4,4,并且所述第三阈值设置为2,则分析可得,任意两个连续的索引值之差(绝对值)都小于或等于2,可知该时间段内空中鼠标的运动趋势为直线运动。再假设在每次判断出敏感轴稳定后连续获取的多个索引值包括2,2,2,2,2,3,3,3,4,7,7,8,9,12,则任意两个连续的索引值之差(绝对值)存在大于2的情况,则这段时间内空中鼠标的运动趋势为非直线运动。如果识别出空中鼠标的运动趋势为直线运动,则此时即使少输出一些数据(用于定位鼠标指针的坐标或坐标的变化量)给系统也不会影响鼠标指针移动轨迹的平滑度,反而能够在一定程度上降低功耗,因此可降低所述空中鼠标的报点率。至于所述空中鼠标的报点率的降低幅度可预先设定标准,例如降幅的设定范围为10%~20%。以降幅为10%为例,如果原先设定的报点率为80Hz,当识别出空中鼠标的运动趋势为直线运动后,则将报点率从80Hz降低为72Hz。此外,在设定报点率的降低幅度的基础上,还可设置报点率的下限值,即当识别出空中鼠标的运动趋势为直线运动后,将报点率降低一定幅度,如果降低之后的报点率低于所述下限值,则将报点率设定为该下限值。本实施例中,所述下限值设置为50Hz,例如:原先报点率为60Hz,将该报点率降低20%后则为48Hz,那么此时便将报点率设定为50Hz。一般在实际实施过程中,无论空中鼠标的运动趋势为直线运动或是非直线运动,50Hz的报点率能基本保证鼠标指针的移动轨迹较为平滑。
需要说明的是,判断出敏感轴稳定后连续获取的多个索引值的数量至少为3个,而且必须是判断出敏感轴稳定后获取的索引值,因为如果判断出敏感轴不稳定,会返回之前判断出敏感轴稳定时的索引值,则该索引值不属于判断出敏感轴稳定后获取的索引值。例如,如果一段时间内连续判断出某敏感轴稳定,获取的索引值依次为3,3,3,4,4,假设之后判断出所有敏感轴都不稳定,则此时返回之前判断出敏感轴稳定时的索引值4,则这个索引值4不能作为识别所述运动趋势的依据。
此外,为了能控制鼠标指针的运动更为细腻平滑,空中鼠标需要获得更多的空间坐标,因此,本实施例中,所述控制鼠标指针移动的方法还包括:对至少两个连续确定的空中鼠标的空间坐标进行插值运算。具体地,所述进行插值运算包括:若识别出所述运动趋势为直线运动,则进行线性插值运算,否则进行抛物线插值运算。
线性插值是代数插值的最简单形式。图10是线性插值运算的示意图。假设变量y和自变量x关系如图10曲线y=f(x)所示。已知y在点x0和x1的对应值y0和y1,现在需要用一线性插值函数g(x)=ax+b,近似代替f(x)。根据插值条件,应满足:
ax0+b=y0
ax1+b=y1
解该方程组,便可确定线性插值函数g(x)的参数a和b。由图10可知,线性插值的几何意义是用通过点A(x0,y0)和点B(x1,y1)的直线近似地代替曲线y=f(x),可以很容易求的该直线表达式:
或
插值节点x0和x1之间的间距越小,那么在这一区间g(x)与f(x)之间的误差就越小。若插值点x在x0和x1之间,称为内插,否则称为外插,一般只考虑内插情况。
若识别出所述运动趋势为非直线运动,如果仍然采用上述的线性插值算法进行运算就显得不太合适,在插值运算上应体现为非线性插值运算,本实施例中可以采用抛物线插值算法。抛物线插值又称为二次插值,它是以一元二次多项式去拟合某一段曲线,精度自然要比线性插值高。图11是抛物线插值运算的示意图,如图11所示,已知一条曲线y=f(x)上的三点A(x0,y0),B(x1,y1),C(x2,y2);过此三点可以作一条抛物线,即一条二次曲线g(x),且是唯一的。
可设:g(x)=ax2+bx+c
已知:g(xi)=f(xi) 其中:i=0,1,2
由此可以得到方程组:
ax0 2++bx0+c=y0
ax1 2++bx1+c=y1
ax2 2++bx2+c=y2
当然解此方程组方法有很多,比如常用的待定系数法,包含抛物线插值的拉格朗日形式、牛顿形式等等,一般可以考虑在线性插值的基础上进行逐次线性插值,也比较容易用计算机程序实现。
已知三点(x0,y0)、(x1,y1)、(x2,y2)及插值点的x,y值。
用直线点斜式公式:
第一步:过点(x0,y0)、(x1,y1)作直线L01,即
第二步:过点(x0,y0)、(x2,y2)作直线L02,即
第三步:将(x1,L01)、(x2,L02)也理解为“点”,过这两点作“直线”,记为L012,即
第四步:把L01、L02代入上式,得:
可以表示出:
L012(xi)=yi,(i=0,1,2)
所以,L012就是所要求的二次插值多项式g(x)。
通过仔细研究L012,可以看出,是一阶差商(速度),而方括号内的分式是二阶差商(加速度)。上述通过两个线性插值的结果得到g(x),所以可以称作逐次线性插值。由于可以直接调用线性插值算法程序来完成,因此计算起来非常方便,当然本实施例中只考虑内插的情况。
在应用插值算法时,应该考虑下面的两个具体的问题:
1、关于插值点的选取:在单片机应用中,往往把常用的函数以表格的形式固化在程序存储器中。例如,对于任一给定的插值点x,x0和x1的对应值的函数值y0和y1,然后就可以进行插值运算,求得插值点(x,y)的值。
2、关于精度与复杂度:为了提高插值精度,大多数情况下可考虑采用浮点运算,此时可以考虑将参与插值运算的数据和表格事先转换成规格化浮点。但此种情况会使程序显得复杂,影响单片机的运算速度。
图12是本发明实施例三提供的控制鼠标指针移动的装置的结构示意图。如图12所示,基于实施例一或实施例二提供的所述控制鼠标指针移动的装置,本实施例中的控制鼠标指针移动的装置除了包括报点率设定单元10、坐标确定单元20(也可以为坐标确定单元60)、转换单元30、控制单元40、稳定判断单元50,还包括运动趋势识别单元70,所述运动趋势识别单元70与所述稳定判断单元50、报点率设定单元10、坐标确定单元20(也可以为坐标确定单元60)相连,用于以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势;所述报点率设定单元10在所述运动趋势识别单元70识别出所述运动趋势为直线运动时,降低所述空中鼠标的报点率。所述运动趋势识别单元70当任意两个连续的索引值之差小于或等于第三阈值时,识别出所述运动趋势为直线运动。
此外,具体实施时,本实施例的控制鼠标指针移动的装置还可包括插值单元80,所述插值单元80与所述运动趋势识别单元70、坐标确定单元20(也可以为坐标确定单元60)连接,用于对至少两个连续确定的空中鼠标的空间坐标进行插值运算,坐标确定单元20中的定位单元203(也可以为坐标确定单元60中的定位单元603)以插值运算后获得的所有空间坐标定位所述空中鼠标。所述插值单元80具体可包括选择单元、线性插值单元以及抛物线插值单元,所述选择单元用于当所述运动趋势识别单元识别出所述运动趋势为直线运动时,选择所述线性插值单元进行插值运算,否则选择所述抛物线插值单元进行插值运算。
本实施例所述控制鼠标指针移动的装置的具体实施可参考本实施例中所述控制鼠标指针移动的方法,在此不再赘述。
此外,本发明实施例还提供了一种空中鼠标,上面任意一个实施例中所述的控制鼠标指针移动的装置可以全部或部分集成在所述空中鼠标中,所述空中鼠标可通过无线收发装置(例如射频收发器、红外收发器等)与控制鼠标指针的控制设备(例如投影仪、计算机等)传送数据(鼠标指针的坐标或其变化量),无线收发装置的接收端一般可通过USB接口与所述控制设备连接。所述空中鼠标的具体实施可参考上面任意一个实施例中所述的控制鼠标指针移动的方法与装置,在此不再赘述。
综上,本发明实施方式提供的空中鼠标及控制鼠标指针移动的方法与装置,至少具有如下有益效果:
通过基于重力加速度传感器的敏感轴的加速度输出值设定空中鼠标的报点率,将确定的空中鼠标的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量,并以所设定的报点率输出所述鼠标指针的坐标或其变化量以控制鼠标指针的移动,从而能实现根据空中鼠标的实际运动情况动态调节报点率,使空中鼠标在加速度较大的情况下以较高的报点率输出数据,确保鼠标指针的移动的细腻平滑,在加速度较小的情况下以较低的报点率输出数据,降低了功耗。
进一步地,通过建立倾斜角索引表,当获取到惯性器件的敏感轴的测量值所对应的索引值后,依靠所述倾斜角索引表中索引值与敏感轴的参数(倾斜角及其三角函数值)之间所具有的对应关系,能够快速得到与所述获取到的索引值所对应的倾斜角及其三角函数值,进而快速确定空间坐标以便及时定位空中鼠标,由于避免了复杂而大量的计算(积分运算、反三角函数运算等),因此能够提高处理速度,从而使空中鼠标能以较高的报点率输出数据,相对于现有技术,在同样的时间内能输出更多的数据,增强了以高报点率输出数据的能力,而且使功耗降低。
进一步地,通过建立坐标对应表,能够在获取到惯性器件的敏感轴的测量值所对应的索引值后,依靠所述坐标对应表中的索引值与敏感轴的参数(基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值)之间所具有的对应关系,快速得到与所获取到的索引值所对应的基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值,进而以更快的速度确定空间坐标,进一步提高处理速度,使空中鼠标能以更高的报点率输出数据。
通过将与索引值对应的倾斜角的三角函数值扩大预定倍数并取整后存于所述倾斜角索引表,避免了浮点运算,从而能够以相对低端的微控制器实现计算,降低了空中鼠标的成本。
此外,通过以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势,在识别出所述运动趋势为直线运动时,降低空中鼠标的报点率,能够在不影响鼠标指针移动轨迹的平滑度的情况下,降低功耗。
进一步地,根据识别出的空中鼠标的运动趋势,进行相应的插值运算,能够获得更多的空间坐标,确保空中鼠标能以更高的报点率输出数据,使鼠标指针的移动轨迹更为细腻平滑。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (27)
1.一种控制鼠标指针移动的方法,利用空中鼠标控制鼠标指针的移动,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,其特征在于,包括:
基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;所述基于所述加速度输出值的矢量和设定空中鼠标的报点率包括:按加速度由小到大依次设置多个档次的加速度范围,每一档次的加速度范围对应一个报点率的设定范围,根据所述加速度输出值的矢量和所处加速度范围的档次确定对应的报点率的设定范围,所述加速度范围的档次越高,对应的报点率的设定越高;
确定空中鼠标的空间坐标;
将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;
以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
2.根据权利要求1所述的控制鼠标指针移动的方法,其特征在于,所述确定空中鼠标的空间坐标包括:
建立索引值与敏感轴的参数之间的对应关系,所述索引值与所述惯性器件的敏感轴的测量值所对应,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;
获取所述惯性器件的各个敏感轴的测量值;
基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。
3.根据权利要求2所述的控制鼠标指针移动的方法,其特征在于,所述敏感轴的参数包括基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标包括:
基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的惯性器件的敏感轴的坐标值;
基于查询到的惯性器件的敏感轴的坐标值确定所述空中鼠标的空间坐标。
4.根据权利要求2所述的控制鼠标指针移动的方法,其特征在于,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值;基于与所获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标包括:
基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的敏感轴的倾斜角及其三角函数值;
基于查询到的惯性器件的敏感轴的倾斜角及其三角函数值,确定所述空中鼠标的空间坐标。
5.根据权利要求2至4任一项所述的控制鼠标指针移动的方法,其特征在于,按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述对应关系中敏感轴的参数的配置。
6.根据权利要求2至4任一项所述的控制鼠标指针移动的方法,其特征在于,将与所述索引值对应的倾斜角的三角函数值扩大预定倍数并取整。
7.根据权利要求2至4任一项所述的控制鼠标指针移动的方法,其特征在于,所述确定空中鼠标的空间坐标还包括以稳定的敏感轴确定所述空中鼠标的空间坐标;判断敏感轴是否稳定包括:若缓存区内不同的索引值的数量小于或等于第一阈值,且各索引值之间的差值均小于或等于第二阈值,则确定该敏感轴稳定;所述缓存区存有每隔预定时间所获取的索引值。
8.根据权利要求7所述的控制鼠标指针移动的方法,其特征在于,还包括:以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势,若所述运动趋势为直线运动,则降低所述空中鼠标的报点率。
9.根据权利要求8所述的控制鼠标指针移动的方法,其特征在于,所述以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势包括:若任意两个连续的索引值之差小于或等于第三阈值,则识别出所述运动趋势为直线运动。
10.根据权利要求8所述的控制鼠标指针移动的方法,其特征在于,还包括:对至少两个连续确定的空中鼠标的空间坐标进行插值运算。
11.根据权利要求10所述的控制鼠标指针移动的方法,其特征在于,所述进行插值运算包括:若所述运动趋势为直线运动,则进行线性插值运算,否则进行抛物线插值运算。
12.根据权利要求2所述的控制鼠标指针移动的方法,其特征在于,所述重力加速度传感器为电容式重力加速度传感器,所述测量值为所述电容式重力加速度传感器的敏感轴的电容值。
13.根据权利要求2所述的控制鼠标指针移动的方法,其特征在于,所述惯性器件还包括陀螺仪传感器,所述测量值为所述陀螺仪传感器的敏感轴的电压值。
14.根据权利要求1所述的控制鼠标指针移动的方法,其特征在于,所述重力加速度传感器至少包括两个相互垂直的敏感轴,其中一个敏感轴垂直于地平面。
15.一种控制鼠标指针移动的装置,利用空中鼠标控制鼠标指针的移动,所述空中鼠标包括至少一种惯性器件,所述惯性器件包括重力加速度传感器,其特征在于,包括:
报点率设定单元,用于基于所述重力加速度传感器的各个敏感轴的加速度输出值的矢量和设定空中鼠标的报点率;所述报点率设定单元按加速度由小到大依次设置多个档次的加速度范围,每一档次的加速度范围对应一个报点率的设定范围,根据所述加速度输出值的矢量和所处加速度范围的档次确定对应的报点率的设定范围,所述加速度范围的档次越高,对应的报点率的设定越高;
坐标确定单元,用于确定空中鼠标的空间坐标;
转换单元,用于将所确定的空间坐标或其变化量相应转换为鼠标指针的坐标或其变化量;
控制单元,用于以设定的报点率输出所述鼠标指针的坐标或其变化量,以控制鼠标指针的移动。
16.根据权利要求15所述的控制鼠标指针移动的装置,其特征在于,所述坐标确定单元包括:
对应关系生成单元,用于建立索引值与敏感轴的参数之间的对应关系,所述索引值与所述惯性器件的各个敏感轴的测量值所对应,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值和/或基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;
获取单元,用于获取所述惯性器件的各个敏感轴的测量值;
定位单元,用于基于与获取的测量值对应的索引值查询所述对应关系,确定所述空中鼠标的空间坐标。
17.根据权利要求16所述的控制鼠标指针移动的装置,其特征在于,所述敏感轴的参数包括基于所述敏感轴的倾斜角确定的所述惯性器件的敏感轴的坐标值;所述定位单元包括:
第一查询单元,用于基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的惯性器件的敏感轴的坐标值;
第一确定单元,用于基于查询到的惯性器件的敏感轴的坐标值确定所述空中鼠标的空间坐标。
18.根据权利要求16所述的控制鼠标指针移动的装置,其特征在于,所述敏感轴的参数包括所述惯性器件的敏感轴的倾斜角及其三角函数值;所述定位单元包括:
第二查询单元,用于基于与所获取的测量值对应的索引值查询所述对应关系,获得与所述索引值对应的敏感轴的倾斜角及其三角函数值;
第二确定单元,用于基于查询到的惯性器件的敏感轴的倾斜角及其三角函数值,确定所述空中鼠标的空间坐标。
19.根据权利要求16至18任一项所述的控制鼠标指针移动的装置,其特征在于,所述对应关系生成单元包括配置单元,用于按倾斜角所对应的斜率由大至小的顺序逐步降低分割精度确定所述对应关系中敏感轴的参数的配置。
20.根据权利要求16至18任一项所述的控制鼠标指针移动的装置,其特征在于,所述对应关系生成单元包括扩值取整单元,用于将与所述索引值对应的倾斜角的三角函数值扩大预定倍数并取整。
21.根据权利要求16至18任一项所述的控制鼠标指针移动的装置,其特征在于,还包括稳定判断单元,用于判断敏感轴是否稳定,包括:若缓存区内不同的索引值的数量小于或等于第一阈值,且各索引值之间的差值均小于或等于第二阈值,则确定该敏感轴稳定;所述缓存区存有每隔预定时间所获取的索引值;所述定位单元以稳定的敏感轴确定所述空中鼠标的空间坐标。
22.根据权利要求21所述的控制鼠标指针移动的装置,其特征在于,还包括:运动趋势识别单元,用于以连续多个判断出敏感轴稳定后所获取的索引值识别空中鼠标的运动趋势;所述报点率设定单元在所述运动趋势识别单元识别出所述运动趋势为直线运动时,降低所述空中鼠标的报点率。
23.根据权利要求22所述的控制鼠标指针移动的装置,其特征在于,所述运动趋势识别单元当任意两个连续的索引值之差小于或等于第三阈值时,识别出所述运动趋势为直线运动。
24.根据权利要求22所述的控制鼠标指针移动的装置,其特征在于,还包括插值单元,用于对至少两个连续确定的空中鼠标的空间坐标进行插值运算。
25.根据权利要求24所述的控制鼠标指针移动的装置,其特征在于,所述插值单元包括选择单元、线性插值单元以及抛物线插值单元,所述选择单元用于当所述运动趋势识别单元识别出所述运动趋势为直线运动时,选择所述线性插值单元进行插值运算,否则选择所述抛物线插值单元进行插值运算。
26.根据权利要求16所述的控制鼠标指针移动的装置,其特征在于,所述重力加速度传感器为电容式重力加速度传感器,所述测量值为所述电容式重力加速度传感器的敏感轴的电容值。
27.根据权利要求16所述的控制鼠标指针移动的装置,其特征在于,所述惯性器件还包括陀螺仪传感器,所述测量值为所述陀螺仪传感器的敏感轴的电压值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102506705A CN102262460B (zh) | 2011-08-29 | 2011-08-29 | 空中鼠标及控制鼠标指针移动的方法与装置 |
PCT/CN2011/081624 WO2013029302A1 (zh) | 2011-08-29 | 2011-11-01 | 空中鼠标及控制鼠标指针移动的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102506705A CN102262460B (zh) | 2011-08-29 | 2011-08-29 | 空中鼠标及控制鼠标指针移动的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102262460A CN102262460A (zh) | 2011-11-30 |
CN102262460B true CN102262460B (zh) | 2013-05-29 |
Family
ID=45009115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102506705A Active CN102262460B (zh) | 2011-08-29 | 2011-08-29 | 空中鼠标及控制鼠标指针移动的方法与装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102262460B (zh) |
WO (1) | WO2013029302A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049102B (zh) * | 2012-10-11 | 2015-11-25 | 青岛海信电器股份有限公司 | 鼠标数据处理装置和鼠标数据处理方法 |
CN103970290A (zh) * | 2013-01-30 | 2014-08-06 | 云联(北京)信息技术有限公司 | 一种基于云游戏的鼠标信号处理装置及方法 |
CN103970261B (zh) * | 2013-02-05 | 2017-09-22 | 宝德科技股份有限公司 | 输入装置及其反应操作状态的方法 |
CN103207687B (zh) * | 2013-04-12 | 2016-03-09 | 深圳市宇恒互动科技开发有限公司 | 一种修正补偿被控图形坐标的方法及系统 |
CN103257710B (zh) * | 2013-05-06 | 2017-03-15 | 江苏惠通集团有限责任公司 | 空间鼠标发送鼠标数据的方法、控制鼠标指针移动的方法 |
CN103389807B (zh) * | 2013-07-16 | 2016-07-06 | 江苏惠通集团有限责任公司 | 空间鼠标的数据处理方法以及鼠标指针的控制方法 |
JP2016536730A (ja) * | 2013-10-24 | 2016-11-24 | 春生 朱 | 空中ハンドコントロール入力装置および方法 |
TW201520829A (zh) * | 2013-11-20 | 2015-06-01 | Wintek Corp | 電子輸入裝置 |
CN105407364B (zh) * | 2015-10-27 | 2018-07-03 | 四川长虹电器股份有限公司 | 基于智能电视收视率体系下频道综合竞争力实现方法 |
CN105578259B (zh) * | 2015-12-14 | 2018-10-19 | 四川长虹电器股份有限公司 | 一种基于智能电视下用户观影行为分类方法 |
CN107506052A (zh) * | 2017-08-03 | 2017-12-22 | 成都弈览科技有限公司 | 一种通过智能手机的虚拟空鼠的方法及设备 |
CN107704106B (zh) * | 2017-10-17 | 2021-04-09 | 宁波视睿迪光电有限公司 | 姿态定位方法、装置及电子设备 |
CN110007787A (zh) * | 2019-03-21 | 2019-07-12 | 深圳点猫科技有限公司 | 一种基于人工智能的网络坐标系下的插值方法,存储介质以及系统 |
TWI746961B (zh) * | 2019-04-18 | 2021-11-21 | 倚天酷碁股份有限公司 | 電子系統與人機互動方法 |
CN111309203B (zh) * | 2020-01-22 | 2021-10-08 | 深圳市格上视点科技有限公司 | 一种鼠标光标的定位信息的获取方法及装置 |
CN115917481A (zh) | 2020-08-18 | 2023-04-04 | 雷蛇(亚太)私人有限公司 | 用于控制电子设备的屏幕上的指针的装置和方法 |
CN112650402B (zh) * | 2020-12-25 | 2021-08-24 | 广州市博大电子设备有限公司 | 鼠标的控制方法及其应用 |
CN112860136A (zh) * | 2021-01-08 | 2021-05-28 | 北京字节跳动网络技术有限公司 | 控制电子书写装置的方法、装置、终端和存储介质 |
CN114675754A (zh) * | 2022-01-27 | 2022-06-28 | 浪潮(山东)计算机科技有限公司 | 一种鼠标控制方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200601158A (en) * | 2004-06-18 | 2006-01-01 | Chic Technology Corp | High sensitivity inertial mouse |
CN100353291C (zh) * | 2005-01-13 | 2007-12-05 | 原相科技股份有限公司 | 节省电源消耗、提高信号回报速率的鼠标相关装置及方法 |
JP4967368B2 (ja) * | 2006-02-22 | 2012-07-04 | ソニー株式会社 | 体動検出装置、体動検出方法および体動検出プログラム |
CN101398721A (zh) * | 2007-09-26 | 2009-04-01 | 昆盈企业股份有限公司 | 空中鼠标的光标位移速度控制方法 |
US8587519B2 (en) * | 2009-01-07 | 2013-11-19 | Sensor Platforms, Inc. | Rolling gesture detection using a multi-dimensional pointing device |
CN201576253U (zh) * | 2009-10-13 | 2010-09-08 | 撒元功 | 一种鼠标 |
-
2011
- 2011-08-29 CN CN2011102506705A patent/CN102262460B/zh active Active
- 2011-11-01 WO PCT/CN2011/081624 patent/WO2013029302A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN102262460A (zh) | 2011-11-30 |
WO2013029302A1 (zh) | 2013-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262460B (zh) | 空中鼠标及控制鼠标指针移动的方法与装置 | |
CN102289306B (zh) | 姿态感知设备及其定位、鼠标指针的控制方法和装置 | |
CN101872260B (zh) | 一种远程交互笔及书写笔迹检测方法 | |
EP2353064B1 (en) | Method and device for inputting force intensity and rotation intensity based on motion sensing | |
CN109807911B (zh) | 基于gnss、uwb、imu、激光雷达、码盘的室外巡逻机器人多环境联合定位方法 | |
CN101206539A (zh) | 在3d空间中输入信息的信息输入装置和方法以及介质 | |
CN102375567A (zh) | 笔状指示装置、位移信息提供方法及位移信息提供系统 | |
TWI679559B (zh) | 使用者與觸控筆的互動方法以及觸控筆產品 | |
CN102306054B (zh) | 姿态感知设备及其定位、鼠标指针的控制方法和装置 | |
CN102289305B (zh) | 姿态感知设备及其定位方法、鼠标指针的控制方法 | |
CN105303201B (zh) | 一种基于动作感应进行手写识别的方法和系统 | |
US9658715B2 (en) | Display mapping modes for multi-pointer indirect input devices | |
CN108450007A (zh) | 使用廉价惯性传感器的冗余阵列的高性能惯性测量 | |
CN102981646B (zh) | 姿态感知设备输出控制方法、显示控制方法及装置、系统 | |
CN113065572B (zh) | 多传感器融合的数据处理方法、定位装置及虚拟现实设备 | |
WO2023179393A1 (zh) | 区域划分方法、设备及存储介质 | |
CN103399651A (zh) | 空间鼠标的数据发送方法、控制鼠标指针的方法 | |
CN103439127B (zh) | 惯性输入装置运动质量的测量方法、终端和系统 | |
WO2014185027A1 (ja) | オフセット推定装置、オフセット推定方法、およびプログラム | |
CN109470269A (zh) | 空间目标测量机构的标定方法、标定设备及标定系统 | |
KR20140078681A (ko) | 멀티-포인터 간접 입력 장치들을 위한 가속도-기반 상호작용 기법 | |
CN104995584A (zh) | 计算磁航向 | |
KR20150046819A (ko) | 단말의 위치 정보를 획득하는 방법 및 그에 따른 단말, 그에 따른 시스템 | |
CN118379865B (zh) | 指向遥控方法、装置、设备及存储介质 | |
CN115790591B (zh) | 惯性测量与电子地图数据匹配方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |