張勁波,曾昭江,李杏清,張仁忠
(廣東創(chuàng)新科技職業(yè)學(xué)院,廣東 東莞 523960)
一種新型無線鼠標(biāo)的定位算法研究
張勁波,曾昭江,李杏清,張仁忠
(廣東創(chuàng)新科技職業(yè)學(xué)院,廣東 東莞 523960)
文章論述了光電鼠標(biāo)的組成及工作原理,分析了鼠標(biāo)坐標(biāo)系統(tǒng)與顯示坐標(biāo)系統(tǒng)的映射關(guān)系,提出了在翻頁激光筆上加裝微型攝像頭構(gòu)成一種新型無線鼠標(biāo)的構(gòu)想,對新型無線鼠標(biāo)的組成原理、工作原理進(jìn)行了分析,重點研究了新型無線鼠標(biāo)的定位算法,從而實現(xiàn)無滑動平面的鼠標(biāo)定位。
新型鼠標(biāo);坐標(biāo)變換;定位算法
隨著Windows桌面系統(tǒng)在個人電腦上的普及,圖形用戶界面已成為廣大用戶習(xí)慣的操作方式,因而鼠標(biāo)已成為個人電腦上必不可少的部件。鼠標(biāo)的發(fā)展經(jīng)歷了機(jī)械鼠標(biāo)、光電鼠標(biāo)和無線鼠標(biāo)的過程。機(jī)械鼠標(biāo)由于操作不夠靈敏、使用壽命短的原因,已經(jīng)漸漸被淘汰。隨著工藝的發(fā)展,光電鼠標(biāo)在大幅提高控制精確度的同時,還大大降低了生產(chǎn)成本,所以光電鼠標(biāo)已成為多數(shù)用戶的首選。
隨著鼠標(biāo)在不同場合的使用,人們對鼠標(biāo)功能要求也不斷提高,希望鼠標(biāo)能夠離開其依賴的滑動平面,變?yōu)橄褚话氵b控器一樣的操作方式,又能具備普通鼠標(biāo)的全部功能。本文提出的一種新型鼠標(biāo)可以實現(xiàn)以上要求,主要的難點是如何通過視頻信號定位鼠標(biāo)光標(biāo)的坐標(biāo)值。
一般光電鼠標(biāo)由以下幾部分組成,即光學(xué)感應(yīng)器、光學(xué)透鏡、發(fā)光二極管、控制芯片、按鍵、滾輪、連線、PS/2或USB接口[1]。這些部件的作用各不相同,在控制芯片的控制下相互協(xié)作,以此完成圖像采集、圖像分析和光標(biāo)定位。
3.1 鼠標(biāo)的工作原理
光電鼠標(biāo)的工作原理,主要是通過采集圖像來判斷鼠標(biāo)器的相對位移。光電鼠標(biāo)中的發(fā)光二級管負(fù)責(zé)提供光源,照亮鼠標(biāo)底部的物體表面;光學(xué)透鏡由透鏡和棱光鏡組成,在發(fā)光二級管將鼠標(biāo)底部照亮后,將底部圖像傳送到光學(xué)感應(yīng)器;在光電鼠標(biāo)移動的過程中,光學(xué)感應(yīng)器采集到一組連續(xù)的圖像,再交給圖像處理芯片進(jìn)行分析;圖像處理芯片會抓取每張圖像上的特征點,分析該特征點在每幅圖像中的位置變化,以此判斷出鼠標(biāo)在方向和距離上的變化,從而實現(xiàn)光標(biāo)在圖形用戶界面上的定位。
3.2 鼠標(biāo)坐標(biāo)系與顯示坐標(biāo)系的變換
光電鼠標(biāo)通過將鼠標(biāo)的實際位移映射到圖形用戶界面的坐標(biāo)系統(tǒng),以此實現(xiàn)鼠標(biāo)移動與光標(biāo)移動的變換,它們都采用了平面直角坐標(biāo)系[6]。坐標(biāo)系統(tǒng)會在圖形用戶界面上選擇一個點作為坐標(biāo)的原點,每次測量新位置的相對于原點的偏移量,從而得到新位置在該坐標(biāo)系中的坐標(biāo)值。圖形用戶界面的坐標(biāo)系統(tǒng)是以顯示器的左上角作為原點,橫向從左往右代表X軸,縱向從下往下代表Y軸。該坐標(biāo)系統(tǒng)以像素作為度量單位,比如某圖形用戶界面的分辨率為1 024×768 PPi,即表示該坐標(biāo)的橫向范圍是0~1 023 PPi,縱向范圍是0~767 PPi。而鼠標(biāo)坐標(biāo)系統(tǒng)則以米基為單位。
鼠標(biāo)坐標(biāo)系到顯示坐標(biāo)系需完成3個方面的映射:
(1)原點映射:(x0, y0) = (x0, y0) , 其中x0, y0是屏幕原點坐標(biāo)值,可任意給定。
(2)目標(biāo)點映射:(xi, yi)=(xi-1+△xi,yi-1+△yi)→(xi,yi)= xi-1+△xi, yi-1+△yi(i=1, 2 ……n, 橫向下限≤xi≤橫向上限,縱向下限≤yi≤縱向上限。
(3)基本單位映射:在圖形方式下的米基到像素映射,△xi/x方向比例因子=△xi,△yi/y方向比例因子=△yi(i=1, 2……,n)。
比例因子μ是米基與像素的比值,它決定了鼠標(biāo)的靈敏程度,μ值越大鼠標(biāo)指針移動得越快,反之指針移動得越慢。以個人電腦中的Windows系統(tǒng)為例,可以在控制面板中改變μ的值來調(diào)節(jié)鼠標(biāo)移動的快慢。
由于因為圖像用戶界面的顯示坐標(biāo)有橫向和縱向的界限,在測量鼠標(biāo)的實際位移時會導(dǎo)致能測量的距離有限。如果要實現(xiàn)較大的位移測量,不需要改動硬件和驅(qū)動,只要通過編程消除顯示坐標(biāo)系統(tǒng)的邊界,就可以通過鼠標(biāo)指針移動的像素來計算鼠標(biāo)實際移動的距離。
3.3 位移測量的具體過程
圖形用戶界面將顯示坐標(biāo)分為M×N PPi,如Windows系統(tǒng)中的1 024×768 PPi。鼠標(biāo)位移的X分量表示橫向的位置,Y分量表示縱向的位移,兩者不會相互影響,可以用算法分開處理。位移測量的難點在于如何解決顯示坐標(biāo)的上下界限阻礙鼠標(biāo)不能跨度大距離的問題[8]。首先確定鼠標(biāo)移動的方向,如果向右移動就必定會到達(dá)右邊的邊界,如果向下移動就必定會到達(dá)下邊的邊界。每次到達(dá)右邊界時,將像素xi置零,yi不變;每次到達(dá)下邊界時,將像素yi置零,xi不變。根據(jù)記錄的越過邊界的次數(shù)和當(dāng)前顯示坐標(biāo)(xi, yi)與初始坐標(biāo)(x0,y0) 之差,就可以求出鼠標(biāo)指針移動的像素距離。最后通過比例因子μ將指針位移轉(zhuǎn)換為鼠標(biāo)的實際位移,從而實現(xiàn)鼠標(biāo)的實際測距。
4.1 組成原理
在市場銷售的翻頁激光筆上加裝微型攝像頭,激光點是攝像機(jī)視口的中心點。如圖1所示。圖1中S是垂直平面,ABCD是平面上一投影屏幕,屏幕窗口中的直角坐標(biāo)系原點設(shè)在A點,水平方向為X軸,向右為正;垂直方向為Y軸,向下為正。P點是攝像機(jī)的位置,EFGH是攝像機(jī)視口。NP是屏幕的法線方向,距離為d,MP是視口EFGH的法線方向,距離為dˊ,NP與MP 之間的夾角為α。顯然,視口平面與屏幕平面之間的夾角也為α。
當(dāng)攝像機(jī)視口的面積S視口設(shè)定為大于屏幕窗口的面積S窗口,但小于屏幕窗口的面積S窗口4倍時,即S窗口<S視口<4S窗口,則有如下定理:
定理:當(dāng)激光點M落入屏幕窗口中,由EFGH構(gòu)成的攝像機(jī)視口EF,F(xiàn)G,GH,HE,EG,HF 6條線段中,至少有3條線段將與由ABCD構(gòu)成的屏幕窗口AB,BC,CD,DA 4條線段中的至少兩條線段相交。
圖1 激光筆投影
4.2 工作原理
(1)標(biāo)定。由于工作中P點是可移動的,所以d是一個變量。假設(shè)工作中2 m<d<15 m(符合實際應(yīng)用情況),盡可能選擇d為工作范圍的中點d=8 m,輸入屏幕寬和高的值后,分別測定A,B,C,D 4個角點。
(2)工作時的定位算法。當(dāng)激光點落入屏幕窗口,啟動微型攝像機(jī)采集圖像。根據(jù)以上定理及標(biāo)定值可計算出此時激光點在屏幕窗口坐標(biāo)下的坐標(biāo)值,將此坐標(biāo)值發(fā)送給計算機(jī),計算機(jī)在該點繪出鼠標(biāo)的光標(biāo)圖形。將激光點移動到目標(biāo)點Q(x,y)的過程,攝像機(jī)將按照工作頻率采集多幅圖像重復(fù)上述計算與繪制過程,最終在目標(biāo)點繪出鼠標(biāo)的光標(biāo)圖形。此時按下相應(yīng)的鍵,即可完成鼠標(biāo)的操作。從而實現(xiàn)了無滑動平面的鼠標(biāo)操作功能。
(3)誤差分析。理論上根據(jù)采集圖像計算得出的激光點的坐標(biāo)值,應(yīng)與實際激光點的坐標(biāo)值一致,從而鼠標(biāo)的光標(biāo)圖形將與激光點重疊。但在實際操作中由于各種誤差的存在,鼠標(biāo)的光標(biāo)圖形與激光點并不能完全重疊。其中主要的誤差為:
①實際操作時的距離d與標(biāo)定時選用的距離不同產(chǎn)生的計算誤差;②由于α角的存在,攝像機(jī)視口投影到S平面后產(chǎn)生的位置誤差;③由于手持?jǐn)z像機(jī)造成攝像機(jī)視口難于保持水平,即線段AB與EF之間存在夾角β而產(chǎn)生的誤差。
(4)誤差修正。但是,由于工作過程是一個有人參與的閉環(huán)調(diào)節(jié)系統(tǒng),人的眼睛是系統(tǒng)中檢測傳感器,人的大腦是系統(tǒng)中的調(diào)節(jié)控制器,人的手是系統(tǒng)中執(zhí)行機(jī)構(gòu)。經(jīng)過足夠多次的調(diào)節(jié),理論上鼠標(biāo)的光標(biāo)圖形與激光點必將完全重疊,但實際應(yīng)用中即使鼠標(biāo)的光標(biāo)圖形與激光點還沒有完全重疊,但只要使得鼠標(biāo)的光標(biāo)圖形進(jìn)入目標(biāo)區(qū)域即可完成鼠標(biāo)相應(yīng)的操作。
本文主要介紹了鼠標(biāo)的組成和工作原理,無線鼠標(biāo)如何通過鼠標(biāo)坐標(biāo)系統(tǒng)與顯示坐標(biāo)系統(tǒng)的變換來實現(xiàn)精確的位移測量。在此基礎(chǔ)上提出了一種新型無線鼠標(biāo),研究了新型鼠標(biāo)的組成原理及工作原理,對其定位算法進(jìn)行了深入分析。
研究結(jié)果表明,利用該結(jié)論可以研制一種新型無線鼠標(biāo),可以增加計算機(jī)外圍設(shè)備種類,推動計算機(jī)技術(shù)發(fā)展;可以提高利用投影儀教學(xué)、宣傳等工作的效果;推動投影儀產(chǎn)業(yè)的發(fā)展。
[1]高弘毅.光學(xué)鼠標(biāo)的結(jié)構(gòu)與工作原理[J].電子測試,2003(9):108-113.
[2]蔣海洋,李亮,翟來鵬,等.一種筆形無線鼠標(biāo)的設(shè)計[J].辦公自動化(辦公設(shè)備與耗材),2012(6):27-29.
[3]笑笑.面到點的距離光學(xué)鼠標(biāo)和激光鼠標(biāo)的區(qū)別[J].現(xiàn)代計算機(jī),2007(2):106.
[4]羅軍勇,謝余強(qiáng).鼠標(biāo)驅(qū)動的實現(xiàn)方法[J].信息工程學(xué)院學(xué)報 1998(4):17-20.
[5]陳智博,林永忠,蔡鐘山,等.光電鼠標(biāo)傳感器的精密測量與控制系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):57-59.
[6]林鄧偉,邢文生.光電鼠標(biāo)芯片組在無接觸檢測運(yùn)動物體中的應(yīng)用[J].微計算機(jī)信息,2006(20):131-133.
[7]劉冬冬,姜煒,張?zhí)旌?基于光學(xué)鼠標(biāo)傳感器的轉(zhuǎn)速測量方法研究[J].傳感器與微系統(tǒng),2008(9):21-23.
[8]昌學(xué)年,姚毅,閆玲.位移傳感器的發(fā)展及研究[J].計量與測試技術(shù),2009(9):42-44.
Research on a new localization algorithm for wireless mouse
Zhang Jinbo, Zeng Zhaojiang, Li Xingqing, Zhang Renzhong
(Guangdong Innovation and Technology Career Academy, Dongguan 523960, China)
The composition and working principle of the photoelectric mouse were discussed in this paper, and the mapping relationship between the coordinate system and the coordinate system was analyzed. The installation of a miniature camera constitutes a new type of wireless mouse in laser pointer, working principle, composition principle of new wireless mouse was analyzed in this paper, and focusing on the localization algorithm of wireless mouse model, this paper realizes the positioning of the sliding plane without a mouse.
novel mouse; coordinate transformation; location algorithm
張勁波(1979— ),男,湖北荊州,碩士,講師;研究方向:軟件工程。