0 引言
位移傳感器把外界物體的位移信號(hào)轉(zhuǎn)化為電學(xué)量,從而實(shí)現(xiàn)對(duì)位移量的檢測(cè),,在實(shí)際工程應(yīng)用中有著非常重要的作用,其好壞往往影響著整個(gè)系統(tǒng)的性能,。位移檢測(cè)技術(shù)經(jīng)過(guò)多年發(fā)展已經(jīng)相當(dāng)成熟,,各種位移傳感器紛紛出現(xiàn),但低成本的位移傳感器結(jié)構(gòu)簡(jiǎn)單,,精確度不高,,線性度低,而高成本的位移傳感器雖然性能優(yōu)異,,但制作工藝難度大,,難以普及。所以開(kāi)發(fā)一款低成本,、高性能的位移傳感器具有很高的現(xiàn)實(shí)意義,。鑒于此,本文提出了通過(guò)LabVIEW 編程實(shí)現(xiàn)精確度高,、線性度好、測(cè)量范圍大,、無(wú)需其余硬件設(shè)備的鼠標(biāo)位移測(cè)量方法,。
1 鼠標(biāo)的工作原理及位移測(cè)量的實(shí)現(xiàn)方法
1.1 鼠標(biāo)的工作原理與驅(qū)動(dòng)程序
鼠標(biāo)(mouse) 在現(xiàn)代個(gè)人電腦( PC)中被廣泛應(yīng)用,特別是圖形用戶(hù)界面(GUI)的流行,,鼠標(biāo)已經(jīng)不可或缺,。大規(guī)模的生產(chǎn)使鼠標(biāo)的價(jià)格很低,通過(guò)利用鼠標(biāo)來(lái)測(cè)位移也使成本趨于合理,。經(jīng)過(guò)數(shù)十年的技術(shù)發(fā)展,,尤其是光電鼠標(biāo)與激光鼠標(biāo)的出現(xiàn),,其精度得到極大提高。利用鼠標(biāo)進(jìn)行位移測(cè)定,,具有高精度,、低成本的優(yōu)點(diǎn)。鼠標(biāo)雖然實(shí)際上是位移傳感器,,但其是為PC 機(jī)配備的外部輸入設(shè)備,,各種操作系統(tǒng)自帶的鼠標(biāo)驅(qū)動(dòng)程序只是為了提供圖形用戶(hù)界面操作,無(wú)法滿(mǎn)足普遍的位移測(cè)量要求,。
鼠標(biāo)全稱(chēng)顯示系統(tǒng)縱橫位置指示器,。光電鼠和機(jī)械鼠的最大區(qū)別是對(duì)軌跡的檢測(cè)方法,但其工作原理基本相同: 通過(guò)光柵信號(hào)傳感器或光電傳感器將位移轉(zhuǎn)換為電脈沖信號(hào),,然后通過(guò)芯片將信號(hào)處理為數(shù)據(jù)包傳遞給PC 機(jī),。目前利用鼠標(biāo)實(shí)現(xiàn)位移測(cè)量的方法主要是利用單片機(jī)實(shí)現(xiàn)信號(hào)處理,實(shí)現(xiàn)位移檢測(cè)功能,,但此方法穩(wěn)定性差,,噪聲較大,需要額外硬件系統(tǒng),,性?xún)r(jià)比低,。在操作系統(tǒng)已經(jīng)盡可能挖掘了底層硬件數(shù)據(jù)通信能力的情況下,重新對(duì)底層硬件通信浪費(fèi)資源,。實(shí)際上,,鼠標(biāo)提供GUI 操作,通過(guò)鼠標(biāo)移動(dòng)控制顯示設(shè)備上鼠標(biāo)指針的像素移動(dòng),。反之,,可以利用指針運(yùn)動(dòng)的位移來(lái)確定實(shí)際鼠標(biāo)的位移。
1.2 鼠標(biāo)坐標(biāo)系統(tǒng)與顯示坐標(biāo)系統(tǒng)的關(guān)系
鼠標(biāo)坐標(biāo)系統(tǒng)( 即實(shí)際位移) 與顯示坐標(biāo)系統(tǒng)通過(guò)映射來(lái)完成對(duì)應(yīng)關(guān)系,,二者坐標(biāo)均使用平面直角坐標(biāo)系,。鼠標(biāo)坐標(biāo)系統(tǒng)在平面上任意取一點(diǎn)作為原點(diǎn),以相對(duì)原點(diǎn)的偏移量計(jì)算目標(biāo)點(diǎn)的坐標(biāo)值,,然后以相對(duì)該目標(biāo)點(diǎn)的偏移量計(jì)算下一新目標(biāo)點(diǎn)的坐標(biāo)值,,以此類(lèi)推。鼠標(biāo)坐標(biāo)系統(tǒng)中基本單位為米基,。顯示坐標(biāo)系統(tǒng)同顯示器的實(shí)際分辨率及工作方式有關(guān),。使用平面直角坐標(biāo)系,原點(diǎn)在屏幕的左上方,,橫向代表X 方向,,縱向代表Y 方向。圖形方式下的橫向、縱向的象素為基本單位進(jìn)行衡量,。例如,,1024×768 分辨率時(shí),顯示坐標(biāo)的橫向和縱向坐標(biāo)范圍為0~ 1023,,0~ 767,。
鼠標(biāo)坐標(biāo)系到顯示坐標(biāo)系完成三個(gè)方面的映射:(1) 原點(diǎn)映射:( x 0 , y 0 ) = ( X 0,, Y0 ) ,, 其中X 0 , Y0 ( 為屏幕原點(diǎn)坐標(biāo))值可任意給定:( 2) 目標(biāo)點(diǎn)映射:( x i ,, y i ) = ( x i- 1 +△x i ,, y i- 1 + △yi ) →(X i , Yi ) = X i- 1 + △X i ,, Yi- 1 + △Yi ( i =1,, 2 ……, n,, 橫向下界≤ X i ≤ 橫向上界,,縱向下界≤Yi ≤縱向上界; ( 3) 基本單位映射: 在圖形方式下( 米基到象素映射) ,,△x i / x 方向比例因子= △X i ,, △yi / y 方向比例因子= △Yi ( i =1, 2……,,n),。改變米基到象素的比例因子μ 影響鼠標(biāo)靈敏度,μ 值決定著指針的移動(dòng)速度,,可以在PC 機(jī)w indow s 操作系統(tǒng)中的控制面板設(shè)置,。因此無(wú)須改變鼠標(biāo)底層的硬件驅(qū)動(dòng),實(shí)際鼠標(biāo)的位移可以通過(guò)象素坐標(biāo)來(lái)確定,。但實(shí)際的顯示坐標(biāo)均有邊界限制,,不能滿(mǎn)足大范圍的位移測(cè)量。通過(guò)LabVIEW編程消除顯示坐標(biāo)系象素X i 與Yi 的上下界限制,,通過(guò)測(cè)量指針移動(dòng)的象素來(lái)精確檢測(cè)鼠標(biāo)的位移量,。
1. 3 位移測(cè)量的LabVIEW 實(shí)現(xiàn)方法
通過(guò)庫(kù)函數(shù)節(jié)點(diǎn)( CLF) 來(lái)訪問(wèn)動(dòng)態(tài)鏈接庫(kù)( DLL) 的方法,直接調(diào)用WINDOWS API 函數(shù)與LabVIEW 自行編制的庫(kù)函數(shù),,使得LabVIEW 對(duì)鼠標(biāo)的通信得到大大的增強(qiáng),,同時(shí)也為操作系統(tǒng)底層函數(shù)支持LabVIEW 提供了便捷,節(jié)省了內(nèi)存空間,。與鼠標(biāo)相關(guān)的動(dòng)態(tài)鏈接庫(kù)函數(shù)如表1 所示,二者庫(kù)函數(shù)有部分相同的功能。
表1 鼠標(biāo)驅(qū)動(dòng)程序接口函數(shù)
通過(guò)調(diào)用以上函數(shù)實(shí)現(xiàn)鼠標(biāo)的位移測(cè)量,。具體方法為: 在顯示坐標(biāo)系內(nèi),,坐標(biāo)范圍分成M × N 象素。位移的X ,、Y 分量二者互不影響,,編程時(shí)可以分別處理。方法實(shí)現(xiàn)的重點(diǎn)是消除操作系統(tǒng)固有的顯示坐標(biāo)系象素X i 與Yi 的上下界限制,。首先要判斷鼠標(biāo)的運(yùn)動(dòng)方向,,若鼠標(biāo)向左移動(dòng),則其必然到達(dá)坐標(biāo)系右邊界,。這時(shí)通過(guò)函數(shù)使象素X i 置零,,Yi 不變,同時(shí)記錄一次其過(guò)邊界,。通過(guò)顯示坐標(biāo)( X i ,, Yi ) 與初始坐標(biāo)( X 0 ,Y0 ) 之差與過(guò)邊界次數(shù)即可求出在顯示坐標(biāo)中鼠標(biāo)指針的位移,。其他運(yùn)動(dòng)方向的位移同理可以得到,。最后通過(guò)比例因子μ將顯示坐標(biāo)映射到鼠標(biāo)坐標(biāo)系中,即可求出實(shí)際位移( x i ,,yi ) ,。詳細(xì)的程序流程圖如圖1 所示。
圖1 鼠標(biāo)位移測(cè)量程序流程圖
LabVIEW 具有代碼直觀,、層次清晰的圖形化編程特點(diǎn),。在前面板上設(shè)置顯示坐標(biāo)為M×N = 500 × 300 的指針工作區(qū)域,并設(shè)置初始坐標(biāo)在工作區(qū)的中心( 250,, 150) .X 方向右位移消除邊界的部分程序框圖如圖2 所示,,條件語(yǔ)句判斷當(dāng)指針到達(dá)右邊界( 499, Yi ) 時(shí),,下一次循環(huán)將其設(shè)為( 0,, Yi ) ,并將以后的位移增加1 倍M.循環(huán)體內(nèi)使用了移位寄存器,。
圖2 部分消除邊界的LabVIEW 程序框圖
2 檢測(cè)實(shí)驗(yàn)與性能分析
檢測(cè)實(shí)驗(yàn)采用USB 接口的dell 三鍵光電有線鼠標(biāo),,最高分辨率400dpi.分別測(cè)試了鼠標(biāo)在指針最小與最大移動(dòng)速度( 控制面板中設(shè)置) 中以4mm/ s 與20mm/ s 的速度進(jìn)行位移測(cè)量性能。采用步進(jìn)電機(jī)與控制器對(duì)其進(jìn)行位移標(biāo)定,,位移精確度為0.01mm.得到如圖3 所示位移圖像,。
由于步進(jìn)電機(jī)顯示位移與鼠標(biāo)實(shí)際檢測(cè)的位移具有統(tǒng)計(jì)關(guān)系而且是線性的,故可以建立回歸模型: Yi = A + B ,?,? X i + εi( i= 1, 2, ……,, n) ,, 其中( X i , Yj ) 表示( X ,, Y) 的第i 個(gè)觀測(cè)值,,A 、B 為參數(shù),,A + B ×X i 為反映統(tǒng)計(jì)關(guān)系直線的分量,,εi 為反映在統(tǒng)計(jì)關(guān)系直線周?chē)⒉嫉碾S機(jī)分量,εi ~ N( 0,, δ 2 ) ,, 服從正態(tài)分布。根據(jù)最小二乘法:
相關(guān)系數(shù)越接近1,, 則二者越正相關(guān),。圖3 直線擬合的結(jié)果如表2.
表2 線性擬合結(jié)果
圖3 步進(jìn)電機(jī)標(biāo)定實(shí)驗(yàn)及線性擬合
由表可知,不同條件下兩種方法測(cè)定的位移相關(guān)系數(shù)均接近于1,, 即實(shí)驗(yàn)鼠標(biāo)位移測(cè)定與步進(jìn)電機(jī)標(biāo)定位移接近相等,;截距A 可以忽略不計(jì),即鼠標(biāo)位移測(cè)量沒(méi)有系統(tǒng)誤差,; 斜率B 的標(biāo)準(zhǔn)差均小于0.3%,, 即實(shí)驗(yàn)鼠標(biāo)隨機(jī)誤差小。以上充分說(shuō)明實(shí)驗(yàn)鼠標(biāo)在低速的位移測(cè)量具有精度高,、線性度好,、誤差小等優(yōu)點(diǎn)。
為測(cè)試低速條件下鼠標(biāo)位移測(cè)量性能與速度的關(guān)系,,用相同的標(biāo)定方法測(cè)試了不同速度鼠標(biāo)位移的性能,。由圖4 可知總體來(lái)看,鼠標(biāo)移動(dòng)速度越大,,斜率誤差與總擬合標(biāo)準(zhǔn)差越大,,測(cè)量位移性能降低,但在20mm/ s 速度以?xún)?nèi)仍滿(mǎn)足位移測(cè)定的一般需求,??梢灶A(yù)見(jiàn)隨速度的增大,誤差將逐漸變大,。此鼠標(biāo)位移測(cè)定方法適宜于低速情況,。
圖4 不同速度位移測(cè)定的誤差
3 總結(jié)
本文通過(guò)對(duì)鼠標(biāo)原理的分析,提出了利用顯示坐標(biāo)系統(tǒng)與鼠標(biāo)坐標(biāo)系統(tǒng)的映射關(guān)系測(cè)量實(shí)際位移的方法,。通過(guò)Lab-VIEW 編程調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)( CLF) 實(shí)現(xiàn)了對(duì)顯示坐標(biāo)系統(tǒng)的邊界消除,,從而實(shí)現(xiàn)了不受量程限制的位移測(cè)定,。利用步進(jìn)電機(jī)對(duì)實(shí)際的位移測(cè)量性能進(jìn)行了研究,結(jié)果顯示此方法達(dá)到了精確位移測(cè)量的要求,,可以提供精確度0.1mm 的位移測(cè)量,,具有線性度好,精確度高,,誤差小的優(yōu)點(diǎn)。同時(shí)研究顯示該位移測(cè)量系統(tǒng)在低速的位移測(cè)量中具有更佳的性能,。采用高層軟件設(shè)計(jì)的方法,,使鼠標(biāo)位移測(cè)量不受鼠標(biāo)接口、鼠標(biāo)型號(hào)的限制,,具有高性?xún)r(jià)比與強(qiáng)適用性的特征,。此鼠標(biāo)位移檢測(cè)方法集成到基于LabVIEW 的漏磁檢測(cè)系統(tǒng)中,取得了良好的效果,。