本發(fā)明屬于計(jì)算機(jī)控制技術(shù)領(lǐng)域,特別涉及一種通過紅外線測向、紅外線編碼通信實(shí)現(xiàn)控制功能的空中鼠標(biāo)及其控制系統(tǒng)以及紅外線定位方法。
背景技術(shù):
空中鼠標(biāo)是一種輸入設(shè)備,像傳統(tǒng)鼠標(biāo)一樣操作屏幕光標(biāo),但卻不需要放在任何平面上,在空中晃動(dòng)就能直接使用。自由方便是它的特性,例如在辦公領(lǐng)域可以當(dāng)作簡報(bào)筆,讓做PPT演示的人員不再需要坐在會(huì)議桌上擺弄電腦,就可以遙控,實(shí)現(xiàn)鼠標(biāo)操作和翻頁等功能;在家用娛樂上配合電視或者HTPC在客廳使用,成為“懶人工具”,真所謂“進(jìn)得書房,下得廳堂”。
根據(jù)查新,文獻(xiàn)[1](專利申請?zhí)枺?00710151859.2)提出一種取得空中鼠標(biāo)的位移或坐標(biāo)信號的方法,其使用傾斜角來計(jì)算位置坐標(biāo),但沒有提及紅外線定位及紅外線通信;文獻(xiàn)[2](專利申請?zhí)枺?00710074836.6)發(fā)明了一種無線空中鼠標(biāo),使用陀螺儀來檢測空中鼠標(biāo)的位置,但沒有提及紅外定位和多人同時(shí)使用;文獻(xiàn)[3](專利申請?zhí)枺?01120171652.3)發(fā)明了一種空中鼠標(biāo),利用電容式觸摸傳感器中電容量的變化來確定位置坐標(biāo),但沒有提及紅外線定位及其算法;文獻(xiàn)[4](專利申請?zhí)枺?00910110659.1)發(fā)明了一種三維空中鼠標(biāo),使用了2個(gè)陀螺儀和信號處理電路來計(jì)算鼠標(biāo)的三維坐標(biāo),沒有提及紅外線定位和算法。文獻(xiàn)[5](專利申請?zhí)枺?01210014659.3)發(fā)明了一種空中鼠標(biāo)控制系統(tǒng)及其控制方法,使用觸摸感應(yīng)模塊來檢測鼠標(biāo)的位置坐標(biāo)并通過紅外或者無線發(fā)射出去,沒有提及紅外線定位及其算法。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種低成本、高精度、易使用、適合應(yīng)用于互聯(lián)網(wǎng)電視,HTPC,機(jī)頂盒、一體機(jī)的空中鼠標(biāo),及其空中鼠標(biāo)定位更精確的紅外線定位方法和可以單人和多人同時(shí)使用的使用方法。
技術(shù)方案:為解決上述技術(shù)問題,本發(fā)明提供一種空中鼠標(biāo),包括外殼和設(shè)置在外殼內(nèi)部的運(yùn)算控制器,運(yùn)算控制器與鼠標(biāo)用紅外線通信接收器、紅外線定位接收器、鼠標(biāo)用紅外線發(fā)射器和電池連接,所述鼠標(biāo)用紅外線發(fā)射器與運(yùn)算控制器之間設(shè)置有鼠標(biāo)用三極管放大電路,所述電池上設(shè)置有保護(hù)裝置,所述紅外線定位接收器由硅光電池組、遮光罩和運(yùn)算放大電路組成,所述硅光電池組由橫向排列的若干個(gè)硅光電池以及豎向排列的若干個(gè)硅光電池組成。
其中,運(yùn)算控制器根據(jù)紅外線定位接收器中豎向排列和橫向排列的硅光電池輸出電流的差異計(jì)算位置的變化量。
進(jìn)一步的,硅光電池組由橫向排列的兩個(gè)硅光電池以及豎向排列的兩個(gè)硅光電池組成。
其中,遮光罩上開設(shè)有孔,遮光罩為矩形。
進(jìn)一步的,遮光罩由不透光塑料制成。
進(jìn)一步的,所述保護(hù)裝置上設(shè)置有電池狀態(tài)指示燈,所述電池狀態(tài)指示燈設(shè)置為工作狀態(tài)綠燈,電量不足紅燈。
一種如上所述的空中鼠標(biāo)的控制系統(tǒng),包括一對一控制系統(tǒng)和一對多控制系統(tǒng);
所述一對一控制系統(tǒng),包括電腦主機(jī),電腦主機(jī)與電腦顯示器和空中鼠標(biāo)控制器連接,所述空中鼠標(biāo)控制器通過紅外線與一個(gè)空中鼠標(biāo)連接;
所述一對多控制系統(tǒng),包括電腦主機(jī),電腦主機(jī)與電腦顯示器和空中鼠標(biāo)控制器連接,所述空中鼠標(biāo)控制器通過紅外線與多個(gè)空中鼠標(biāo)連接;
所述空中鼠標(biāo)控制器由微處理器、控制器用紅外線通信接收器和控制器用紅外線發(fā)射器構(gòu)成,所述微處理器上設(shè)置有USB接口,所述控制器用紅外線發(fā)射器與控制器用三極管放大電路連接。
一種如上所述的空中鼠標(biāo)控制系統(tǒng)的紅外線定位方法,一對一空中鼠標(biāo)控制系統(tǒng)中,首先控制器發(fā)射紅外基準(zhǔn)脈沖,然后空中鼠標(biāo)辨別并采集該紅外基準(zhǔn)脈沖,空中鼠標(biāo)通過運(yùn)算控制器進(jìn)行算法處理計(jì)算出位置坐標(biāo),空中鼠標(biāo)掃描按鍵后發(fā)射坐標(biāo)和按鍵信息,控制器接收發(fā)射出的坐標(biāo)和按鍵信息數(shù)據(jù)并判斷是否接收成功,如果接收成功則控制器通過USB發(fā)送數(shù)據(jù)給電腦主機(jī),如果沒有接收成功則控制器重新發(fā)射紅外基準(zhǔn)脈沖;
一對多空中鼠標(biāo)控制系統(tǒng)中,首先,控制器發(fā)射開始脈沖信號,然后控制器發(fā)射紅外線基準(zhǔn)脈沖,多個(gè)空中鼠標(biāo)分別檢測是否接收到開始脈沖,如果成功接收開始脈沖則每個(gè)空中鼠標(biāo)對紅外基準(zhǔn)脈沖進(jìn)行采集,然后使用運(yùn)算控制器進(jìn)行算法處理計(jì)算出位置坐標(biāo),每個(gè)空中鼠標(biāo)進(jìn)行掃描按鍵,控制器發(fā)射輪詢脈沖信號要求第一個(gè)空中鼠標(biāo)發(fā)送坐標(biāo)和按鍵信息給控制器,然后控制器在接收到第一個(gè)空中鼠標(biāo)發(fā)出的坐標(biāo)和按鍵信息數(shù)據(jù)后繼續(xù)發(fā)射輪詢脈沖信號給第二個(gè)空中鼠標(biāo)直到輪詢完所有的空中鼠標(biāo),并將所有的空中鼠標(biāo)的坐標(biāo)和按鍵信息都采集到控制器上并判斷是否成功接收空中鼠標(biāo)所傳遞的數(shù)據(jù),如果接收到則將數(shù)據(jù)通過USB將數(shù)據(jù)傳動(dòng)至電腦主機(jī),如果沒有接收到空中鼠標(biāo)的數(shù)據(jù)或者已經(jīng)完成將數(shù)據(jù)傳送至電腦主機(jī)則發(fā)射下一輪開始脈沖。
其中,紅外基準(zhǔn)脈沖信號頻率為16kHz、占空比1:1、持續(xù)發(fā)射時(shí)間為3ms,
一對一系統(tǒng)中通信使用的紅外線載波頻率為38kHz,10個(gè)周期有發(fā)射脈沖狀態(tài)表示比特‘1’,10個(gè)周期無發(fā)射脈沖狀態(tài)表示比特‘0’,空中鼠標(biāo)每次向控制器發(fā)送34比特?cái)?shù)據(jù),其中包括2個(gè)起始比特‘10’、12個(gè)比特X坐標(biāo)、12比特Y坐標(biāo)和8比特按鍵信息。
一對多系統(tǒng)中通信使用的紅外線載波頻率為56kHz,6個(gè)周期有發(fā)射脈沖狀態(tài)表示比特‘1’,6個(gè)周期無發(fā)射脈沖狀態(tài)表示比特‘0’。空中鼠標(biāo)控制器發(fā)射的開始脈沖信號占2個(gè)比特,空中鼠標(biāo)控制器發(fā)射的輪詢脈沖信號占4個(gè)比特??罩惺髽?biāo)每次向控制器發(fā)送28比特?cái)?shù)據(jù),其中包括2個(gè)起始比特‘10’、2個(gè)編號比特、10個(gè)比特X坐標(biāo)、10比特Y坐標(biāo)和4比特按鍵信息。
其中,運(yùn)算控制器進(jìn)行算法處理的具體步驟如下:
步驟一:采集紅外線定位接收器中四塊硅光電池的輸出電流信號,一塊電池對應(yīng)一個(gè)采集通道,共有X1、X2、Y1和Y2這四個(gè)通道,每通道采集256點(diǎn)數(shù)據(jù),模數(shù)轉(zhuǎn)換芯片的位數(shù)為12Bits,系統(tǒng)采樣率為160kHz;
步驟二:按照通道求按通道求取數(shù)據(jù)的平均值,并將每通道的數(shù)據(jù)減去該通道的平均值;
步驟三:自適應(yīng)等比例調(diào)整信號的幅度;
步驟四:分別對X1、X2、Y1和Y2這四個(gè)通道數(shù)據(jù)做256點(diǎn)快速傅立葉變換,得到各自的頻譜,選取頻譜峰值作為該通道的頻譜分析結(jié)果,分別記為X1max、X2max、Y1max和Y2max;
步驟五:在一對一空中鼠標(biāo)控制系統(tǒng)中坐標(biāo)的范圍是[0,4095],根據(jù)公式X=2048+(X1max-X2max)/(X1max+X2max)計(jì)算出當(dāng)前的X坐標(biāo),根據(jù)公式Y(jié)=2048+(Y1max-Y2max)/(Y1max+Y2max)計(jì)算出當(dāng)前的Y坐標(biāo);在一對多空中鼠標(biāo)控制系統(tǒng)中坐標(biāo)范圍是[0,1023],根據(jù)公式X=512+(X1max-X2max)/(X1max+X2max)計(jì)算出當(dāng)前的X坐標(biāo),根據(jù)公式Y(jié)=512+(Y1max-Y2max)/(Y1max+Y2max)計(jì)算出當(dāng)前的Y坐標(biāo),如果計(jì)算結(jié)果小于0則取0值,如果計(jì)算結(jié)果大于最大值則取最大值。
進(jìn)一步的,步驟三中,調(diào)整后信號幅度的范圍為[-4096,4096]。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明采用脈沖發(fā)射,是因?yàn)榧t外線發(fā)射管的壽命有限,脈沖發(fā)射比連續(xù)發(fā)射可以大大延長其使用壽命。本發(fā)明所述的空中鼠標(biāo)不僅適用于一對一單人使用,也適合于一對多的多人使用環(huán)境。其中遮光罩是一塊具有矩形開孔的不透光塑料蓋子,其作用是隨空中鼠標(biāo)的轉(zhuǎn)向控制一組硅光電池的光照射量。采用頻域方法計(jì)算交流信號幅度:使用FFT方法將16kHz交流信號的幅度轉(zhuǎn)化到頻域的頻譜幅度,頻譜中16kHz分量的頻譜幅度大小就反映了時(shí)域交流信號的電壓幅度大小。頻域方法的優(yōu)點(diǎn)是(1)硬件電路簡單,不需要峰值檢測與保持電路;(2)計(jì)算精度高;(3)抗波形畸變的能力強(qiáng),波形的諧波畸變、振鈴、脈沖尖刺等基本不影響計(jì)算結(jié)果。其中每個(gè)空中鼠標(biāo)的按鍵功能可以自由定義,用戶通過修改電腦端驅(qū)動(dòng)程序中的文本文檔即可完成自定義,方便用戶自行操作和使用。
附圖說明
圖1為本發(fā)明所述空中鼠標(biāo)控制系統(tǒng)的總體框架圖
圖2為空中鼠標(biāo)控制器原理框圖
圖3為空中鼠標(biāo)的原理圖
圖4為IAIA算法流程圖
圖5為一對一空中鼠標(biāo)控制系統(tǒng)的工作流程圖
圖6為一對多空中鼠標(biāo)控制系統(tǒng)的工作流程圖
1、電腦主機(jī),2、電腦顯示器,3、空中鼠標(biāo)控制器,301、微處理器,302、控制器用三極管放大電路,303、控制器用紅外線發(fā)射器,304、控制器用紅外線通信接收器,4、空中鼠標(biāo),401、運(yùn)算控制器,402、運(yùn)算放大電路,403、鼠標(biāo)用紅外線通信接收器,404、硅光電池組,405、鼠標(biāo)用紅外線發(fā)射器,406、鼠標(biāo)用三極管放大電路,407、電池。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式,進(jìn)一步闡明本發(fā)明。
本發(fā)明的具體實(shí)現(xiàn)方法如下:空中鼠標(biāo)控制系統(tǒng)中的硬件包括空中鼠標(biāo)、空中鼠標(biāo)控制器。空中鼠標(biāo)供用戶手持,可以自由移動(dòng)位置??罩惺髽?biāo)控制器固定在顯示屏的上方邊框的中間位置,位置不可隨便移動(dòng)??罩惺髽?biāo)與空中鼠標(biāo)控制器之間沒有任何電纜連接,它們之間的通信和定位都是使用波長介于850nm~950nm的紅外線。只需要一個(gè)空中鼠標(biāo)控制器,即可以和一個(gè)空中鼠標(biāo)構(gòu)成一對一空中鼠標(biāo)系統(tǒng),又可以與多個(gè)空中鼠標(biāo)構(gòu)成一對多空中鼠標(biāo)系統(tǒng)。一對一系統(tǒng)中只能提供一只空中鼠標(biāo)的坐標(biāo)與按鍵信息,適用于單人場合;而一對多系統(tǒng)可以同時(shí)提供多個(gè)空中鼠標(biāo)的坐標(biāo)與按鍵信息,適用于多人場合。
定位方法是紅外線空中定位算法(IAIA,Infrared Aerial Localization Algorithm),設(shè)備內(nèi)嵌的32位處理器利用此算法僅需5ms即可算出位置坐標(biāo)。通信也是采用紅外線方式,分為一對一紅外通信方法和一對多紅外通信方法。一對一系統(tǒng)每秒可以提供65幀數(shù)據(jù),每幀包括1個(gè)空中鼠標(biāo)的位置和按鍵信息;一對多系統(tǒng)每秒至少提供45幀數(shù)據(jù),每幀最多包括4個(gè)空中鼠標(biāo)的位置和按鍵信息。
空中鼠標(biāo)包括鼠標(biāo)用紅外線定位接收器、鼠標(biāo)用紅外線通信接收器、鼠標(biāo)用紅外線發(fā)射器、運(yùn)算控制器、按鍵電路、電池和外殼等。鼠標(biāo)用紅外線通信接收器一旦接收到空中鼠標(biāo)控制器發(fā)送的開始脈沖串信號后,鼠標(biāo)用紅外線定位接收器立即開始接收空中鼠標(biāo)控制器發(fā)出的紅外線基準(zhǔn)脈沖,運(yùn)算控制器采樣該基準(zhǔn)信號,并利用紅外定位算法確定空中鼠標(biāo)相對于空中鼠標(biāo)控制器的X、Y坐標(biāo),按鍵電路實(shí)時(shí)檢測用戶的按鍵輸入,最后紅外線發(fā)射電路將坐標(biāo)和按鍵數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制紅外線脈沖傳送給空中鼠標(biāo)控制器。
所述鼠標(biāo)用紅外線定位接收器由4片硅光電池、遮光罩和運(yùn)算放大電路組成。硅光電池是一種光電轉(zhuǎn)換器件,負(fù)責(zé)將紅外線基準(zhǔn)信號轉(zhuǎn)換為電信號。4片硅光電池分橫豎2組排列、每組2個(gè),橫向排列的2個(gè)硅光電池用于X坐標(biāo)的計(jì)算,豎向排列的2個(gè)硅光電池用于Y坐標(biāo)的計(jì)算。遮光罩是一塊具有矩形開孔的不透光塑料蓋子,其作用是隨空中鼠標(biāo)的轉(zhuǎn)向控制一組硅光電池的光照射量。以橫向排列的X組硅光電池為例,當(dāng)空中鼠標(biāo)的受光平面正對空中鼠標(biāo)控制器時(shí)(空中鼠標(biāo)跟控制器間的連線垂直于硅光電池受光平面)2片硅光電池接收到等量光照,2片硅光電池的輸出電流一樣大,不妨令此點(diǎn)的X坐標(biāo)為0;當(dāng)空中鼠標(biāo)向左轉(zhuǎn)向時(shí),遮光罩使得左邊的硅光電池的受光面積大于左邊的硅光電池,左邊硅光電池的輸出電流大于右邊硅光電池,空中鼠標(biāo)向左轉(zhuǎn)向得越大,2塊電池的輸出電流差別越大。運(yùn)算控制器根據(jù)此電流之差來計(jì)算X坐標(biāo)的變化量。同理,運(yùn)算控制器根據(jù)豎向排列的Y組硅光電池輸出電流的差異來計(jì)算Y坐標(biāo)的變化量。
鼠標(biāo)用紅外線通信接收器和控制器用紅外線通信接收器負(fù)責(zé)接收并解調(diào)紅外線通信信號,核心器件是紅外接收解調(diào)模塊。當(dāng)其接收到指定頻率范圍的紅外光脈沖時(shí)輸出低電平,反之輸出高電平。在一對一系統(tǒng)中使用38kHz紅外線脈沖通信,所以選用38kHz紅外接收解調(diào)模塊。當(dāng)空中鼠標(biāo)控制器連續(xù)發(fā)射4個(gè)周期以上的38kHz紅外線脈沖時(shí),紅外接收解調(diào)模塊就會(huì)輸出低電平;當(dāng)38kHz紅外線脈沖不發(fā)射時(shí),模塊輸出高電平。在一對多系統(tǒng)中使用56kHz紅外接收解調(diào)模塊。當(dāng)空中鼠標(biāo)控制器連續(xù)發(fā)射4個(gè)周期以上的56kHz紅外線脈沖時(shí),紅外接收解調(diào)模塊就會(huì)輸出低電平;當(dāng)56kHz紅外線脈沖不發(fā)射時(shí),模塊輸出高電平。運(yùn)算控制器通過檢測紅外接收解調(diào)模塊輸出電平的極性和長度來確定接收到的數(shù)據(jù)。
鼠標(biāo)用紅外發(fā)射電路由紅外線發(fā)射二極管和鼠標(biāo)用三極管放大電路組成。當(dāng)運(yùn)算控制器輸出低電平時(shí)三極管導(dǎo)通、紅外線發(fā)射二極管將電能轉(zhuǎn)化成紅外線照射出去;當(dāng)運(yùn)算控制器輸出高電平時(shí)三極管截止、紅外線發(fā)射二極管不發(fā)射紅外線。運(yùn)算控制器通過定時(shí)輸出高、低電平控制紅外線發(fā)射二極管發(fā)射通信需要的38kHz或56kHz紅外脈沖。
運(yùn)算控制器核心是一塊32位的處理器芯片,包括定時(shí)器、ADC、運(yùn)算處理單元等,工作頻率72MHz。負(fù)責(zé)采集紅外線接收電路的輸出信號,運(yùn)行IAIA算法計(jì)算本空中鼠標(biāo)的位置坐標(biāo);以及控制紅外線發(fā)射電路將按鍵信息和計(jì)算得到的坐標(biāo)發(fā)送給空中鼠標(biāo)控制器。
按鍵電路分為2種:在一對一系統(tǒng)中,最多支持8個(gè)獨(dú)立按鍵,其中4個(gè)默認(rèn)為左選擇鍵、右選擇鍵、返回鍵和確定鍵,其它4個(gè)按鍵沒有定義,所有8個(gè)按鍵都可以由用戶自己定義功能;在一對多系統(tǒng)中,最多支持4個(gè)獨(dú)立按鍵,默認(rèn)為選擇鍵、右選擇鍵、返回鍵和確定鍵,所有4個(gè)按鍵都可由用戶自己定義功能。
電池為可充電電池選用鋰離子電池,其具有能量密度大、壽命長和重量輕等優(yōu)點(diǎn)。電池電量至少能夠保證空中鼠標(biāo)正常使用24小時(shí)。內(nèi)嵌電池控制電路板,為電池提供過放保護(hù)、過充保護(hù)、過流保護(hù)、過溫保護(hù)、輸出短路保護(hù)和均衡保護(hù)等。板上的電池狀態(tài)指示燈在電池剩余電量大于15%時(shí)顯示綠色;在電池剩余電量小于或等于15%時(shí)顯示紅色,此時(shí)需要給電池充電;當(dāng)電池出現(xiàn)異常時(shí)顯示紅色并快速閃爍。
空中鼠標(biāo)控制器包括控制器用紅外線發(fā)射器、控制器用紅外線通信接收器、微處理器和外殼等。其首先通過控制器用紅外線發(fā)射器向一個(gè)或多個(gè)空中鼠標(biāo)發(fā)送開始脈沖串信號,隨后立即發(fā)送紅外線基準(zhǔn)脈沖。待空中鼠標(biāo)完成坐標(biāo)計(jì)算,空中鼠標(biāo)控制器采用輪詢的方式要求各空中鼠標(biāo)發(fā)送坐標(biāo)和按鍵數(shù)據(jù)。最后通過USB通信電路將以上數(shù)據(jù)傳送給目標(biāo)對象,如電腦主機(jī)等。
控制器用紅外線發(fā)射器由紅外線發(fā)射二極管和控制器用三極管放大電路組成。當(dāng)微處理器輸出低電平時(shí)三極管導(dǎo)通、紅外線發(fā)射二極管將電能轉(zhuǎn)化成紅外線照射出去;當(dāng)微處理器輸出高電平時(shí)三極管截止、紅外線發(fā)射二極管不發(fā)射紅外線。微處理器通過定時(shí)輸出高、低電平控制紅外線發(fā)射二極管發(fā)射定位需要的16kHz紅外脈沖和通信需要的38kHz或56kHz紅外脈沖。
鼠標(biāo)用紅外線通信接收器負(fù)責(zé)接收并解調(diào)紅外線通信信號,核心器件是紅外接收解調(diào)模塊。當(dāng)其接收到指定頻率范圍的紅外光脈沖時(shí)輸出低電平,反之輸出高電平。在一對一系統(tǒng)中使用38kHz紅外線脈沖通信,所以選用38kHz紅外接收解調(diào)模塊。當(dāng)空中鼠標(biāo)控制器連續(xù)發(fā)射4個(gè)周期以上的38kHz紅外線脈沖時(shí),紅外接收解調(diào)模塊就會(huì)輸出低電平;當(dāng)38kHz紅外線脈沖不發(fā)射時(shí),模塊輸出高電平。在一對多系統(tǒng)中使用56kHz紅外接收解調(diào)模塊。當(dāng)空中鼠標(biāo)控制器連續(xù)發(fā)射4個(gè)周期以上的56kHz紅外線脈沖時(shí),紅外接收解調(diào)模塊就會(huì)輸出低電平;當(dāng)56kHz紅外線脈沖不發(fā)射時(shí),模塊輸出高電平。微處理器通過檢測紅外接收解調(diào)模塊輸出電平的極性和長度來確定接收到的數(shù)據(jù)。
微處理器是一塊32位的處理器芯片,包括定時(shí)器、運(yùn)算處理單元、USB單元等,工作頻率72MHz。負(fù)責(zé)(1)發(fā)射開始紅外脈沖;(2)發(fā)射16kHz紅外線基準(zhǔn)脈沖信號;(3)發(fā)射輪詢紅外脈沖,處理紅外通信接收電路的輸出信號得到空中鼠標(biāo)的坐標(biāo)和按鍵信息;(4)通過USB接口將坐標(biāo)和按鍵信息傳送給用戶電腦主機(jī)。
微處理器的工作流程:首先控制器控制紅外線發(fā)射器發(fā)射開始脈沖,隨后立即發(fā)射周期紅外脈沖,作為空中鼠標(biāo)測向的基準(zhǔn)信號;待空中鼠標(biāo)處理完成后依次向各個(gè)空中鼠標(biāo)發(fā)射紅外輪詢信號,要求其傳送坐標(biāo)和按鍵狀態(tài)數(shù)據(jù),此后微控制器開始監(jiān)視紅外接收電路,接收空中鼠標(biāo)發(fā)出的坐標(biāo)和按鍵狀態(tài)數(shù)據(jù);待輪詢了所有的空中鼠標(biāo)后,微處理器將所有的坐標(biāo)與按鍵狀態(tài)數(shù)據(jù)匯總,按照USB通信協(xié)議發(fā)送給電腦主機(jī)。以后的工作就是不斷的重復(fù)這個(gè)循環(huán)。
紅外定位的算法稱為紅外線空中定位算法(IAIA,Infrared Aerial Localization Algorithm),以下簡稱IAIA算法。其原理是使用快速傅立葉變換(FFT,F(xiàn)ast Fourier Transformation)估計(jì)交流信號頻譜。IAIA算法在空中鼠標(biāo)的微控制器中運(yùn)行,根據(jù)2組硅光電池輸出電流的差異計(jì)算出空中鼠標(biāo)相對于空中鼠標(biāo)控制器的X、Y坐標(biāo)。
IAIA算法的計(jì)算流程如下:(1)同時(shí)采集4塊硅光電池的輸出電流信號,一塊電池對應(yīng)一個(gè)采集通道,共有X1、X2、Y1和Y2等4個(gè)通道。每通道采集256點(diǎn)數(shù)據(jù)。模數(shù)轉(zhuǎn)換芯片的位數(shù)為12Bits。系統(tǒng)采樣率為160kHz。(2)按通道求取數(shù)據(jù)的平均值,并將每通道的數(shù)據(jù)減去該通道的平均值。(3)自適應(yīng)等比例調(diào)整信號的幅度,調(diào)整后的范圍是[-4096,4096]。(4)分別對X1、X2、Y1和Y2等4個(gè)通道數(shù)據(jù)做256點(diǎn)FFT,得到各自的頻譜。選取頻譜峰值作為該通道的頻譜分析結(jié)果,記為X1max、X2max、Y1max和Y2max。(5)在一對一系統(tǒng)中坐標(biāo)的范圍是[0,4095],根據(jù)公式X=2048+(X1max-X2max)/(X1max+X2max)計(jì)算出當(dāng)前的X坐標(biāo),根據(jù)公式Y(jié)=2048+(Y1max-Y2max)/(Y1max+Y2max)計(jì)算出當(dāng)前的Y坐標(biāo);在一對多系統(tǒng)中坐標(biāo)范圍是[0,1023],根據(jù)公式
X=512+(X1max-X2max)/(X1max+X2max)計(jì)算出當(dāng)前的X坐標(biāo),根據(jù)公式
Y=512+(Y1max-Y2max)/(Y1max+Y2max)計(jì)算出當(dāng)前的Y坐標(biāo)。對于以上公式,小于0的結(jié)果都取0,大于最大值的結(jié)果都取最大值。
自適應(yīng)等比例調(diào)整信號幅度的具體方法為:當(dāng)空中鼠標(biāo)跟空中鼠標(biāo)控制器的距離發(fā)生變化時(shí),空中鼠標(biāo)接收到的光照強(qiáng)度會(huì)發(fā)生明顯變化。為了保證計(jì)算的精度不隨距離遠(yuǎn)近發(fā)生變化,在FFT之前加入了自適應(yīng)幅度調(diào)節(jié)步驟。目的是將不同距離條件下的硅光電池輸出信號幅度調(diào)整到[-5000,5000]范圍內(nèi),方法是根據(jù)采樣到的前20點(diǎn)交流信號值計(jì)算出一個(gè)有效值E,根據(jù)公式K=5000/E算出調(diào)整系數(shù)K(如果K小于1,則K=1),再將四個(gè)通道的數(shù)據(jù)都乘上調(diào)整系數(shù)。
述FFT的計(jì)算細(xì)節(jié)為:本系統(tǒng)采用的信號采樣率為161kHz,約為目標(biāo)頻率的10倍。本系統(tǒng)采用的FFT計(jì)算點(diǎn)數(shù)為256點(diǎn),約包含25個(gè)交流信號周期。在空中鼠標(biāo)和空中鼠標(biāo)控制器位置固定的條件下,實(shí)測坐標(biāo)的波動(dòng)不超過3個(gè)像素點(diǎn)。
X、Y坐標(biāo)計(jì)算公式的原理如下:計(jì)算公式可以抽象為:坐標(biāo)值=基準(zhǔn)值+頻譜峰值的差/頻譜峰值的和?;鶞?zhǔn)值指的是空中鼠標(biāo)正對空中鼠標(biāo)控制器時(shí)的坐標(biāo)值,確定基準(zhǔn)值的原則是鼠標(biāo)對準(zhǔn)用戶顯示器屏幕中央時(shí)的X坐標(biāo)為最大X坐標(biāo)的一半、Y坐標(biāo)也為最大Y坐標(biāo)的一半??罩惺髽?biāo)控制器一般擺放在顯示器的中上邊框上,所以此時(shí)的X坐標(biāo)基準(zhǔn)值定為最大X坐標(biāo)的一半,Y坐標(biāo)基準(zhǔn)值定為最大Y坐標(biāo)?;鶞?zhǔn)值一旦確定就無需改變。頻譜峰值的差反映的是同組2個(gè)硅光電池間光照量的絕對差值,即使空中鼠標(biāo)相對于空中鼠標(biāo)控制器的方向不變,空中鼠標(biāo)遠(yuǎn)離或靠近控制器時(shí)2個(gè)硅光電池間光照量的絕對差值是隨距離變化的。為了克服光照量絕對差值隨距離的變化,我們引入相對差值的概念,即把絕對差值除以光照量的和。使用光照量相對差值計(jì)算坐標(biāo)可以使得不同距離、同一方向上求得的X、Y坐標(biāo)不變。
通信方法分為兩種:一對一紅外通信方法和一對多紅外通信方法等。顧名思義,在一對一系統(tǒng)中使用的是一對一紅外通信方法,在一對多系統(tǒng)中使用一對多紅外通信方法。
一對一紅外通信方法流程如下:空中鼠標(biāo)控制器發(fā)射固定時(shí)長的紅外線基準(zhǔn)脈沖后,轉(zhuǎn)入等待接收坐標(biāo)數(shù)據(jù)狀態(tài),在接收完空中鼠標(biāo)發(fā)送的坐標(biāo)和按鍵信息后通過USB接口傳送給用戶電腦主機(jī)??罩惺髽?biāo)一旦檢測到16kHz的紅外線基準(zhǔn)脈沖就立即開始信號采集和坐標(biāo)計(jì)算流程,計(jì)算完成后立即發(fā)送坐標(biāo)和按鍵數(shù)據(jù),發(fā)送完成后轉(zhuǎn)入等待紅外線基準(zhǔn)脈沖狀態(tài),時(shí)刻準(zhǔn)備下一輪計(jì)算與通信。一對一系統(tǒng)中通信使用的紅外線載波頻率為38kHz,10個(gè)周期有發(fā)射脈沖狀態(tài)表示比特’1’,10個(gè)周期無發(fā)射脈沖狀態(tài)表示比特’0’??罩惺髽?biāo)每次向控制器發(fā)送34比特?cái)?shù)據(jù),其中包括2個(gè)起始比特’10’、12個(gè)比特X坐標(biāo)、12比特Y坐標(biāo)和8比特按鍵信息。
一對多紅外通信方法流程如下:空中鼠標(biāo)控制器首先發(fā)射開始脈沖信號,提示各空中鼠標(biāo)計(jì)算流程開始,接著立即發(fā)射固定時(shí)長的16kHz紅外線基準(zhǔn)脈沖。隨后定時(shí)等待各空中鼠標(biāo)完成坐標(biāo)計(jì)算,等待過程中通過USB接口向用戶電腦主機(jī)發(fā)送上一輪的坐標(biāo)與按鍵數(shù)據(jù)。定時(shí)時(shí)間達(dá)到設(shè)定值以后,控制器發(fā)射輪詢脈沖信號要求第一個(gè)空中鼠標(biāo)發(fā)送坐標(biāo)與按鍵信息,在接收到第一個(gè)空中鼠標(biāo)發(fā)射的數(shù)據(jù)后接著輪詢第二個(gè)空中鼠標(biāo)直到輪詢完所有的空中鼠標(biāo)。在發(fā)射輪詢脈沖信號后會(huì)進(jìn)行定時(shí),規(guī)定時(shí)間內(nèi)沒有收到空中鼠標(biāo)數(shù)據(jù)時(shí)認(rèn)為該編號的空中鼠標(biāo)沒有工作,在向電腦主機(jī)傳送數(shù)據(jù)時(shí)將忽略該編號空中鼠標(biāo)。如果沒有接收到任何空中鼠標(biāo)發(fā)送的數(shù)據(jù),控制器認(rèn)為所有空中鼠標(biāo)都沒有工作,此時(shí)不向電腦主機(jī)傳送任何數(shù)據(jù)。一對多系統(tǒng)中通信使用的紅外線載波頻率為56kHz。6個(gè)周期有發(fā)射脈沖狀態(tài)表示比特’1’,6個(gè)周期無發(fā)射脈沖狀態(tài)表示比特’0’??罩惺髽?biāo)控制器發(fā)射的開始脈沖信號占2個(gè)比特??罩惺髽?biāo)控制器發(fā)射的輪詢脈沖信號占4個(gè)比特??罩惺髽?biāo)每次向控制器發(fā)送28比特?cái)?shù)據(jù),其中包括2個(gè)起始比特’10’、2個(gè)編號比特、10個(gè)比特X坐標(biāo)、10比特Y坐標(biāo)和4比特按鍵信息。
以上所述僅為本發(fā)明的實(shí)施例子而已,并不用于限制本發(fā)明。凡在本發(fā)明的原則之內(nèi),所作的等同替換,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明未作詳細(xì)闡述的內(nèi)容屬于本專業(yè)領(lǐng)域技術(shù)人員公知的已有技術(shù)。