<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 一種鼠標位移測量技術(shù)研究

一種鼠標位移測量技術(shù)研究

作者: 時(shí)間:2012-07-11 來(lái)源:網(wǎng)絡(luò ) 收藏

 位移檢測技術(shù)經(jīng)過(guò)多年發(fā)展已經(jīng)相當成熟,各種位移傳感器紛紛出現,但低成本的位移傳感器結構簡(jiǎn)單,精確度不高,線(xiàn)性度低,而高成本的位移傳感器雖 然性能優(yōu)異,但制作工藝難度大,難以普及。所以開(kāi)發(fā)一款低成本、高性能的位移傳感器具有很高的現實(shí)意義。鑒于此,本文提出了通過(guò)LabVIEW 編程實(shí)現精確度高、線(xiàn)性度好、測量范圍大、無(wú)需其余硬件設備的方法。

本文引用地址:http://dyxdggzs.com/article/193604.htm

  1 的工作原理及的實(shí)現方法

  1.1 的工作原理與驅動(dòng)程序

  鼠標( mouse) 在現代個(gè)人電腦( PC)中被廣泛應用,特別是圖形用戶(hù)界面(GUI)的流行,鼠標已經(jīng)不可或缺。大規模的生產(chǎn)使鼠標的價(jià)格很低,通過(guò)利用鼠標來(lái)測位移也使成本趨于合理。經(jīng) 過(guò)數十年的技術(shù)發(fā)展,尤其是光電鼠標與激光鼠標的出現,其精度得到極大提高。利用鼠標進(jìn)行位移測定,具有高精度、低成本的優(yōu)點(diǎn)。鼠標雖然實(shí)際上是位移傳感 器,但其是為PC 機配備的外部輸入設備,各種操作系統自帶的鼠標驅動(dòng)程序只是為了提供圖形用戶(hù)界面操作,無(wú)法滿(mǎn)足普遍的要求。

  鼠標全稱(chēng)顯示系統縱橫位置指示器。光電鼠和機械鼠的最大區別是對軌跡的檢測方法,但其工作原理基本相同: 通過(guò)光柵信號傳感器或光電傳感器將位移轉換為電脈沖信號,然后通過(guò)芯片將信號處理為數據包傳遞給PC 機。目前利用鼠標實(shí)現位移測量的方法主要是利用單片機實(shí)現信號處理,實(shí)現位移檢測功能,但此方法穩定性差,噪聲較大,需要額外硬件系統,性?xún)r(jià)比低。在操作 系統已經(jīng)盡可能挖掘了底層硬件數據通信能力的情況下,重新對底層硬件通信浪費資源。實(shí)際上,鼠標提供GUI 操作,通過(guò)鼠標移動(dòng)控制顯示設備上鼠標指針的像素移動(dòng)。反之,可以利用指針運動(dòng)的位移來(lái)確定實(shí)際鼠標的位移。

  1.2 鼠標坐標系統與顯示坐標系統的關(guān)系

  鼠標坐標系統( 即實(shí)際位移) 與顯示坐標系統通過(guò)映射來(lái)完成對應關(guān)系,二者坐標均使用平面直角坐標系。鼠標坐標系統在平面上任意取一點(diǎn)作為原點(diǎn),以相對原點(diǎn)的偏移量計算目標點(diǎn)的坐標 值,然后以相對該目標點(diǎn)的偏移量計算下一新目標點(diǎn)的坐標值,以此類(lèi)推。鼠標坐標系統中基本單位為米基。顯示坐標系統同顯示器的實(shí)際分辨率及工作方式有關(guān)。 使用平面直角坐標系,原點(diǎn)在屏幕的左上方,橫向代表X 方向,縱向代表Y 方向。圖形方式下的橫向、縱向的象素為基本單位進(jìn)行衡量。例如,1024×768 分辨率時(shí),顯示坐標的橫向和縱向坐標范圍為0~ 1023,0~ 767。

  鼠標坐標系到顯示坐標系完成三個(gè)方面的映射:(1) 原點(diǎn)映射:( x 0 , y 0 ) = ( X 0, Y0 ) , 其中X 0 , Y0 ( 為屏幕原點(diǎn)坐標)值可任意給定:( 2) 目標點(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)。改變米基到象素的比例因子μ 影響鼠標靈敏度,μ 值決定著(zhù)指針的移動(dòng)速度,可以在PC 機w indow s 操作系統中的控制面板設置。因此無(wú)須改變鼠標底層的硬件驅動(dòng),實(shí)際鼠標的位移可以通過(guò)象素坐標來(lái)確定。但實(shí)際的顯示坐標均有邊界限制,不能滿(mǎn)足大范圍的位 移測量。通過(guò)LabVIEW編程消除顯示坐標系象素X i 與Yi 的上下界限制,通過(guò)測量指針移動(dòng)的象素來(lái)精確檢測鼠標的位移量。

  1. 3 位移測量的LabVIEW 實(shí)現方法

  通過(guò)庫函數節點(diǎn)( CLF) 來(lái)訪(fǎng)問(wèn)動(dòng)態(tài)鏈接庫( DLL) 的方法,直接調用WINDOWS API 函數與LabVIEW 自行編制的庫函數,使得LabVIEW 對鼠標的通信得到大大的增強,同時(shí)也為操作系統底層函數支持LabVIEW 提供了便捷,節省了內存空間。與鼠標相關(guān)的動(dòng)態(tài)鏈接庫函數如表1 所示,二者庫函數有部分相同的功能。

  表1 鼠標驅動(dòng)程序接口函數

  

表1 鼠標驅動(dòng)程序接口函數

  通過(guò)調用以上函數實(shí)現鼠標的位移測量。具體方法為: 在顯示坐標系內,坐標范圍分成M × N 象素。位移的X 、Y 分量二者互不影響,編程時(shí)可以分別處理。方法實(shí)現的重點(diǎn)是消除操作系統固有的顯示坐標系象素X i 與Yi 的上下界限制。首先要判斷鼠標的運動(dòng)方向,若鼠標向左移動(dòng),則其必然到達坐標系右邊界。這時(shí)通過(guò)函數使象素X i 置零,Yi 不變,同時(shí)記錄一次其過(guò)邊界。通過(guò)顯示坐標( X i , Yi ) 與初始坐標( X 0 ,Y0 ) 之差與過(guò)邊界次數即可求出在顯示坐標中鼠標指針的位移。其他運動(dòng)方向的位移同理可以得到。最后通過(guò)比例因子μ將顯示坐標映射到鼠標坐標系中,即可求出實(shí)際 位移( x i ,yi ) .詳細的程序流程圖如圖1 所示。

  

圖1  鼠標位移測量程序流程圖

  圖1 鼠標位移測量程序流程圖

  LabVIEW 具有代碼直觀(guān)、層次清晰的圖形化編程特點(diǎn)。在前面板上設置顯示坐標為M×N = 500 × 300 的指針工作區域,并設置初始坐標在工作區的中心( 250, 150) .X 方向右位移消除邊界的部分程序框圖如圖2 所示,條件語(yǔ)句判斷當指針到達右邊界( 499, Yi ) 時(shí),下一次循環(huán)將其設為( 0, Yi ) ,并將以后的位移增加1 倍M.循環(huán)體內使用了移位寄存器。

  

圖2 部分消除邊界的LabVIEW 程序框圖

  圖2 部分消除邊界的LabVIEW 程序框圖

2 檢測實(shí)驗與性能分析

  檢測實(shí)驗采用USB 接口的dell 三鍵光電有線(xiàn)鼠標,最高分辨率400dpi.分別測試了鼠標在指針最小與最大移動(dòng)速度( 控制面板中設置) 中以4mm/ s 與20mm/ s 的速度進(jìn)行位移測量性能。采用步進(jìn)電機與控制器對其進(jìn)行位移標定,位移精確度為0.01mm.得到如圖3 所示位移圖像。

  由于步進(jìn)電機顯示位移與鼠標實(shí)際檢測的位移具有統計關(guān)系而且是線(xiàn)性的,故可以建立回歸模型: Yi = A + B ?? X i + εi( i= 1, 2, ……, n) , 其中( X i , Yj ) 表示( X , Y) 的第i 個(gè)觀(guān)測值,A 、B 為參數,A + B ×X i 為反映統計關(guān)系直線(xiàn)的分量,εi 為反映在統計關(guān)系直線(xiàn)周?chē)⒉嫉碾S機分量,εi ~ N( 0, δ 2 ) , 服從正態(tài)分布。根據最小二乘法:

  

  

  相關(guān)系數越接近1, 則二者越正相關(guān)。圖3 直線(xiàn)擬合的結果如表2.

  表2 線(xiàn)性擬合結果

  

表2  線(xiàn)性擬合結果

  

圖3  步進(jìn)電機標定實(shí)驗及線(xiàn)性擬合

  圖3 步進(jìn)電機標定實(shí)驗及線(xiàn)性擬合

  由表可知,不同條件下兩種方法測定的位移相關(guān)系數均接近于1, 即實(shí)驗鼠標位移測定與步進(jìn)電機標定位移接近相等;截距A 可以忽略不計,即鼠標位移測量沒(méi)有系統誤差; 斜率B 的標準差均小于0.3%, 即實(shí)驗鼠標隨機誤差小。以上充分說(shuō)明實(shí)驗鼠標在低速的位移測量具有精度高、線(xiàn)性度好、誤差小等優(yōu)點(diǎn)。

為測試低速條件下鼠標位移測量性能與速度的關(guān)系,用相同的標定方法測試了不同速度鼠標位移的性能。由圖4 可知總體來(lái)看,鼠標移動(dòng)速度越大,斜率誤差與總擬合標準差越大,測量位移性能降低,但在20mm/ s 速度以?xún)热詽M(mǎn)足位移測定的一般需求??梢灶A見(jiàn)隨速度的增大,誤差將逐漸變大。此鼠標位移測定方法適宜于低速情況。

  

圖4  不同速度位移測定的誤差

  圖4 不同速度位移測定的誤差

  3 總結

  結果顯示此方法達到了精確位移測量的要求,可以提供精確度0.1mm 的位移測量,具有線(xiàn)性度好,精確度高,誤差小的優(yōu)點(diǎn)。同時(shí)研究顯示該位移測量系統在低速的位移測量中具有更佳的性能。采用高層軟件設計的方法,使鼠標位移 測量不受鼠標接口、鼠標型號的限制,具有高性?xún)r(jià)比與強適用性的特征。此鼠標位移檢測方法集成到基于LabVIEW 的漏磁檢測系統中,取得了良好的效果。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>