專利名稱:鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法及鼠標(biāo)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可調(diào)整操作姿勢使用的鼠標(biāo),尤其是響應(yīng)使用者輸入的參數(shù)而可以偏轉(zhuǎn)角度使用的鼠標(biāo),尤其是在使用已有的平面位移傳感器的情況下為實現(xiàn)“鼠標(biāo)在非原始正前后左右姿態(tài)正確反映操作者手部正前后左右方向的移動”所使用的解決方法和算法。也即鼠標(biāo)的物理正方向與使用者的正方向不吻合時,鼠標(biāo)通過軟件算法來匹配使用者感覺到的正方向。
背景技術(shù):
鼠標(biāo)是應(yīng)用廣泛的一種重要的計算機輸入裝置,在現(xiàn)有的產(chǎn)品中以平面位移傳感器為主流,平面位移傳感器為核心部件,輔以按鍵開關(guān),在人與圖形界面的人機交互中實現(xiàn)在圖形界面中的定位及點選操作。也有空間/三維傳感器在鼠標(biāo)產(chǎn)品或類鼠標(biāo)產(chǎn)品中應(yīng)用,比如以加速度計通過積分運算得到位移量,或者用陀螺儀以角度變化量來對應(yīng)位移量,或者使用手持?jǐn)z像頭拍攝三維空間中的特征光源來判斷手持?jǐn)z像頭自身的指向方向、角度和距離的變化。但或者因為精度問題,或者因為定位基準(zhǔn)的穩(wěn)定性問題,或者因為計算能力的開銷問題,或者因為應(yīng)用領(lǐng)域與操作方式的問題,或者因為人的體力及生理學(xué)問題,或者因為成本問題,等等,種種三維定位技術(shù)(或者叫“非平面定位技術(shù)”,因為它們雖然通過在三維空間的動作采集信號,但采集的不一定是三個維度的信號)尚未成為主流,而多作為平面位移鼠標(biāo)的附加功能、作為演示指示器、作為電器遙控器、作為游戲控制器出現(xiàn)。穩(wěn)定、快速、精確而成熟的平面位移傳感器仍然是鼠標(biāo)應(yīng)用的主流。也因為我們與機器的交互界面仍然是平面,平面的顯示器、平面的屏幕、在平面的圖形中移動的光標(biāo),所以任何的三維信號源都不得不實現(xiàn)到二維平面的投射,這也是三維傳感器在光標(biāo)控制上優(yōu)勢得不到發(fā)揮的原因?,F(xiàn)狀是三維傳感器被用于“用三維空間的動作,暫時的替代被過分依賴的平面位移傳感器,產(chǎn)生二維的控制信號”,采用它們的目的多是為了暫時的舒適感或短時的自由感。而即使是對我們的雙眼實現(xiàn)了三維效果,我們用真實的三維尺度對應(yīng)三維虛擬空間內(nèi)的操作,懸空操作顯然無法象伏案操作一樣舒適而持久,桌面仍然是不易替代的優(yōu)良辦公資源,平面位移傳感器仍是不易割舍的在人與電子信號間的交互工具。因為被控的對象是一個二維正交矩陣投射出的影像,因為直角坐標(biāo)系在我們的科學(xué)和生活中的重要作用,用作控制器核心的平面位移傳感器的信號采集仍然是以正交的(直角相交的)兩個維度方向為基礎(chǔ)的,包括早期以滾球為基礎(chǔ)的機械鼠標(biāo)、機械光電鼠標(biāo),包括現(xiàn)在以感光元件矩陣為基礎(chǔ)的光學(xué)/非機械鼠標(biāo),莫不如此。為了統(tǒng)一我們控制者的手部運動的正前后左右方向與被控屏幕上光標(biāo)正前后(上下)左右方向運動的對應(yīng),在生產(chǎn)環(huán)節(jié),平面位移傳感器相對于鼠標(biāo)整體的指向就被明確標(biāo)識(如圖I),這不僅意味著所有的關(guān)于該鼠標(biāo)器固體外殼的人體工程學(xué)設(shè)計都要以這個方向為基礎(chǔ)展開,也意味著用戶使用手勢的選擇受到限制,不同的手指長度、不一樣的手掌大小、不一樣的持握習(xí)慣(包括持握鼠標(biāo)時手的松、緊、遠(yuǎn)、近以及左/右手等等情況)都要改變自身來適應(yīng)鼠標(biāo),而鼠標(biāo)是不能改變的。申請?zhí)枮?00910177300. 6的中國專利申請“一種鼠標(biāo)及方法”提出了將平面位移傳感器和鼠標(biāo)器有限分離一兩者保持電路連接但可相對轉(zhuǎn)動一從而人手可以采用與預(yù)置姿勢不同的姿勢或者進(jìn)一步而言人手可以變動操作鼠標(biāo)的姿勢,而此間失去的角度可以通過定位組件的扭轉(zhuǎn)得到補償。這是一個很好的方案,只是可活動的機械結(jié)構(gòu)會使鼠標(biāo)在零件結(jié)構(gòu)上變復(fù)雜。申請?zhí)枮?01010288856. 5的中國專利申請“對鼠標(biāo)繞Z軸旋轉(zhuǎn)后的傾角進(jìn)行補償?shù)姆椒ā碧岢鲇脤﹄娮訑?shù)據(jù)的處理代替物理意義上的定位模塊相對與鼠標(biāo)體的旋轉(zhuǎn),從而省去復(fù)雜的實體機械結(jié)構(gòu),可以提高整體的穩(wěn)定性,也可以降低生產(chǎn)成本。
發(fā)明內(nèi)容
本發(fā)明提供一種適用于處理器運算的方法,以改善對鼠標(biāo)體繞Z軸的旋轉(zhuǎn)進(jìn)行補償計算的過程并降低產(chǎn)生的誤差,使這種虛擬扭轉(zhuǎn)補償方法更具可實施性,用以實現(xiàn)鼠標(biāo)被偏轉(zhuǎn)持握時正確反映人手的移動方向和距離。本發(fā)明主要涉及對位移數(shù)據(jù)按傾轉(zhuǎn)參數(shù)6進(jìn)行坐標(biāo)系變換環(huán)節(jié)的數(shù)據(jù)處理方法,以及使用此方法的鼠標(biāo)。本發(fā)明解決這一問題所采用的方案是鼠標(biāo)的數(shù)據(jù)處理單元在得到平面位移傳感器采集的位移數(shù)據(jù)后,根據(jù)設(shè)定的傾轉(zhuǎn)參數(shù)0的值對位移數(shù)據(jù)進(jìn)行三角運算,運算得到經(jīng)坐標(biāo)系變換的實數(shù)結(jié)果被用于和“小數(shù)緩存”中的上周位移余量值帶符號相加產(chǎn)生一最終結(jié)果,該最終結(jié)果被分為帶符號的整數(shù)部分和帶符號的小數(shù)部分,該最終結(jié)果的符號和整數(shù)部分被賦值給該帶符號的整數(shù)部分,該最終結(jié)果的符號和小數(shù)部分被賦值給該帶符號的小數(shù)部分,該帶符號的整數(shù)部分作為用新的虛擬坐標(biāo)系表示的位移變量被匯報給下一個環(huán)節(jié),該帶符號的小數(shù)部分用于更新“小數(shù)緩存”。如此完成一個工作周期,之后再采集新一周期的位移數(shù)據(jù)并用同樣的流程處理。鼠標(biāo)如此循環(huán),實現(xiàn)將位移傳感器采集的經(jīng)數(shù)據(jù)傾轉(zhuǎn)補償后的輸出。其中,“小數(shù)緩存”是開辟在程序內(nèi)部的或者是開辟在處理器物理內(nèi)存中的存儲空間,用于存儲當(dāng)周位移換算最終結(jié)果的小數(shù)部分并在下個周期被讀取。簡而言之用匯報整數(shù)、累積小數(shù)的方法消除換算誤差的影響,小數(shù)與下次的換算結(jié)果帶符號相加,再匯報整數(shù)、累積新的小數(shù)。這小數(shù)部分可能在此過程中產(chǎn)生向整數(shù)的進(jìn)位或借位,從而可把累積到的、單次小于I的影響反饋到整數(shù)中輸出出去,使手控鼠標(biāo)的實際位移與對應(yīng)的電子信號計數(shù)反映的位移間的誤差,在一次由起到止的完整操作中誤差不會超過一個點,這小于一個點的誤差始終在觀察的終點,但在接下來的操作中又會被糾正,而在另外的終點累積一個仍然可被消除的新值。使用此方法,鼠標(biāo)用小于I點的精度才能反映的真實位置,被延時到“下一次”數(shù)據(jù)采集到后才輸出,所以可以說它延后輸出了真實位置,而不是每次都輸出一個經(jīng)過裁剪的有誤差的值。這里所說的I點,是相對于已有的系統(tǒng)中的、將要被本發(fā)明所說的方法處理的數(shù)據(jù)的單位,它可以是光學(xué)位移傳感器中可感受到的最小像素點,或者機械鼠標(biāo)的光電傳感器探測的柵輪的齒間距代表的最小可分辨距離單元,也可以是調(diào)整輸出后用于驅(qū)動顯示器
上一個像素位移的最小單位(比如最高分辨率可達(dá)到1600cpi-counts per inch-
的光學(xué)鼠標(biāo)被調(diào)整到SOOcpi使用,顯示器上的點要比傳感器可感受到的最小點大),這取決于使用本發(fā)明方法的位置?;诠鈱W(xué)導(dǎo)航技術(shù)的鼠標(biāo)光學(xué)引擎芯片靠數(shù)字化并計算(對比)連續(xù)取得的被測表面光學(xué)圖像(幀)的變化來確定移動的方向和位置的變化幅度,一個典型的光學(xué)引擎芯片一般包含一個圖像獲取系統(tǒng)(Image AcquisitionSystem, IAS),—個數(shù)字信號處理器(Digital Signal Processor, DSP),一個串行口(通常是四線串行口,SPI標(biāo)準(zhǔn),串行外圍設(shè)備接口,SerialPeripheral interface)。IAS藉由透鏡和照明系統(tǒng)獲取微觀表面圖像,這些圖像經(jīng)由DSP處理來確定移動的方向和距離,該DSP生成相對位移值A(chǔ)X和A Y。一個外部的微控制器(microcontroller)通過該串行口讀取該AX和AY的信息,然后將之與其他數(shù)據(jù)組合包裝為PS/2標(biāo)準(zhǔn)或USB標(biāo)準(zhǔn)的鼠標(biāo)信號,之后再通過PS/2接口或USB接口向主機輸出。實際上微控制器單元要處理更多的設(shè)備和更多的數(shù)據(jù),包括按鍵、滾輪以及可能會存在的自定義按鍵功能的“編程操作”等等。一些集成度高的芯片用單顆芯片集成盡量多的模塊來簡化整個產(chǎn)品的結(jié)構(gòu),比如Avago安華高公司的小型光學(xué)鼠標(biāo)傳感器ADNS-2700將光學(xué)傳感器、微控制器等等都集中在一顆芯片內(nèi)部形成SoC (System on Chip)片上系統(tǒng),內(nèi)部包括IAS、DSP、USB接口電路、晶振、負(fù)載電阻、一次性編程內(nèi)存……所以,數(shù)據(jù)被處理的位置不限于它看起來像是在哪個模塊中被處理的,。因為光學(xué)位移傳感器芯片自帶DSP芯片是有很強處理能力的,再加上負(fù)責(zé)控制和1/0處理的微控制器單元也有數(shù)據(jù)處理能力,所以本發(fā)明方法中所言“數(shù)據(jù)處理單元”可能為二者中任何一個,本發(fā)明所說的方法可在二者之任何一個進(jìn)行。雖然微控制器單元和光學(xué)位移傳感器芯片分開為兩個芯片時可以很容易區(qū)分?jǐn)?shù)據(jù)是在哪里處理的,卻不能因為它們在一個高度集成的SoC芯片內(nèi)時而認(rèn)為這里只有一個處理器?;跐L球、光柵輪和光電傳感器的機械鼠標(biāo)中,微處理器統(tǒng)計來自兩組傳感器的脈沖信息生成代表在互相垂直的X軸方向和Y軸方向發(fā)生的相對位移值A(chǔ)X和A Y,然后將位移數(shù)據(jù)和按鍵、滾輪來的信息一起,封包成PS/2格式或USB格式數(shù)據(jù),用于向主機輸出。本發(fā)明所說的方法可在數(shù)據(jù)被封包前執(zhí)行,封包時使用經(jīng)過處理的整數(shù)部分,小數(shù)部分被保存用于下一次位移數(shù)據(jù)到來時沖抵誤差,從而使一個被傾斜放置而被正向移動的鼠標(biāo)可以反映它的正向移動軌跡,從而可以正??刂乒鈽?biāo)而不會出現(xiàn)失真。下面分析一下鼠標(biāo)技術(shù)的基礎(chǔ)最早的、標(biāo)準(zhǔn)的PS/2鼠標(biāo)支持下面的輸入X(左右)位移,Y(上下)位移,左鍵,中鍵,右鍵。鼠標(biāo)以固定的頻率讀取這些輸入并更新不同的計數(shù)器然后標(biāo)記出它們反映的移動和按鍵狀態(tài)。這些狀態(tài)一起以三字節(jié)鼠標(biāo)數(shù)據(jù)包的形式發(fā)給主機,主機接收到數(shù)據(jù)后操作系統(tǒng)解析該數(shù)據(jù)包來移動鼠標(biāo)指針和改變按鍵狀態(tài),例如單擊,右鍵菜單等。因為標(biāo)準(zhǔn)的PS/2鼠標(biāo)通訊協(xié)議只定義了 X、Y位移和左中右三鍵的狀態(tài),而流行的鼠標(biāo)多附帶了滾輪,一些種類鼠標(biāo)按鍵數(shù)目也多于3個,增加的狀態(tài)數(shù)據(jù)需要擴充PS/2鼠標(biāo)通訊協(xié)議才能實現(xiàn)傳輸,就是改變位移數(shù)據(jù)包的標(biāo)準(zhǔn)格式。以Microsoft的Intellimouse鼠標(biāo)為例,它使用擴展到四字節(jié)的位移數(shù)據(jù)包,它的數(shù)據(jù)包格式如下表格I
權(quán)利要求
1.一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,用于可以響應(yīng)使用者的輸入而偏轉(zhuǎn)角度使用的鼠標(biāo),涉及到數(shù)據(jù)處理單元、平面位移傳感器以及由用戶輸入或用戶參與輸入的代表補償角度值的傾轉(zhuǎn)參數(shù)0,其特征在于所述方法在程序內(nèi)部或數(shù)據(jù)處理單元內(nèi)存中提供有用作“小數(shù)緩存”的存儲空間,用以緩存一個周期末尾產(chǎn)生的小數(shù)余量以及在下一周期被讀取,所述方法包含下列步驟 數(shù)據(jù)處理單元取得傳感器探測到的相對位移值(AX,AY),以及“小數(shù)緩存”中的余量值(Ax',Ay'); 根據(jù)設(shè)定的傾轉(zhuǎn)參數(shù)9的值對位移數(shù)據(jù)進(jìn)行坐標(biāo)系變換運算,運算得到一組實數(shù)結(jié)果; 該實數(shù)結(jié)果被用于和來自“小數(shù)緩存” 中的上周期的位移余量值(Ax',Ay')對應(yīng)的帶符號相加產(chǎn)生一最終結(jié)果; 該最終結(jié)果被分為帶符號的整數(shù)部分和帶符號的小數(shù)部分,該最終結(jié)果的符號和整數(shù)部分被賦值給該帶符號的整數(shù)部分,該最終結(jié)果的符號和小數(shù)部分被賦值給該帶符號的小數(shù)部分; 該帶符號的整數(shù)部分作為用新的虛擬坐標(biāo)系表示的位移變量(AX',AY')被匯報給下一個環(huán)節(jié),該帶符號的小數(shù)部分作為本周期的余量值(Ax',Ay')被用于更新“小數(shù)緩存”。
2.根據(jù)權(quán)利要求I所述的一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,其特征在于在執(zhí)行所述步驟之前,先執(zhí)行對e代表的角度值的判斷,當(dāng)條件“ e為O度”不成立時才執(zhí)行權(quán)利要求I所述之步驟,當(dāng)條件“ e為O度”成立時(AX,AY)直接傳遞到下一環(huán)節(jié)。
3.根據(jù)權(quán)利要求I或2所述的一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,其特征在于在執(zhí)行權(quán)利要求I所述步驟之前,先執(zhí)行對0代表的角度值的判斷,當(dāng)條件“ 0為90度的倍數(shù)”不成立時才執(zhí)行權(quán)利要求I所述之步驟,當(dāng)條件“ e為90度的倍數(shù)”成立時,設(shè)n為整數(shù)則分別有 當(dāng) 0 = (4n+l)*90。,貝IJ AX' =-AY,AY' = AX; 當(dāng) 0 = (4n+2)*90。,貝IJ AX' = -AX, AYf = AY; 當(dāng) 0 = (4n+3)*90。,貝IJ AX' = AY, AY' = -AX ; 當(dāng) 0 = (4n+4)*90。,貝IJ AX' = AX,AY' = AY; 然后將(AX',AY')輸出。
4.根據(jù)權(quán)利要求I或2或3所述的一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,其特征在于所述“數(shù)據(jù)處理單元”為鼠標(biāo)的微控制器單元,相對位移值(AX,AY)的取得來自于計數(shù)從傳感器傳來的脈沖信號或者讀取傳感器輸出的數(shù)字信號。
5.根據(jù)權(quán)利要求I或2或3所述的一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,其特征在于所述“數(shù)據(jù)處理單元”為基于圖像獲取系統(tǒng)的光學(xué)傳感器芯片內(nèi)部的數(shù)字信號處理器DSP單元,權(quán)利要求I所述之步驟在DSP通過對連續(xù)圖像的處理獲得一組相對位移值(AX,AY)后隨即進(jìn)行。
6.根據(jù)權(quán)利要求I或2或3或4或5所述的一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,其特征在于所述坐標(biāo)系變換運算,使用下列公式進(jìn)行X1 = XXCos 9 -yXSin ^ , J1 = xXSin 9 +yXCos 9。
7.一種使用該“鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法”的鼠標(biāo),包括數(shù)據(jù)處理單元、 平面位移傳感器,其特征在于所述鼠標(biāo)還包括有用于接受用戶的設(shè)置意愿、向所述數(shù)據(jù)處理單元傳遞傾轉(zhuǎn)參數(shù)Θ的設(shè)備,所述數(shù)據(jù)處理單元內(nèi)置韌體軟件可感知并保持使用者輸入所述設(shè)備的傾轉(zhuǎn)角參數(shù),并根據(jù)該傾轉(zhuǎn)參數(shù)Θ的值,輸出經(jīng)過傾轉(zhuǎn)角度補償后的位移值。
8.根據(jù)權(quán)利要求7所述的一種使用該“鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法”的鼠標(biāo),其特征在于所述傳遞傾轉(zhuǎn)參數(shù)Θ的設(shè)備為選自微動開關(guān)、撥動開關(guān)、旋轉(zhuǎn)式電位器、 旋轉(zhuǎn)式電容器和旋轉(zhuǎn)編碼器構(gòu)成的組中的一種。
9.根據(jù)權(quán)利要求7所述的一種使用該“鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法”的鼠標(biāo),其特征在于所述鼠標(biāo)為觸摸鼠標(biāo),在其傾轉(zhuǎn)使用并做傾轉(zhuǎn)角度補償時,其主要觸摸操作區(qū)域和操作方向也隨傾轉(zhuǎn)參數(shù)Θ的值同步調(diào)整,保持與位移坐標(biāo)系同樣的基準(zhǔn)方向。
10.根據(jù)權(quán)利要求7所述的一種使用該“鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法”的鼠標(biāo),其特征在于所述鼠標(biāo)通過使用CPI值較高的平面位移傳感器,并先對高CPI的位移數(shù)據(jù)進(jìn)行關(guān)于Θ的傾轉(zhuǎn)角度補償計算后,再使用相對較低的CPI將數(shù)據(jù)輸出的方法,來提高其軌跡還原能力。
全文摘要
一種鼠標(biāo)偏轉(zhuǎn)姿態(tài)使用求取正向位移的方法,涉及一種可響應(yīng)使用者的輸入而偏轉(zhuǎn)角度使用的鼠標(biāo),其特征在于所述鼠標(biāo)的數(shù)據(jù)處理單元可根據(jù)設(shè)定的傾轉(zhuǎn)參數(shù)θ的值對其獲得的位移數(shù)據(jù)進(jìn)行坐標(biāo)系變換運算,運算結(jié)果與上周期緩存下的小數(shù)余量相加,所得最終結(jié)果被分為帶符號的整數(shù)和小數(shù)兩部分,這兩部分的符號均來自于所述最終結(jié)果的符號,它們的值分別來自于所述最終結(jié)果的整數(shù)部分和小數(shù)部分,該帶符號的整數(shù)部分作為用新的虛擬坐標(biāo)系表示的位移變量匯報給下一環(huán)節(jié),該帶符號的小數(shù)部分作為本周期的余量值緩存到下一周期。通過這樣的工作方式,可以在鼠標(biāo)的物理正方向與使用者的正方向不吻合時,通過鼠標(biāo)內(nèi)部的軟件算法來匹配使用者感覺到的正方向。
文檔編號G06F3/033GK102622107SQ201110442888
公開日2012年8月1日 申請日期2011年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者申金坡 申請人:申金坡