CN102622107A - 鼠标偏转姿态使用求取正向位移的方法及鼠标 - Google Patents
鼠标偏转姿态使用求取正向位移的方法及鼠标 Download PDFInfo
- Publication number
- CN102622107A CN102622107A CN2011104428880A CN201110442888A CN102622107A CN 102622107 A CN102622107 A CN 102622107A CN 2011104428880 A CN2011104428880 A CN 2011104428880A CN 201110442888 A CN201110442888 A CN 201110442888A CN 102622107 A CN102622107 A CN 102622107A
- Authority
- CN
- China
- Prior art keywords
- mouse
- displacement
- value
- decimal
- parameter
- 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.)
- Granted
Links
Images
Landscapes
- Position Input By Displaying (AREA)
Abstract
一种鼠标偏转姿态使用求取正向位移的方法,涉及一种可响应使用者的输入而偏转角度使用的鼠标,其特征在于:所述鼠标的数据处理单元可根据设定的倾转参数θ的值对其获得的位移数据进行坐标系变换运算,运算结果与上周期缓存下的小数余量相加,所得最终结果被分为带符号的整数和小数两部分,这两部分的符号均来自于所述最终结果的符号,它们的值分别来自于所述最终结果的整数部分和小数部分,该带符号的整数部分作为用新的虚拟坐标系表示的位移变量汇报给下一环节,该带符号的小数部分作为本周期的余量值缓存到下一周期。通过这样的工作方式,可以在鼠标的物理正方向与使用者的正方向不吻合时,通过鼠标内部的软件算法来匹配使用者感觉到的正方向。
Description
技术领域
本发明涉及一种可调整操作姿势使用的鼠标,尤其是响应使用者输入的参数而可以偏转角度使用的鼠标,尤其是在使用已有的平面位移传感器的情况下为实现“鼠标在非原始正前后左右姿态正确反映操作者手部正前后左右方向的移动”所使用的解决方法和算法。也即鼠标的物理正方向与使用者的正方向不吻合时,鼠标通过软件算法来匹配使用者感觉到的正方向。
背景技术
鼠标是应用广泛的一种重要的计算机输入装置,在现有的产品中以平面位移传感器为主流,平面位移传感器为核心部件,辅以按键开关,在人与图形界面的人机交互中实现在图形界面中的定位及点选操作。也有空间/三维传感器在鼠标产品或类鼠标产品中应用,比如以加速度计通过积分运算得到位移量,或者用陀螺仪以角度变化量来对应位移量,或者使用手持摄像头拍摄三维空间中的特征光源来判断手持摄像头自身的指向方向、角度和距离的变化。但或者因为精度问题,或者因为定位基准的稳定性问题,或者因为计算能力的开销问题,或者因为应用领域与操作方式的问题,或者因为人的体力及生理学问题,或者因为成本问题,等等,种种三维定位技术(或者叫“非平面定位技术”,因为它们虽然通过在三维空间的动作采集信号,但采集的不一定是三个维度的信号)尚未成为主流,而多作为平面位移鼠标的附加功能、作为演示指示器、作为电器遥控器、作为游戏控制器出现。
稳定、快速、精确而成熟的平面位移传感器仍然是鼠标应用的主流。也因为我们与机器的交互界面仍然是平面,平面的显示器、平面的屏幕、在平面的图形中移动的光标,所以任何的三维信号源都不得不实现到二维平面的投射,这也是三维传感器在光标控制上优势得不到发挥的原因。现状是三维传感器被用于“用三维空间的动作,暂时的替代被过分依赖的平面位移传感器,产生二维的控制信号”,采用它们的目的多是为了暂时的舒适感或短时的自由感。
而即使是对我们的双眼实现了三维效果,我们用真实的三维尺度对应三维虚拟空间内的操作,悬空操作显然无法象伏案操作一样舒适而持久,桌面仍然是不易替代的优良办公资源,平面位移传感器仍是不易割舍的在人与电子信号间的交互工具。
因为被控的对象是一个二维正交矩阵投射出的影像,因为直角坐标系在我们的科学和生活中的重要作用,用作控制器核心的平面位移传感器的信号采集仍然是以正交的(直角相交的)两个维度方向为基础的,包括早期以滚球为基础的机械鼠标、机械光电鼠标,包括现在以感光元件矩阵为基础的光学/非机械鼠标,莫不如此。
为了统一我们控制者的手部运动的正前后左右方向与被控屏幕上光标正前后(上下)左右方向运动的对应,在生产环节,平面位移传感器相对于鼠标整体的指向就被明确标识(如图1),这不仅意味着所有的关于该鼠标器固体外壳的人体工程学设计都要以这个方向为基础展开,也意味着用户使用手势的选择受到限制,不同的手指长度、不一样的手掌大小、不一样的持握习惯(包括持握鼠标时手的松、紧、远、近以及左/右手等等情况)都要改变自身来适应鼠标,而鼠标是不能改变的。
申请号为200910177300.6的中国专利申请“一种鼠标及方法”提出了将平面位移传感器和鼠标器有限分离——两者保持电路连接但可相对转动——从而人手可以采用与预置姿势不同的姿势或者进一步而言人手可以变动操作鼠标的姿势,而此间失去的角度可以通过定位组件的扭转得到补偿。这是一个很好的方案,只是可活动的机械结构会使鼠标在零件结构上变复杂。申请号为201010288856.5的中国专利申请“对鼠标绕Z轴旋转后的倾角进行补偿的方法”提出用对电子数据的处理代替物理意义上的定位模块相对与鼠标体的旋转,从而省去复杂的实体机械结构,可以提高整体的稳定性,也可以降低生产成本。
发明内容
本发明提供一种适用于处理器运算的方法,以改善对鼠标体绕Z轴的旋转进行补偿计算的过程并降低产生的误差,使这种虚拟扭转补偿方法更具可实施性,用以实现鼠标被偏转持握时正确反映人手的移动方向和距离。本发 明主要涉及对位移数据按倾转参数θ进行坐标系变换环节的数据处理方法,以及使用此方法的鼠标。
本发明解决这一问题所采用的方案是:鼠标的数据处理单元在得到平面位移传感器采集的位移数据后,根据设定的倾转参数θ的值对位移数据进行三角运算,运算得到经坐标系变换的实数结果被用于和“小数缓存”中的上周位移余量值带符号相加产生一最终结果,该最终结果被分为带符号的整数部分和带符号的小数部分,该最终结果的符号和整数部分被赋值给该带符号的整数部分,该最终结果的符号和小数部分被赋值给该带符号的小数部分,该带符号的整数部分作为用新的虚拟坐标系表示的位移变量被汇报给下一个环节,该带符号的小数部分用于更新“小数缓存”。如此完成一个工作周期,之后再采集新一周期的位移数据并用同样的流程处理。鼠标如此循环,实现将位移传感器采集的经数据倾转补偿后的输出。
其中,“小数缓存”是开辟在程序内部的或者是开辟在处理器物理内存中的存储空间,用于存储当周位移换算最终结果的小数部分并在下个周期被读取。
简而言之:用汇报整数、累积小数的方法消除换算误差的影响,小数与下次的换算结果带符号相加,再汇报整数、累积新的小数。这小数部分可能在此过程中产生向整数的进位或借位,从而可把累积到的、单次小于1的影响反馈到整数中输出出去,使手控鼠标的实际位移与对应的电子信号计数反映的位移间的误差,在一次由起到止的完整操作中误差不会超过一个点,这小于一个点的误差始终在观察的终点,但在接下来的操作中又会被纠正,而在另外的终点累积一个仍然可被消除的新值。
使用此方法,鼠标用小于1点的精度才能反映的真实位置,被延时到“下一次”数据采集到后才输出,所以可以说它延后输出了真实位置,而不是每次都输出一个经过裁剪的有误差的值。
这里所说的1点,是相对于已有的系统中的、将要被本发明所说的方法处理的数据的单位,它可以是光学位移传感器中可感受到的最小像素点,或者机械鼠标的光电传感器探测的栅轮的齿间距代表的最小可分辨距离单元,也可以是调整输出后用于驱动显示器上一个像素位移的最小单位(比如最高 分辨率可达到1600cpi——counts per inch——的光学鼠标被调整到800cpi使用,显示器上的点要比传感器可感受到的最小点大),这取决于使用本发明方法的位置。
基于光学导航技术的鼠标光学引擎芯片靠数字化并计算(对比)连续取得的被测表面光学图像(帧)的变化来确定移动的方向和位置的变化幅度,一个典型的光学引擎芯片一般包含一个图像获取系统(Image AcquisitionSystem,IAS),一个数字信号处理器(Digital Signal Processor,DSP),一个串行口(通常是四线串行口,SPI标准,串行外围设备接口,SerialPeripheral interface)。IAS藉由透镜和照明系统获取微观表面图像,这些图像经由DSP处理来确定移动的方向和距离,该DSP生成相对位移值ΔX和ΔY。一个外部的微控制器(microcontroller)通过该串行口读取该ΔX和ΔY的信息,然后将之与其他数据组合包装为PS/2标准或USB标准的鼠标信号,之后再通过PS/2接口或USB接口向主机输出。
实际上微控制器单元要处理更多的设备和更多的数据,包括按键、滚轮以及可能会存在的自定义按键功能的“编程操作”等等。
一些集成度高的芯片用单颗芯片集成尽量多的模块来简化整个产品的结构,比如Avago安华高公司的小型光学鼠标传感器ADNS-2700将光学传感器、微控制器等等都集中在一颗芯片内部形成SoC(System on Chip)片上系统,内部包括IAS、DSP、USB接口电路、晶振、负载电阻、一次性编程内存……所以,数据被处理的位置不限于它看起来像是在哪个模块中被处理的,。
因为光学位移传感器芯片自带DSP芯片是有很强处理能力的,再加上负责控制和I/O处理的微控制器单元也有数据处理能力,所以本发明方法中所言“数据处理单元”可能为二者中任何一个,本发明所说的方法可在二者之任何一个进行。虽然微控制器单元和光学位移传感器芯片分开为两个芯片时可以很容易区分数据是在哪里处理的,却不能因为它们在一个高度集成的SoC芯片内时而认为这里只有一个处理器。
基于滚球、光栅轮和光电传感器的机械鼠标中,微处理器统计来自两组传感器的脉冲信息生成代表在互相垂直的X轴方向和Y轴方向发生的相对位移值ΔX和ΔY,然后将位移数据和按键、滚轮来的信息一起,封包成PS/2 格式或USB格式数据,用于向主机输出。本发明所说的方法可在数据被封包前执行,封包时使用经过处理的整数部分,小数部分被保存用于下一次位移数据到来时冲抵误差,从而使一个被倾斜放置而被正向移动的鼠标可以反映它的正向移动轨迹,从而可以正常控制光标而不会出现失真。
下面分析一下鼠标技术的基础:
最早的、标准的PS/2鼠标支持下面的输入:X(左右)位移,Y(上下)位移,左键,中键,右键。鼠标以固定的频率读取这些输入并更新不同的计数器然后标记出它们反映的移动和按键状态。这些状态一起以三字节鼠标数据包的形式发给主机,主机接收到数据后操作系统解析该数据包来移动鼠标指针和改变按键状态,例如单击,右键菜单等。因为标准的PS/2鼠标通讯协议只定义了X、Y位移和左中右三键的状态,而流行的鼠标多附带了滚轮,一些种类鼠标按键数目也多于3个,增加的状态数据需要扩充PS/2鼠标通讯协议才能实现传输,就是改变位移数据包的标准格式。以Microsoft的Intellimouse鼠标为例,它使用扩展到四字节的位移数据包,它的数据包格式如下:
表格1
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
字节1 | YV | XV | YS | XS | 1 | M(B3) | R(B2) | L(B1) |
字节2 | X7 | X6 | X5 | X4 | X3 | X2 | X1 | X0 |
字节3 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
字节4 | 0 | 0 | B5 | B4 | Z3 | Z2 | Z1 | Z0 |
注释:
L=左键状态 R=右键状态 M=中键状态 B4=第四按键状态 B5=第五按键状态1=按下0=释放
X0-X7=X距离 Y0-Y7=Y距离 Z0-Z3=Z(滚轮)距离
XS,YS=±符号位 1--反向移动
XV,YV=溢出位 1----XY数据溢出
下面再看一下Avago安华高公司的单芯片光学鼠标传感器ADNS-2700使用的USB数据包格式:
表格2
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
字节1 | 0 | 0 | 0 | 0 | 0 | M(B3) | R(B2) | L(B1) |
字节2 | X7 | X6 | X5 | X4 | X3 | X2 | X1 | X0 |
字节3 | Y11 | Y10 | Y9 | Y8 | X11 | X10 | X9 | X8 |
字节4 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
字节5 | Z7 | Z6 | Z5 | Z4 | Z3 | Z2 | Z1 | Z0 |
字节6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
可以看出它使用12个二进制位表示一个方向的位移数据。
现有鼠标产品用于表示位移变化量的最长数据格式是使用16个二进制位,使用最多的是8个二进制位和9个二进制位(符号占据其中的一位,表示移动方向,这时每次汇报给主机的最大位移点数为128点或256点,超过就会溢出)。
现有光学传感器的幅面通常为22×22上下,每秒处理的图像帧大约在10000帧,最大的位移输出分辨率大约在5000CPI(现阶段用户使用最多的CPI值是1000CPI),支持的最大移动速度在1米/秒左右,最常使用的USB汇报率是125Hz(有少数产品使用500Hz或1000Hz的USB汇报率)。在机械鼠标占据主流时期,多数产品的位移输出分辨率是400DPI(每英寸400点),使用的PS/2接口的主机汇报率是100Hz。
通过这些特点分析可知在鼠标中处理的数据多是大量小值的整数,而进行坐标换算的公式x′=x×Cosθ-y×Sinθ,y′=y×Cosθ+x×Sinθ中使用的三角函数值多是无理数,计算结果不可避免的产生小数数值,直接向主机汇报将无法在现有的通讯标准中实现(即使通过额外的驱动程序实现了,因为要驱动的是用整数表示的显示界面的像素坐标,所以小数部分要么需要处理,要么也会被忽略掉)。使用本发明的方法可以使用已有的传感器技术、不改变现有的上下游系统和协议,也不会因小数计算产生重大误差,从而“低成本的”达成鼠标在倾斜状态的正常使用。
举例来说,在鼠标初始化后,得知倾角参数θ是30°,在连续五次位移汇报中,第一次检测到ΔX=3 ΔY=0,其后依次是(4,2)(2,5)(0,-4) (-7,-5)。
Sin30°=0.5,Cos30°=0.86602540;
x′=x×Cosθ-y×Sinθ,y′=y×Cosθ+x×Sinθ;
这里我们以十进制、小数点后保留四位有效数字为例看一下这个计算过程,使用二进制的表示时可同样理解。
因为我们主要涉及到通常习惯称为X、Y两轴的2D(二维)数据,所以3D、4D或3键、5键鼠标的数据格式定义都对我们的方法的说明没影响。
表格3
由(ΔX,ΔY)驱动的轨迹,参见图2。为了方便说明,由(ΔX,ΔY)驱动的轨迹将被称为“原始轨迹”或“传感器轨迹”,意味着原始的由传感器采集的的位移轨迹,尚未经过额外的计算。
由(ΔX′,ΔY′)驱动的轨迹,参见图3。为了方便说明,由(ΔX′,ΔY′)驱动的轨迹将被称为“输出轨迹”或“参数轨迹”,意味着按倾角参数计算后的输出轨迹。这是整数驱动的轨迹线,与仅经过三角运算后得到的实数值驱动的轨迹是相近而不同的。
将平方根换算成小数后,这两组数据的约值分别为(3,7.2801,11.4018,9.4868,2.8284)与(2.2361,7.0711,11.1803,10,3)。
可以看到,换算后任何一个观察终止点到起点(0,0)间的距离,与换算前的值相比,误差都小于1点。因为鼠标是互动操作的,操作者靠观察来确定终点,而不是靠数点数来确定终点,所以这一个点的误差会被自然的消除。而全程中输出轨迹与原始轨迹的差别都非常小(参见图4),说明经过我们改变的鼠标跟踪性能非常好,可以忠实的反映使用者手的移动轨迹,不同之处在于现在手倾斜30度拿着鼠标。
实际上在取三角函数值时保留的有效位数会对补偿角度产生误差,比如:
Cos5°=0.99619469809174553229501040247389,
0.9962=Cos4.9965°,0.996=Cos5.1264°,1.00=Cos0°
但只要有足够的有效位数,比如保留3或4个十进制小数位,就可以把误差限制在人不可感知的范围内。
补偿角为90度或者90度的倍数的情况有些特殊,因为它只需要简单的交换X、Y的变量值和/或改变变量的符号(方向)就可以实现了,不需要进行更多的乘法或加法运算,一些用于鼠标的微控制器芯片或者SoC形式的自带微控制器的光学传感器芯片提供了设置传感器方向的功能,可以实现以90度为倍数的旋转,但这种旋转与本发明描述的旋转仍有不同:1、这种旋转是提供给鼠标生产者的,为的是可以更灵活的安排芯片安放的位置和方向,简化鼠标的电路结构或适应鼠标内狭窄有限的空间,这种旋转是在生产时完成,一旦设置就固定下来,到消费者手中仍然是一个固定的不变的方向,消费者只能使用这个方向而不能根据需要使用二个或更多的角度值2、只能实现90度倍数的旋转,其实只有四个值(且相邻值之间至少相差90度),在一般的鼠标设计中这样的旋转其实是没有有益效果的,因为旋转后没有合适位置的按键供操作,所以也并没有人去实现这样的旋转应用。
而本发明或者其所引用的200910177300.6和201010288856.5申请中所描述的“旋转”,哪怕是仅有不需要消耗计算资源的“90度”一个旋转角度值,使用者也可以在“0度”和“90度”两个方向下自由选择使用哪一个(因为鼠标器的形状和布局会做相应的设计创新),而且可在自己疲劳或厌倦的时候随时换到另一个方向下使用——只要使用者改变给鼠标的参数值设定(通过按键或切换开关或电位器或驱动软件……等等途径)。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是一个鼠标用平面位移传感器芯片提供的安装示图。
图2是一个位移传感器汇报的原始轨迹。
图3是图2的轨迹数据用本发明的方法按30度参数角计算后的输出轨迹。
图4是原始轨迹和输出轨迹的比较。
图5是一个机械鼠标的原理框图。
图6是本发明第一实施例,一个可作倾转补偿的机械鼠标的原理框图。
图7是本发明第一实施例的流程图。
图8A是本发明第一实施例的传感器轨迹。
图8B是本发明第一实施例的输出轨迹。
图9是一个光学鼠标的原理框图。
图10是一个光学鼠标SoC单芯片的原理框图。
图11是本发明第二实施例,一个可作倾转补偿的光学传感器鼠标的原理框图。
图12是本发明第二实施例的流程图。
图13是一个DSP内部流程图。
图14是本发明第二实施例的传感器轨迹。
图15是本发明第二实施例的输出轨迹。
图16是应用本发明第二实施例的一个鼠标外观示图。
图17是本发明第三实施例的简化流程图。
图18是本发明第四实施例,一个可倾转操作的触摸板鼠标。
图19是图17例子针对“使用中设置”作出改变后的一种简化流程图。
具体实施方式
图1是一个鼠标用平面位移传感器芯片提供的安装示图。指示了光学位移传感器芯片与鼠标器外壳间严格的安装方向。
图2是一个位移传感器汇报的原始轨迹。
图3是图2的轨迹数据按30°参数角并使用本发明的方法计算后的输出轨迹。
图4是原始轨迹和参数轨迹的比较,将它们放到同一幅图中并使它们的起点A和A′重合,其中参数轨迹经过顺时针30°旋转并用虚线表示。
图5是一个3D、3键、PS2接口的机械鼠标的原理框图。
图6是本发明第一实施例,一个可作倾转补偿的机械鼠标的原理框图,该框图代表的鼠标含有一个旋转电位器P302,MCU芯片(P301)的控制核心通过一个8bit模数转换模块P303来读取P302的状态值,旋转电位器P302通过自身电阻值的改变代表从-30°到+30°的倾转补偿角。以鼠标器从原始状态向顺时针方向旋转的角度为正方向,即以输出信号需要向逆时针方向转动的角度为正补偿角度。
在本例中,鼠标MCU内置的程序软件中自带一个最小分辨率为5°、范围在±30°区间、小数点后有4个十进制的有效位的三角函数表,如下:
角度 | 变量 | 存储值 | 角度 | 变量 | 存储值 |
30° | CosA、SinA | 0.8660、0.5000 | -30° | CosA、SinA | 0.8660、-0.5000 |
25° | CosA、SinA | 0.9063、0.4226 | -25° | CosA、SinA | 0.9063、-0.4226 |
20° | CosA、SinA | 0.9397、0.3420 | -20° | CosA、SinA | 0.9397、-0.3420 |
15° | CosA、SinA | 0.9659、0.2588 | -15° | CosA、SinA | 0.9659、-0.2588 |
10° | CosA、SinA | 0.9848、0.1736 | -10° | CosA、SinA | 0.9848、-0.1736 |
5° | CosA、SinA | 0.9962、0.0872 | -5° | CosA、SinA | 0.9962、-0.0871 |
0° | CosA、SinA | 1.0000、0.0000 |
不使用最小分辨率为1°或更小角度的函数表,只是为了避免这段介绍中出现太长的表格。这样一个表格已经能说明我们的意图。
在另外的实例当中,MCU读取旋转电位器的阻值生成以1°为最小分辨率、属于-30°到+30°范围区间的角度值作为倾转参数θ的值,MCU用内置的函数自 行计算θ对应的三角函数值。
图7是本发明第一实施例的流程图。鼠标加电初始化后,首先检测旋转电位器P302的状态,并转化成最小分辨率为5°的θ值。
当θ=0,意味着不需要做倾转补偿,走左侧的流程S104,这是一个普通鼠标的正常流程,因为鼠标工作的性质,一旦开始工作就在步骤S107到S108之间循环,不停的检测自身位移、滚轮和按键的状态并向主机汇报,一直到断电或者被重新初始化才会退出。
当θ≠0,意味着需要做倾转补偿运算,走右侧的流程S105。在步骤S110从三角函数表中读取对应于θ的三角函数值后,Cosθ和sinθ的值作为常量参与到带倾转角度补偿的工作循环S120当中,除非θ被重新设置否则不再变化。在工作循环S120当中,MCU首先读取位移(ΔX,ΔY)、滚轮(ΔZ)、按键状态等数据(步骤S111)以及“小数缓存”中的余量数据(Δx′,Δy′)(步骤S112);之后把该余量数据与新的“位移转换值”(图中实数A、B)带符号相加(得到实数C、D)(步骤S113和S114);实数C、D的小数部分被赋值给(Δx′,Δy′),实数C、D的符号同时被赋值给(Δx′,Δy′)作为符号,实数C、D的整数部分被赋值给(ΔX′,ΔY′),实数C、D的符号同时被赋值给(ΔX′,ΔY′)作为符号(S116/S115);带符号的纯小数(Δx′,Δy′)作为本周期的余量数据更新到“小数缓存”中(S118),整数部分用于输出(S117);当(ΔX′,ΔY′)代替普通普通鼠标中的(ΔX,ΔY)作为位移数据与滚轮(ΔZ)、按键状态等数据一起打包通过PS2串口输出到主机后(S117),鼠标的第一个工作周期就完成了。之后鼠标将在步骤S111到步骤S117之间循环,构成带倾转角度补偿的工作循环S120,不停的检测传感器位移、滚轮和按键的状态并向主机汇报,一直到断电或者被重新初始化才会退出。
“小数缓存”被开拓出来用于存储每次汇报参数位移变量(ΔX′,ΔY′)后剩余的小数余量(Δx′,Δy′)的数据,在鼠标初始化后第一个周期当中(Δx′,Δy′)的值为(0,0),之后的周期读取到的值都是在上一周期的末尾更新过的。
这里把传感器得到的相对位移改变量(ΔX,ΔY)叫做“原始位移”,把通过公式(x′=x×Cosθ-y×Sinθ,y′=x×Sinθ+y×Cosθ)计算得到的经过 坐标系变换的结果叫做“位移转换值”,把经本发明算法修改输出的位移(ΔX′、ΔY′)叫做“参数位移”或“输出位移”。应该注意到,因为本发明使用的方法,“参数位移”并不一定是“位移转换值”的整数部分。
这里用一个简化的轨迹,模拟鼠标在加速和转向状态中在1/20秒内汇报定位的五个点,然后求得对应的输出轨迹,来分析和理解这一过程。
鼠标检测倾角电位器的状态得到倾转角θ为10°,查自带三角函数表取值:Sin10°=0.1736,Cos10°=0.9848
将原始值、中间值和最终值整理列入下表:
第一实施例的位移数据表1
下面结合第一实施例的位移数据表1的数据做说明:在鼠标工作循环的第一个周期,MCU在S111和S112步骤分别读取到ΔX=-36,ΔY=12,以及小数缓存中的值Δx′=0,Δy′=0(因为尚未有小数余量值放入“小数缓存”中,所以读取到的是初始值“0”);使用在S110步骤查到已经作为常量的三角函数值(Sin10°=0.1736,Cos10°=0.9848)经过换算后得到两个实数A=-37.5360,B=5.5680;在S114步骤得到C=A+Δx′=-37.5360+0=-37.5360,D=B+Δy′=5.5680+0=5.5680;在S115步骤C和D值的整数部分和符号分别赋 值给ΔX′、ΔY′,得ΔX′=-37、ΔY′=5;在S116步骤C和D值的小数数部分和符号分别赋值给Δx′,Δy′,得Δx′=-0.5360,Δy′=0.5680;接着ΔX′、ΔY′代替在S104的工作流程中的ΔX、ΔY,与滚轮数据ΔZ和按键状态数据打包成PS2鼠标数据格式送到PS2接口输出(步骤S117),Δx′,Δy′的值被更新到“小数缓存”中成为累积小数,以备在下一个周期中被读取使用(步骤S118)。在鼠标运行的第二个周期,ΔX=-67,ΔY=29,而Δx′=-0.5360,Δy′=0.5680,换算的最终结果C=-71.5520,D=17.0619,这个结果被分开为整数部分(ΔX′、ΔY′)和小数部分(Δx′,Δy′),整数部分(ΔX′=-71,ΔY′=17)用于输出,小数部分(Δx′=-0.5520,Δy′=0.0619)作为累积小数用于更新存储到小数缓存里。在这一周期里可以看到,通过y′=x×Sinθ+y×Cosθ公式换算得到的结果的整数部分是16,而因为累积小数的关系出现了向整数部分的进位,作为Y轴位移输出的是17。
图8A是本发明第一实施例的传感器轨迹,从S点起始,经过位移数据表1中5个周期的相对位移值(ΔX,ΔY)所指示的点描述而成,如果不经过处理,比如采用流程图的S104流程就会按此轨迹驱动光标。图8B是本发明第一实施例的输出轨迹,经过位移数据表1中5个周期的(ΔX′,ΔY′)值描述而成,使用S105流程处理后将按此轨迹驱动主机的光标。
可看出轨迹几乎完全相同,输出的轨迹图B相比传感器采集的原始轨迹图A逆时针旋转了约10度,所以使用此算法后允许鼠标顺时针旋转10度倾斜使用,通过上述演算,输出轨迹逆时针10度纠正后和普通鼠标不倾转(正向使用)效果相同。
图9是一个光学鼠标的原理框图。
图10是一个光学鼠标SoC单芯片的原理框图。
图11是本发明第二实施例,一个可作倾转补偿的光学传感器鼠标的原理框图,本例中使用光学位移传感器芯片(P401)获取鼠标相对参照平面的运动状态,使用一个USB MCU芯片(P402)作为控制核心。与作为参照的图9的鼠标相比,看得见的结构上的不同之处在于通过P402的通用I/O总线P404连接有一“倾角参数设置开关”P403。
本例所用的光学位移传感器芯片P401可以接受一定的编程控制,可以通过与MCU间的SPI串行总线得到一些设置值并用于自己的计算过程。
图12是本发明第二实施例的流程图。在本例中,“倾角参数设置开关”P403是一个按键开关,通过不同的按动方式可向MCU传送四种约定的信号:按一下代表θ=-30°,连按两下代表+30°,连按三下代表+90°,长按不放超过3秒钟代表0°。根据程序节约的原则,在鼠标读取倾转参数设置值(步骤S202)后通过两个判断分为三个执行分支:如果倾转参数为0°就进行普通的没有额外计算的工作循环(如图中S203所示的“工作循环1”);如果倾转参数为90°(的倍数)就进行S205分支的“工作循环2”,只通过X、Y数据组的交换及符号改变来实现(当θ=90°时x′=-y,y′=x,当θ=-90°时x′=y,y′=-x,当θ=180°时x′=-x,y′=-y);在非这两种情况,就运行S206分支的“工作循环3”,基于我们的“汇报整数,累积小数”方法进行坐标系变换并向主机输出。
在S206分支中,MCU计算或者查表得到θ对应的三角函数值后,使光学引擎芯片P401进入设置模式,并通过SPI总线P405将该θ值及其三角函数值传入DSP处理器P406,这一操作完成后DSP将直接输出经处理后的ΔX′,ΔY′,MCU将ΔX′,ΔY与滚轮的ΔZ以及各按键状态一起打包通过USB接口向主机输出(S210)。
图13是一个DSP的流程图,DSP初始化后先判断是否需要设置(新的)θ及其三角函数值,需要则进入S302流程,否则就进入S303流程直接读取预存的θ及其三角函数的值(S304)。接下来是根据程序节约原则的一个判断(S305),倾转参数为零则运行正常的工作循环S307,否则运行带补偿角的工作循环S309(虽然在图13的流程是图12流程的子流程时这个S305的“为零”的判断结果就永远不会发生了,这里还是将其列出作为与S308分支的对比)。可以看出这里的工作循环S309与第一实施例在图7的工作循环S120很相近。
这里用一个模拟的轨迹来检验这一过程,θ=30°,取Sin30°=0.5Cos30°=0.8660,换算使用公式(x′=x×Cosθ-y×Sinθ,y′=x×Sinθ+y×Cosθ)。
将原始值、中间值和最终值整理列入下表:
第二实施例的位移数据表2
以此数据表的ΔX,ΔY数值列绘制得到图14的传感器轨迹A。
以此数据表的ΔX′,ΔY′数值列绘制得图15的输出轨迹A′,并将A轨迹逆时针旋转30°后以起点A/A′为基准叠加到同一图中,用实线表示A′轨迹,用虚线表示A轨迹。可见实线轨迹上任何点相对虚线轨迹的偏离都没有超过一个点距。
这里的“输出轨迹”是DSP向MCU输出的,与最终传递到电脑主机的或许不同。因为光学位移传感器芯片通常有较高的CPI值(比如1600CPI),而鼠标向主机输出的CPI值可能较低(比如800CPI),或者支持由高到低可随用户设置变化的一系列输出分辨率值(比如可在1600CPI、1200CPI、800CPI、400CPI间切换)。
由于使用本发明的方法会在观察的终点有一个最小单位以内的误差,因而在高CPI参数的光学引擎芯片的DSP处理器内进行本方法的运算时,如果输出CPI较低,则相比由MCU进行运算产生的误差要小。比如光学引擎芯片的最高CPI是5000,输出使用1000CPI,则在DSP运算时“观察终点误差”是0.0002英寸之内,在MCU运算时“观察终点误差”是在0.001英寸之内。
另一种可减小误差的情况是,使用高CPI参数的传感器而由MCU完成CPI的降低输出(比如DSP向MCU输出CPI恒定的数据,MCU通过插值或缩减输出数据来调整鼠标器的CPI值增高或降低。因插值增高CPI的数据失真严重,一般产品都是以高CPI值的传感器为基础向下产生较低的CPI值),这时仍然比使用较低CPI的源数据直接进行倾转补偿运算然后输出的情况追踪精度更好、误差更低。在此种情况下如果MCU先对DSP来的位移数据进行倾转补偿运算再调降输出CPI(比如相对5000CPI的源数据降到1000CPI输出)则与前段所述由DSP进行倾转补偿运算再降低CPI输出到MCU的情况本质相同。而先调降CPI再换算补偿角的方案也可以获得一些益处。举例来说,以5000CPI之轨迹的尖峰或折返点,向前探出3点时,即使是先调降CPI再换算补偿角的方案,也可以在累积小点数,仅是还未凑够一个(大)点产生输出而已,当然它对“观察终点误差”不如前面两个方案好。
而直接使用较低CPI的源数据时,一些小于1点的偏移会被引擎的“修正”直接侵蚀掉,同时“观察终点误差”也是最大。
这两类使用高CPI值的传感器来降低误差的方案的不同点是,市场上光学引擎芯片的生产厂家不多,光学引擎芯片提供给鼠标厂家的编程能力有限,也不容易进行按需定制;但MCU的情况则灵活自由的多(可选产品多、编程容易,只要运算能力足够,就可以尝试不同的运算内容和不同的运算逻辑),所以使用高CPI值的位移传感器、通过控制MCU降低误差(尤其是“观察终点误差”)的方法更容易在产品中实现。在实际中考虑与屏幕及应用程序的实际情况配合,通常状态使用的鼠标CPI都不很高,而光学引擎芯片可以提供的最高CPI已很高,正好可以利用这一基础提高本发明方案的表现。
由于光学引擎芯片判断位移所使用的计算技术的特点(倾向于使用更快的取样帧率来保持高速运动中相邻两帧间的相关性,等等),在相邻两个图像帧之间产生的位移多为每个维度方向一个像素点或两个像素点……等等小值 整数,这使得坐标系换算公式(x′=x×Cosθ-y×Sinθ,y′=x×Sinθ+y×Cosθ)中的乘法部分有机会变成以快速高效的加法运算为主,而不需要专门的乘法器来提高运算速度,DSP可以在计算出帧间位移后即刻进行(三角函数值)小数相加,同时应用“输出整数,累积小数”的原则。比如ΔX=3ΔY=0就变成
x′=Cosθ+Cosθ+Cosθ,y′=Sinθ+Sinθ+Sinθ
ΔX=1 ΔY=2就变成
x′=Cosθ-Sinθ-Sinθ,y′=Sinθ+Cosθ+Cosθ
由于鼠标器扭转90°(或者90°的倍数)与其本身的原始状态的差别太大,需要鼠标器有特殊的设计才能有应用价值,尤其是需要有合适的按键位可在新的姿态下供手指操作,这将通过图16及后面的图18略作说明。
图16是应用本发明第二实施例方案的一个鼠标器的外观示图,该鼠标110采用X轴向尺寸大于Y轴向尺寸的布局,主按键沿鼠标器较长的边排列,但在其X轴负方向所指示的一端也布置有按键。该鼠标使用一个支持五键3D的芯片方案,前方的101和103分别是第一、第二按键,在滚轮102下有隐藏的第三按键,104为第四按键。105是它的第五个按键,但是被用作“倾角参数设置开关”。这样,该鼠标可以在标准的“横式”状态下工作;也可以按动一下105键向左倾斜30度工作;或者按动两下105键向右倾斜30度用于右手倾斜使用;或者按动三下105键变身为一个“竖式”鼠标,此时104键被设置为第一按键(通常说的“左键”)之功能,其他可能造成持握不方便的按键(比如103键)可以选择暂时屏蔽功能以防止误按。在长按104键超过3秒后,此鼠标又恢复成初始的默认为“横式”的状态
图17是本发明第三实施例的简化流程图,意在说明在光学鼠标中使用MCU作为倾转角补偿的计算核心的情况。因为与第一实施例方案的最大不同在于位移数据的取得(机械鼠标MCU用计数器计数光电传感器的脉冲,光学鼠标由光学位移传感器芯片提供位移值,所以光学鼠标的MCU只需要读取该值就可以了),关键的换算流程还是由MCU进行的,所以图17的流程图和图7的流程图非常相像。
鼠标加电初始化后,首先检测已设置在鼠标中的倾转参数θ值,这可能是一个电连接的旋转电位器的阻值状态,或者是由按键或者外部软件在设置状态输入到MCU的代表约定角度值的状态值,等等。此例选定使用预存在鼠 标MCU软件内部的三角函数表,所有检测到的模拟输入或者数字化输入的θ值都被对应到这个三角函数表支持的范围内,这样相比由MCU实时计算三角函数值可以简化MCU内部韧体软件的设计。
在S403步骤对倾转参数θ值进行“非0”判断。当θ=0,意味着不需要做倾转补偿,走左侧的流程S404,这是一个普通鼠标的正常流程,因为鼠标工作的性质,一旦开始工作就将在步骤S407到S408之间循环,不停的检测自身位移、滚轮和按键的状态并向主机汇报,一直到断电或者被重新初始化才会退出。
当θ≠0,走右侧的流程S105,鼠标的位移将经过倾转补偿运算后才输出。在步骤S410从MCU内部软件中的三角函数表中读取对应于θ的三角函数值后,Cosθ和Sinθ的值作为常量参与到带倾转角度补偿的工作循环S420当中,除非θ被重新设置否则不再变化。在工作循环S420当中,MCU首先读取位移(ΔX,ΔY)、滚轮(ΔZ)、按键状态等数据(步骤S411)以及“小数缓存”中的余量数据(Δx′,Δy′)(步骤S412);之后把该余量数据与新的“位移转换值”(图中实数A、B)带符号相加(得到实数C、D)(步骤S413和S414);实数C、D的小数部分被赋值给(Δx′,Δy′),实数C、D的符号同时被赋值给(Δx′,Δy′)作为符号,实数C、D的整数部分被赋值给(ΔX′,ΔY′),实数C、D的符号同时被赋值给(ΔX′,ΔY′)作为符号(S416/S415);带符号的纯小数(Δx′,Δy′)作为本周期的余量数据更新到“小数缓存”中(S418),整数部分用于输出(S417);当(ΔX′,ΔY′)代替普通普通鼠标中的(ΔX,ΔY)作为位移数据与滚轮(ΔZ)、按键状态等数据一起打包通过USB串口输出到主机后(S417),且“小数缓存”的(Δx′,Δy′)完成更新后(S418),鼠标的第一个工作周期就完成了。之后鼠标将在步骤S411到步骤S417之间循环,构成带倾转角度补偿的工作循环S420,不停的检测传感器位移、滚轮和按键的状态并向主机汇报经过换算补偿的状态值,一直到断电或者被重新初始化才会退出。
“小数缓存”是被开拓在程序内部的或者是处理器物理内存中的存储空间,被用于存储每次汇报参数位移量(ΔX′,ΔY′)后剩余的小数余量(Δx′,Δy′)的数据,在鼠标初始化后第一个周期当中(Δx′,Δy′)的值为(0,0),之后的周期读取到的值都是在上一周期的末尾更新过的。
在图18的第四实施例中,鼠标121本身为触摸式鼠标,鼠标的上盖的大部分面积被触摸传感器板覆盖,在对鼠标位移传感器做角度补偿时可对应的设定触摸板上代表按键的区域的位置,使手指始终可以在最方便的位置进行“按动按键”的操作。这样,当旋转补偿角度是90度时,可以方便的把原来的纵置式触摸鼠标转变为横置式,使控制鼠标器姿态的操作对大拇指的依赖减轻,更加方便进行“多点触摸”操作。图18A的虚线122往上区域为触摸板区域,由123标号指示了它的操作核心区域和方向。图18B为该旋转90度后,虚线125往左区域为触摸板区域,操作核心区域和方向由图中124标号指示。
至此介绍了本发明的主体方法和基本流程,接下来介绍一些扩充性的技术方案。
鼠标在加电时/初始化时读取设置值是基本的流程,但实际可能需要在使用过程中进行设置的更改,比如调整倾转参数θ,然后继续使用,此时的流程可以是:调整设置、保存设置参数(退出设置状态)后自动将设备重启或执行初始化(以加载新的设置值),然后重回工作状态;也可以是:将对设置参数的检测之步骤纳入工作循环中,每次工作循环都包含一次对设置参数值的检测。在第一种情况,需要有“设置状态”这一工作形态,好在“设置状态”结束时提醒设备重新加载参数值(通过再次执行初始化程序或者通过重新启动);在第二种情况“设置状态”是否要单独成为一种工作形态就不很必要了,鼠标的每个工作周期读都取参数θ并与缓存中正在使用的θ值比较,直到发现改变则直接改变算式所用参数(三角函数)影响接下来的循环,同时当前θ值被存下来以备下一工作周期的比较。
图19以图17为基础简化描述这一改变后的流程,图中最大特征是将读取倾转参数θ的设置值(S502)、θ值判断(S503)、查询对应该θ的三角函数值(S510)等等环节和处理位移数据的工作流程一起,被纳入了一个更大的工作循环(S500)中。此图是一个逻辑简单明了的流程,可以很好的针对θ值动态设置(运行中设置、使用中设置)的情况工作,在实际中还可以将从标志S511所指位置起、至S506和S520前的步骤封装成一个较独立的环节,在判断θ取值有改变时才执行内部步骤并选择随后的工作流程,在θ取值没有变化时直接运行与前一工作周期一样的工作流程,从而节省运算步骤。这 在软件编程中是常见的优化。
关于“小数缓存”,在它初次使用时初始化为0值是合理的。在倾转参数θ动态设置的流程中,θ改变之后“小数缓存”可以以其中θ改变之前的上次循环保存下来的原值参加接下来的循环,也可以初始化为0值再参加接下来的循环,因为其影响能力小于1个点、其影响能力需要有新的余量值加入才有可能输出、其影响能力不能持续超过一个循环周期,所以这两种选择都是可以接受的。
能提供我们方法中需要的倾转参数θ的设备或手段包括:微动开关、拨动开关、旋转式电位器、旋转式电容器、旋转编码器、主机端设置软件以及由用户操作鼠标器测量等等。
动态设置/使用中设置θ值可能出现在这样的情况:以模拟量的电位器等作为连续输入、以旋转编码器的数字量作为连续输入等等。也可以设置三个键进行设置值的连续输入,一个复位键,一个按一下加1度,一个按一下减1度。使用者觉得还有水平误差,就再按需要的加或减方向按一次,不断的尝试直到觉得完美。也可以用两个键——用加和减一起按——作为复位。
假如θ值非动态设置(中断使用过程进行设置),则可能需要有进入和退出“设置状态”的“功能键”来区隔“非设置状态”、“设置状态”、和“设置状态的保存退出”。这里所说“功能键”可能是一个键、或者一个按键组合、或者是一个感应开关、一个主机端的软件开关……等等,一切可以用来开关设置状态的选项。
“动态设置”θ值方便于边使用边调整姿势的寻找最佳角度的过程。“非动态设置”则可节省下软件运算中每个工作周期都检测、判断θ值的步骤,但在运算能力和检测速度都足够的情况下这种节省并不会产生显著的感觉。而对应该θ的计算时所用参数值(三角函数)的获取可以仅在θ有变动的时候进行。
在本说明书中,只涉及我们感兴趣的流程,不是完全的全部的流程罗列。
所介绍的案例方案,也不一定是最优选的案例方案,比如方案二所举例的只含有0°、±30°、90°四个倾转状态,比如方案一所举例的倾转角的最小分辨率是5°,等等,所做案例只为说明方案的可行性,并不形成为对本发明的思想及产品的限制条件。
Claims (10)
1.一种鼠标偏转姿态使用求取正向位移的方法,用于可以响应使用者的输入而偏转角度使用的鼠标,涉及到数据处理单元、平面位移传感器以及由用户输入或用户参与输入的代表补偿角度值的倾转参数θ,其特征在于:所述方法在程序内部或数据处理单元内存中提供有用作“小数缓存”的存储空间,用以缓存一个周期末尾产生的小数余量以及在下一周期被读取,所述方法包含下列步骤:
数据处理单元取得传感器探测到的相对位移值(ΔX,ΔY),以及“小数缓存”中的余量值(Δx′,Δy′);
根据设定的倾转参数θ的值对位移数据进行坐标系变换运算,运算得到一组实数结果;
该实数结果被用于和来自“小数缓存”中的上周期的位移余量值(Δx′,Δy′)对应的带符号相加产生一最终结果;
该最终结果被分为带符号的整数部分和带符号的小数部分,该最终结果的符号和整数部分被赋值给该带符号的整数部分,该最终结果的符号和小数部分被赋值给该带符号的小数部分;
该带符号的整数部分作为用新的虚拟坐标系表示的位移变量(ΔX′,ΔY′)被汇报给下一个环节,该带符号的小数部分作为本周期的余量值(Δx′,Δy′)被用于更新“小数缓存”。
2.根据权利要求1所述的一种鼠标偏转姿态使用求取正向位移的方法,其特征在于:在执行所述步骤之前,先执行对θ代表的角度值的判断,当条件“θ为0度”不成立时才执行权利要求1所述之步骤,当条件“θ为0度”成立时(ΔX,ΔY)直接传递到下一环节。
3.根据权利要求1或2所述的一种鼠标偏转姿态使用求取正向位移的方法,其特征在于:在执行权利要求1所述步骤之前,先执行对θ代表的角度值的判断,当条件“θ为90度的倍数”不成立时才执行权利要求1所述之步骤,当条件“θ为90度的倍数”成立时,设n为整数则分别有:
当θ=(4n+1)*90°,则ΔX′=-ΔY,ΔY′=ΔX;
当θ=(4n+2)*90°,则ΔX′=-ΔX,ΔY′=ΔY;
当θ=(4n+3)*90°,则ΔX′=ΔY,ΔY′=-ΔX;
当θ=(4n+4)*90°,则ΔX′=ΔX,ΔY′=ΔY;
然后将(ΔX′,ΔY′)输出。
4.根据权利要求1或2或3所述的一种鼠标偏转姿态使用求取正向位移的方法,其特征在于:所述“数据处理单元”为鼠标的微控制器单元,相对位移值(ΔX,ΔY)的取得来自于计数从传感器传来的脉冲信号或者读取传感器输出的数字信号。
5.根据权利要求1或2或3所述的一种鼠标偏转姿态使用求取正向位移的方法,其特征在于:所述“数据处理单元”为基于图像获取系统的光学传感器芯片内部的数字信号处理器DSP单元,权利要求1所述之步骤在DSP通过对连续图像的处理获得一组相对位移值(ΔX,ΔY)后随即进行。
6.根据权利要求1或2或3或4或5所述的一种鼠标偏转姿态使用求取正向位移的方法,其特征在于:所述坐标系变换运算,使用下列公式进行:
x′=x×Cosθ-y×Sinθ,y′=x×Sinθ+y×Cosθ。
7.一种使用该“鼠标偏转姿态使用求取正向位移的方法”的鼠标,包括数据处理单元、平面位移传感器,其特征在于:所述鼠标还包括有用于接受用户的设置意愿、向所述数据处理单元传递倾转参数θ的设备,所述数据处理单元内置韧体软件可感知并保持使用者输入所述设备的倾转角参数,并根据该倾转参数θ的值,输出经过倾转角度补偿后的位移值。
8.根据权利要求7所述的一种使用该“鼠标偏转姿态使用求取正向位移的方法”的鼠标,其特征在于:所述传递倾转参数θ的设备为选自微动开关、拨动开关、旋转式电位器、旋转式电容器和旋转编码器构成的组中的一种。
9.根据权利要求7所述的一种使用该“鼠标偏转姿态使用求取正向位移的方法”的鼠标,其特征在于:所述鼠标为触摸鼠标,在其倾转使用并做倾转角度补偿时,其主要触摸操作区域和操作方向也随倾转参数θ的值同步调整,保持与位移坐标系同样的基准方向。
10.根据权利要求7所述的一种使用该“鼠标偏转姿态使用求取正向位移的方法”的鼠标,其特征在于:所述鼠标通过使用CPI值较高的平面位移传感器,并先对高CPI的位移数据进行关于θ的倾转角度补偿计算后,再使用相对较低的CPI将数据输出的方法,来提高其轨迹还原能力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110442888.0A CN102622107B (zh) | 2010-12-27 | 2011-12-27 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010606721.9 | 2010-12-27 | ||
CN201010606721 | 2010-12-27 | ||
CN2010106067219 | 2010-12-27 | ||
CN201110442888.0A CN102622107B (zh) | 2010-12-27 | 2011-12-27 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102622107A true CN102622107A (zh) | 2012-08-01 |
CN102622107B CN102622107B (zh) | 2017-05-17 |
Family
ID=46562059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110442888.0A Active CN102622107B (zh) | 2010-12-27 | 2011-12-27 | 鼠标偏转姿态使用求取正向位移的方法及鼠标 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622107B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221714A (zh) * | 2018-03-01 | 2019-09-10 | 致伸科技股份有限公司 | 鼠标 |
CN112527132A (zh) * | 2020-11-27 | 2021-03-19 | 珠海市智迪科技股份有限公司 | 一种提高鼠标传感器dpi的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050168443A1 (en) * | 2004-01-29 | 2005-08-04 | Ausbeck Paul J.Jr. | Method and apparatus for producing one-dimensional signals with a two-dimensional pointing device |
CN101206536A (zh) * | 2006-12-22 | 2008-06-25 | 财团法人工业技术研究院 | 惯性感测六轴向输入装置及其使用方法 |
CN101226629A (zh) * | 2007-01-17 | 2008-07-23 | 智多微电子(上海)有限公司 | 一种采用小数累加步长计算双线性插值的方法 |
-
2011
- 2011-12-27 CN CN201110442888.0A patent/CN102622107B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050168443A1 (en) * | 2004-01-29 | 2005-08-04 | Ausbeck Paul J.Jr. | Method and apparatus for producing one-dimensional signals with a two-dimensional pointing device |
CN101206536A (zh) * | 2006-12-22 | 2008-06-25 | 财团法人工业技术研究院 | 惯性感测六轴向输入装置及其使用方法 |
CN101226629A (zh) * | 2007-01-17 | 2008-07-23 | 智多微电子(上海)有限公司 | 一种采用小数累加步长计算双线性插值的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221714A (zh) * | 2018-03-01 | 2019-09-10 | 致伸科技股份有限公司 | 鼠标 |
CN112527132A (zh) * | 2020-11-27 | 2021-03-19 | 珠海市智迪科技股份有限公司 | 一种提高鼠标传感器dpi的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102622107B (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8836768B1 (en) | Method and system enabling natural user interface gestures with user wearable glasses | |
US5936612A (en) | Computer input device and method for 3-D direct manipulation of graphic objects | |
CN101430614B (zh) | 平面和空间书写系统及其方法 | |
KR101882410B1 (ko) | 제스처 캘리브레이션 매카니즘을 포함하는 전자 기기 시스템 및 그 동작 방법 | |
US8686943B1 (en) | Two-dimensional method and system enabling three-dimensional user interaction with a device | |
US6965374B2 (en) | Information input method using wearable information input device | |
CN102566896B (zh) | 用于输入时间和日期的系统和方法 | |
US20120192119A1 (en) | Usb hid device abstraction for hdtp user interfaces | |
JP5656514B2 (ja) | 情報処理装置及び方法 | |
CN102984565A (zh) | 具有多输入模式的多维度遥控器及电视输入指令的方法 | |
CN102449590A (zh) | 使用协作输入源和有效动态坐标重映射的双指针管理方法 | |
EP2352112A1 (en) | Remote control system for electronic device and remote control method thereof | |
WO2019102825A1 (ja) | レンダリング装置及びレンダリング方法 | |
TWI696960B (zh) | 基於光標籤的資訊設備交互方法及系統 | |
CN105867803B (zh) | 利用圆环图形界面展示用户选择区间的方法和装置 | |
CN103870066A (zh) | 光学感测装置以及检测光学感测装置周边的对象的方法 | |
CN102622107A (zh) | 鼠标偏转姿态使用求取正向位移的方法及鼠标 | |
WO2000070551A1 (en) | Stylus pen for writing on the monitor | |
CN102411437B (zh) | 对鼠标绕z轴旋转后的倾角进行补偿的方法及设备 | |
US20200285325A1 (en) | Detecting tilt of an input device to identify a plane for cursor movement | |
CN212873572U (zh) | 一种基于互联网的智慧城市管理系统 | |
Li et al. | Hierarchical Pointing on Distant Displays with Smart Devices | |
CN106371736A (zh) | 交互方法、交互设备及操作棒 | |
US20120119986A1 (en) | Three-dimensional control apparatus of computer input device and method thereof | |
CN205910672U (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |