一种空中鼠标及其控制***以及红外线定位方法
技术领域
本发明属于计算机控制技术领域,特别涉及一种通过红外线测向、红外线编码通信实现控制功能的空中鼠标及其控制***以及红外线定位方法。
背景技术
空中鼠标是一种输入设备,像传统鼠标一样操作屏幕光标,但却不需要放在任何平面上,在空中晃动就能直接使用。自由方便是它的特性,例如在办公领域可以当作简报笔,让做PPT演示的人员不再需要坐在会议桌上摆弄电脑,就可以遥控,实现鼠标操作和翻页等功能;在家用娱乐上配合电视或者HTPC在客厅使用,成为“懒人工具”,真所谓“进得书房,下得厅堂”。
根据查新,文献[1](专利申请号:200710151859.2)提出一种取得空中鼠标的位移或坐标信号的方法,其使用倾斜角来计算位置坐标,但没有提及红外线定位及红外线通信;文献[2](专利申请号:200710074836.6)发明了一种无线空中鼠标,使用陀螺仪来检测空中鼠标的位置,但没有提及红外定位和多人同时使用;文献[3](专利申请号:201120171652.3)发明了一种空中鼠标,利用电容式触摸传感器中电容量的变化来确定位置坐标,但没有提及红外线定位及其算法;文献[4](专利申请号:200910110659.1)发明了一种三维空中鼠标,使用了2个陀螺仪和信号处理电路来计算鼠标的三维坐标,没有提及红外线定位和算法。文献[5](专利申请号:201210014659.3)发明了一种空中鼠标控制***及其控制方法,使用触摸感应模块来检测鼠标的位置坐标并通过红外或者无线发射出去,没有提及红外线定位及其算法。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种低成本、高精度、易使用、适合应用于互联网电视,HTPC,机顶盒、一体机的空中鼠标,及其空中鼠标定位更精确的红外线定位方法和可以单人和多人同时使用的使用方法。
技术方案:为解决上述技术问题,本发明提供一种空中鼠标,包括外壳和设置在外壳内部的运算控制器,运算控制器与鼠标用红外线通***、红外线定位接收器、鼠标用红外线发射器和电池连接,所述鼠标用红外线发射器与运算控制器之间设置有鼠标用三极管放大电路,所述电池上设置有保护装置,所述红外线定位接收器由硅光电池组、遮光罩和运算放大电路组成,所述硅光电池组由横向排列的若干个硅光电池以及竖向排列的若干个硅光电池组成。
其中,运算控制器根据红外线定位接收器中竖向排列和横向排列的硅光电池输出电流的差异计算位置的变化量。
进一步的,硅光电池组由横向排列的两个硅光电池以及竖向排列的两个硅光电池组成。
其中,遮光罩上开设有孔,遮光罩为矩形。
进一步的,遮光罩由不透光塑料制成。
进一步的,所述保护装置上设置有电池状态指示灯,所述电池状态指示灯设置为工作状态绿灯,电量不足红灯。
一种如上所述的空中鼠标的控制***,包括一对一控制***和一对多控制***;
所述一对一控制***,包括电脑主机,电脑主机与电脑显示器和空中鼠标控制器连接,所述空中鼠标控制器通过红外线与一个空中鼠标连接;
所述一对多控制***,包括电脑主机,电脑主机与电脑显示器和空中鼠标控制器连接,所述空中鼠标控制器通过红外线与多个空中鼠标连接;
所述空中鼠标控制器由微处理器、控制器用红外线通***和控制器用红外线发射器构成,所述微处理器上设置有USB接口,所述控制器用红外线发射器与控制器用三极管放大电路连接。
一种如上所述的空中鼠标控制***的红外线定位方法,一对一空中鼠标控制***中,首先控制器发射红外基准脉冲,然后空中鼠标辨别并采集该红外基准脉冲,空中鼠标通过运算控制器进行算法处理计算出位置坐标,空中鼠标扫描按键后发射坐标和按键信息,控制器接收发射出的坐标和按键信息数据并判断是否接收成功,如果接收成功则控制器通过USB发送数据给电脑主机,如果没有接收成功则控制器重新发射红外基准脉冲;
一对多空中鼠标控制***中,首先,控制器发射开始脉冲信号,然后控制器发射红外线基准脉冲,多个空中鼠标分别检测是否接收到开始脉冲,如果成功接收开始脉冲则每个空中鼠标对红外基准脉冲进行采集,然后使用运算控制器进行算法处理计算出位置坐标,每个空中鼠标进行扫描按键,控制器发射轮询脉冲信号要求第一个空中鼠标发送坐标和按键信息给控制器,然后控制器在接收到第一个空中鼠标发出的坐标和按键信息数据后继续发射轮询脉冲信号给第二个空中鼠标直到轮询完所有的空中鼠标,并将所有的空中鼠标的坐标和按键信息都采集到控制器上并判断是否成功接收空中鼠标所传递的数据,如果接收到则将数据通过USB将数据传动至电脑主机,如果没有接收到空中鼠标的数据或者已经完成将数据传送至电脑主机则发射下一轮开始脉冲。
其中,红外基准脉冲信号频率为16kHz、占空比1:1、持续发射时间为3ms,
一对一***中通信使用的红外线载波频率为38kHz,10个周期有发射脉冲状态表示比特‘1’,10个周期无发射脉冲状态表示比特‘0’,空中鼠标每次向控制器发送34比特数据,其中包括2个起始比特‘10’、12个比特X坐标、12比特Y坐标和8比特按键信息。
一对多***中通信使用的红外线载波频率为56kHz,6个周期有发射脉冲状态表示比特‘1’,6个周期无发射脉冲状态表示比特‘0’。空中鼠标控制器发射的开始脉冲信号占2个比特,空中鼠标控制器发射的轮询脉冲信号占4个比特。空中鼠标每次向控制器发送28比特数据,其中包括2个起始比特‘10’、2个编号比特、10个比特X坐标、10比特Y坐标和4比特按键信息。
其中,运算控制器进行算法处理的具体步骤如下:
步骤一:采集红外线定位接收器中四块硅光电池的输出电流信号,一块电池对应一个采集通道,共有X1、X2、Y1和Y2这四个通道,每通道采集256点数据,模数转换芯片的位数为12Bits,***采样率为160kHz;
步骤二:按照通道求按通道求取数据的平均值,并将每通道的数据减去该通道的平均值;
步骤三:自适应等比例调整信号的幅度;
步骤四:分别对X1、X2、Y1和Y2这四个通道数据做256点快速傅立叶变换,得到各自的频谱,选取频谱峰值作为该通道的频谱分析结果,分别记为X1max、X2max、Y1max和Y2max;
步骤五:在一对一空中鼠标控制***中坐标的范围是[0,4095],根据公式X=2048+(X1max-X2max)/(X1max+X2max)计算出当前的X坐标,根据公式Y=2048+(Y1max-Y2max)/(Y1max+Y2max)计算出当前的Y坐标;在一对多空中鼠标控制***中坐标范围是[0,1023],根据公式X=512+(X1max-X2max)/(X1max+X2max)计算出当前的X坐标,根据公式Y=512+(Y1max-Y2max)/(Y1max+Y2max)计算出当前的Y坐标,如果计算结果小于0则取0值,如果计算结果大于最大值则取最大值。
进一步的,步骤三中,调整后信号幅度的范围为[-4096,4096]。
与现有技术相比,本发明的优点在于:
本发明采用脉冲发射,是因为红外线发射管的寿命有限,脉冲发射比连续发射可以大大延长其使用寿命。本发明所述的空中鼠标不仅适用于一对一单人使用,也适合于一对多的多人使用环境。其中遮光罩是一块具有矩形开孔的不透光塑料盖子,其作用是随空中鼠标的转向控制一组硅光电池的光照射量。采用频域方法计算交流信号幅度:使用FFT方法将16kHz交流信号的幅度转化到频域的频谱幅度,频谱中16kHz分量的频谱幅度大小就反映了时域交流信号的电压幅度大小。频域方法的优点是(1)硬件电路简单,不需要峰值检测与保持电路;(2)计算精度高;(3)抗波形畸变的能力强,波形的谐波畸变、振铃、脉冲尖刺等基本不影响计算结果。其中每个空中鼠标的按键功能可以自由定义,用户通过修改电脑端驱动程序中的文本文档即可完成自定义,方便用户自行操作和使用。
附图说明
图1为本发明所述空中鼠标控制***的总体框架图
图2为空中鼠标控制器原理框图
图3为空中鼠标的原理图
图4为IAIA算法流程图
图5为一对一空中鼠标控制***的工作流程图
图6为一对多空中鼠标控制***的工作流程图
1、电脑主机,2、电脑显示器,3、空中鼠标控制器,301、微处理器,302、控制器用三极管放大电路,303、控制器用红外线发射器,304、控制器用红外线通***,4、空中鼠标,401、运算控制器,402、运算放大电路,403、鼠标用红外线通***,404、硅光电池组,405、鼠标用红外线发射器,406、鼠标用三极管放大电路,407、电池。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
本发明的具体实现方法如下:空中鼠标控制***中的硬件包括空中鼠标、空中鼠标控制器。空中鼠标供用户手持,可以自由移动位置。空中鼠标控制器固定在显示屏的上方边框的中间位置,位置不可随便移动。空中鼠标与空中鼠标控制器之间没有任何电缆连接,它们之间的通信和定位都是使用波长介于850nm~950nm的红外线。只需要一个空中鼠标控制器,即可以和一个空中鼠标构成一对一空中鼠标***,又可以与多个空中鼠标构成一对多空中鼠标***。一对一***中只能提供一只空中鼠标的坐标与按键信息,适用于单人场合;而一对多***可以同时提供多个空中鼠标的坐标与按键信息,适用于多人场合。
定位方法是红外线空中定位算法(IAIA,Infrared Aerial LocalizationAlgorithm),设备内嵌的32位处理器利用此算法仅需5ms即可算出位置坐标。通信也是采用红外线方式,分为一对一红外通信方法和一对多红外通信方法。一对一***每秒可以提供65帧数据,每帧包括1个空中鼠标的位置和按键信息;一对多***每秒至少提供45帧数据,每帧最多包括4个空中鼠标的位置和按键信息。
空中鼠标包括鼠标用红外线定位接收器、鼠标用红外线通***、鼠标用红外线发射器、运算控制器、按键电路、电池和外壳等。鼠标用红外线通***一旦接收到空中鼠标控制器发送的开始脉冲串信号后,鼠标用红外线定位接收器立即开始接收空中鼠标控制器发出的红外线基准脉冲,运算控制器采样该基准信号,并利用红外定位算法确定空中鼠标相对于空中鼠标控制器的X、Y坐标,按键电路实时检测用户的按键输入,最后红外线发射电路将坐标和按键数据转化成二进制红外线脉冲传送给空中鼠标控制器。
所述鼠标用红外线定位接收器由4片硅光电池、遮光罩和运算放大电路组成。硅光电池是一种光电转换器件,负责将红外线基准信号转换为电信号。4片硅光电池分横竖2组排列、每组2个,横向排列的2个硅光电池用于X坐标的计算,竖向排列的2个硅光电池用于Y坐标的计算。遮光罩是一块具有矩形开孔的不透光塑料盖子,其作用是随空中鼠标的转向控制一组硅光电池的光照射量。以横向排列的X组硅光电池为例,当空中鼠标的受光平面正对空中鼠标控制器时(空中鼠标跟控制器间的连线垂直于硅光电池受光平面)2片硅光电池接收到等量光照,2片硅光电池的输出电流一样大,不妨令此点的X坐标为0;当空中鼠标向左转向时,遮光罩使得左边的硅光电池的受光面积大于左边的硅光电池,左边硅光电池的输出电流大于右边硅光电池,空中鼠标向左转向得越大,2块电池的输出电流差别越大。运算控制器根据此电流之差来计算X坐标的变化量。同理,运算控制器根据竖向排列的Y组硅光电池输出电流的差异来计算Y坐标的变化量。
鼠标用红外线通***和控制器用红外线通***负责接收并解调红外线通信信号,核心器件是红外接收解调模块。当其接收到指定频率范围的红外光脉冲时输出低电平,反之输出高电平。在一对一***中使用38kHz红外线脉冲通信,所以选用38kHz红外接收解调模块。当空中鼠标控制器连续发射4个周期以上的38kHz红外线脉冲时,红外接收解调模块就会输出低电平;当38kHz红外线脉冲不发射时,模块输出高电平。在一对多***中使用56kHz红外接收解调模块。当空中鼠标控制器连续发射4个周期以上的56kHz红外线脉冲时,红外接收解调模块就会输出低电平;当56kHz红外线脉冲不发射时,模块输出高电平。运算控制器通过检测红外接收解调模块输出电平的极性和长度来确定接收到的数据。
鼠标用红外发射电路由红外线发射二极管和鼠标用三极管放大电路组成。当运算控制器输出低电平时三极管导通、红外线发射二极管将电能转化成红外线照射出去;当运算控制器输出高电平时三极管截止、红外线发射二极管不发射红外线。运算控制器通过定时输出高、低电平控制红外线发射二极管发射通信需要的38kHz或56kHz红外脉冲。
运算控制器核心是一块32位的处理器芯片,包括定时器、ADC、运算处理单元等,工作频率72MHz。负责采集红外线接收电路的输出信号,运行IAIA算法计算本空中鼠标的位置坐标;以及控制红外线发射电路将按键信息和计算得到的坐标发送给空中鼠标控制器。
按键电路分为2种:在一对一***中,最多支持8个独立按键,其中4个默认为左选择键、右选择键、返回键和确定键,其它4个按键没有定义,所有8个按键都可以由用户自己定义功能;在一对多***中,最多支持4个独立按键,默认为选择键、右选择键、返回键和确定键,所有4个按键都可由用户自己定义功能。
电池为可充电电池选用锂离子电池,其具有能量密度大、寿命长和重量轻等优点。电池电量至少能够保证空中鼠标正常使用24小时。内嵌电池控制电路板,为电池提供过放保护、过充保护、过流保护、过温保护、输出短路保护和均衡保护等。板上的电池状态指示灯在电池剩余电量大于15%时显示绿色;在电池剩余电量小于或等于15%时显示红色,此时需要给电池充电;当电池出现异常时显示红色并快速闪烁。
空中鼠标控制器包括控制器用红外线发射器、控制器用红外线通***、微处理器和外壳等。其首先通过控制器用红外线发射器向一个或多个空中鼠标发送开始脉冲串信号,随后立即发送红外线基准脉冲。待空中鼠标完成坐标计算,空中鼠标控制器采用轮询的方式要求各空中鼠标发送坐标和按键数据。最后通过USB通信电路将以上数据传送给目标对象,如电脑主机等。
控制器用红外线发射器由红外线发射二极管和控制器用三极管放大电路组成。当微处理器输出低电平时三极管导通、红外线发射二极管将电能转化成红外线照射出去;当微处理器输出高电平时三极管截止、红外线发射二极管不发射红外线。微处理器通过定时输出高、低电平控制红外线发射二极管发射定位需要的16kHz红外脉冲和通信需要的38kHz或56kHz红外脉冲。
鼠标用红外线通***负责接收并解调红外线通信信号,核心器件是红外接收解调模块。当其接收到指定频率范围的红外光脉冲时输出低电平,反之输出高电平。在一对一***中使用38kHz红外线脉冲通信,所以选用38kHz红外接收解调模块。当空中鼠标控制器连续发射4个周期以上的38kHz红外线脉冲时,红外接收解调模块就会输出低电平;当38kHz红外线脉冲不发射时,模块输出高电平。在一对多***中使用56kHz红外接收解调模块。当空中鼠标控制器连续发射4个周期以上的56kHz红外线脉冲时,红外接收解调模块就会输出低电平;当56kHz红外线脉冲不发射时,模块输出高电平。微处理器通过检测红外接收解调模块输出电平的极性和长度来确定接收到的数据。
微处理器是一块32位的处理器芯片,包括定时器、运算处理单元、USB单元等,工作频率72MHz。负责(1)发射开始红外脉冲;(2)发射16kHz红外线基准脉冲信号;(3)发射轮询红外脉冲,处理红外通信接收电路的输出信号得到空中鼠标的坐标和按键信息;(4)通过USB接口将坐标和按键信息传送给用户电脑主机。
微处理器的工作流程:首先控制器控制红外线发射器发射开始脉冲,随后立即发射周期红外脉冲,作为空中鼠标测向的基准信号;待空中鼠标处理完成后依次向各个空中鼠标发射红外轮询信号,要求其传送坐标和按键状态数据,此后微控制器开始监视红外接收电路,接收空中鼠标发出的坐标和按键状态数据;待轮询了所有的空中鼠标后,微处理器将所有的坐标与按键状态数据汇总,按照USB通信协议发送给电脑主机。以后的工作就是不断的重复这个循环。
红外定位的算法称为红外线空中定位算法(IAIA,Infrared AerialLocalization Algorithm),以下简称IAIA算法。其原理是使用快速傅立叶变换(FFT,FastFourier Transformation)估计交流信号频谱。IAIA算法在空中鼠标的微控制器中运行,根据2组硅光电池输出电流的差异计算出空中鼠标相对于空中鼠标控制器的X、Y坐标。
IAIA算法的计算流程如下:(1)同时采集4块硅光电池的输出电流信号,一块电池对应一个采集通道,共有X1、X2、Y1和Y2等4个通道。每通道采集256点数据。模数转换芯片的位数为12Bits。***采样率为160kHz。(2)按通道求取数据的平均值,并将每通道的数据减去该通道的平均值。(3)自适应等比例调整信号的幅度,调整后的范围是[-4096,4096]。(4)分别对X1、X2、Y1和Y2等4个通道数据做256点FFT,得到各自的频谱。选取频谱峰值作为该通道的频谱分析结果,记为X1max、X2max、Y1max和Y2max。(5)在一对一***中坐标的范围是[0,4095],根据公式X=2048+(X1max-X2max)/(X1max+X2max)计算出当前的X坐标,根据公式Y=2048+(Y1max-Y2max)/(Y1max+Y2max)计算出当前的Y坐标;在一对多***中坐标范围是[0,1023],根据公式
X=512+(X1max-X2max)/(X1max+X2max)计算出当前的X坐标,根据公式
Y=512+(Y1max-Y2max)/(Y1max+Y2max)计算出当前的Y坐标。对于以上公式,小于0的结果都取0,大于最大值的结果都取最大值。
自适应等比例调整信号幅度的具体方法为:当空中鼠标跟空中鼠标控制器的距离发生变化时,空中鼠标接收到的光照强度会发生明显变化。为了保证计算的精度不随距离远近发生变化,在FFT之前加入了自适应幅度调节步骤。目的是将不同距离条件下的硅光电池输出信号幅度调整到[-5000,5000]范围内,方法是根据采样到的前20点交流信号值计算出一个有效值E,根据公式K=5000/E算出调整系数K(如果K小于1,则K=1),再将四个通道的数据都乘上调整系数。
述FFT的计算细节为:本***采用的信号采样率为161kHz,约为目标频率的10倍。本***采用的FFT计算点数为256点,约包含25个交流信号周期。在空中鼠标和空中鼠标控制器位置固定的条件下,实测坐标的波动不超过3个像素点。
X、Y坐标计算公式的原理如下:计算公式可以抽象为:坐标值=基准值+频谱峰值的差/频谱峰值的和。基准值指的是空中鼠标正对空中鼠标控制器时的坐标值,确定基准值的原则是鼠标对准用户显示器屏幕中央时的X坐标为最大X坐标的一半、Y坐标也为最大Y坐标的一半。空中鼠标控制器一般摆放在显示器的中上边框上,所以此时的X坐标基准值定为最大X坐标的一半,Y坐标基准值定为最大Y坐标。基准值一旦确定就无需改变。频谱峰值的差反映的是同组2个硅光电池间光照量的绝对差值,即使空中鼠标相对于空中鼠标控制器的方向不变,空中鼠标远离或靠近控制器时2个硅光电池间光照量的绝对差值是随距离变化的。为了克服光照量绝对差值随距离的变化,我们引入相对差值的概念,即把绝对差值除以光照量的和。使用光照量相对差值计算坐标可以使得不同距离、同一方向上求得的X、Y坐标不变。
通信方法分为两种:一对一红外通信方法和一对多红外通信方法等。顾名思义,在一对一***中使用的是一对一红外通信方法,在一对多***中使用一对多红外通信方法。
一对一红外通信方法流程如下:空中鼠标控制器发射固定时长的红外线基准脉冲后,转入等待接收坐标数据状态,在接收完空中鼠标发送的坐标和按键信息后通过USB接口传送给用户电脑主机。空中鼠标一旦检测到16kHz的红外线基准脉冲就立即开始信号采集和坐标计算流程,计算完成后立即发送坐标和按键数据,发送完成后转入等待红外线基准脉冲状态,时刻准备下一轮计算与通信。一对一***中通信使用的红外线载波频率为38kHz,10个周期有发射脉冲状态表示比特’1’,10个周期无发射脉冲状态表示比特’0’。空中鼠标每次向控制器发送34比特数据,其中包括2个起始比特’10’、12个比特X坐标、12比特Y坐标和8比特按键信息。
一对多红外通信方法流程如下:空中鼠标控制器首先发射开始脉冲信号,提示各空中鼠标计算流程开始,接着立即发射固定时长的16kHz红外线基准脉冲。随后定时等待各空中鼠标完成坐标计算,等待过程中通过USB接口向用户电脑主机发送上一轮的坐标与按键数据。定时时间达到设定值以后,控制器发射轮询脉冲信号要求第一个空中鼠标发送坐标与按键信息,在接收到第一个空中鼠标发射的数据后接着轮询第二个空中鼠标直到轮询完所有的空中鼠标。在发射轮询脉冲信号后会进行定时,规定时间内没有收到空中鼠标数据时认为该编号的空中鼠标没有工作,在向电脑主机传送数据时将忽略该编号空中鼠标。如果没有接收到任何空中鼠标发送的数据,控制器认为所有空中鼠标都没有工作,此时不向电脑主机传送任何数据。一对多***中通信使用的红外线载波频率为56kHz。6个周期有发射脉冲状态表示比特’1’,6个周期无发射脉冲状态表示比特’0’。空中鼠标控制器发射的开始脉冲信号占2个比特。空中鼠标控制器发射的轮询脉冲信号占4个比特。空中鼠标每次向控制器发送28比特数据,其中包括2个起始比特’10’、2个编号比特、10个比特X坐标、10比特Y坐标和4比特按键信息。
以上所述仅为本发明的实施例子而已,并不用于限制本发明。凡在本发明的原则之内,所作的等同替换,均应包含在本发明的保护范围之内。本发明未作详细阐述的内容属于本专业领域技术人员公知的已有技术。