唐靈俊, 楊旸, 周思柱, 李寧
(長江大學(xué) 機(jī)械工程學(xué)院,湖北 荊州 434020)
鼠標(biāo)按照其工作原理可分為機(jī)械式和光電式,機(jī)械式鼠標(biāo)的位移檢測(cè)原理與光電傳感器的原理相同,由鼠標(biāo)底部的小球帶動(dòng)光電碼盤旋轉(zhuǎn),然后通過光電檢測(cè)部分讀取碼盤轉(zhuǎn)過的柵格數(shù)目從而換算得到線位移大小。目前95%以上用戶使用的是光電鼠標(biāo),機(jī)械鼠標(biāo)漸漸被淘汰,本文對(duì)此情況采取廢物利用,通過Visual Basic語言開發(fā)軟件,讀取鼠標(biāo)指針數(shù)據(jù),實(shí)現(xiàn)角位移檢測(cè)。該方法最大的優(yōu)點(diǎn)是:無需開發(fā)單片機(jī),直接將機(jī)械鼠標(biāo)的光電模塊及光電碼盤取出安裝到被測(cè)轉(zhuǎn)軸上,在電腦上運(yùn)行軟件就能夠讀取角位移參數(shù)。適合任何需要快速測(cè)量物體角位移的場(chǎng)合,即插即用,且精度較高。
不管是機(jī)械鼠標(biāo)還是光電鼠標(biāo),其功能都是用來檢測(cè)鼠標(biāo)在桌面上移動(dòng)的距離和方向,從而來幫助人們將電腦屏幕上的鼠標(biāo)指針移動(dòng)到正確的位置。機(jī)械鼠標(biāo)移動(dòng)時(shí),靠桌面的摩擦力帶動(dòng)鼠標(biāo)底部的小球滾動(dòng),小球驅(qū)動(dòng)在X軸和Y軸方向布置的2個(gè)光電碼盤轉(zhuǎn)動(dòng)。光電碼盤上一般有36個(gè)柵格,在碼盤兩側(cè)分別有1個(gè)紅外發(fā)光二極管和1個(gè)光電探頭,碼盤每轉(zhuǎn)過1個(gè)柵格,光線被遮擋1次,光電探頭對(duì)應(yīng)產(chǎn)生2路電脈沖,一路用于判別碼盤轉(zhuǎn)動(dòng)的方向。電脈沖經(jīng)過電路及鼠標(biāo)芯片處理后將碼盤轉(zhuǎn)過的角度及方向發(fā)送給電腦。
EM84510EP是專門為機(jī)械鼠標(biāo)設(shè)計(jì)的一款基于PS/2通信協(xié)議的芯片,芯片內(nèi)部設(shè)有濾波放大電路,用來對(duì)光電探頭發(fā)出的脈沖信號(hào)進(jìn)行濾波、整形和幅值調(diào)整。因此光電探頭的輸出管腳可以直接和這款芯片引腳相連接。另外當(dāng)光電碼盤的孔的邊緣處于將光線半遮半閉的位置,光電探頭就會(huì)發(fā)出許多虛假信號(hào)。這款芯片也內(nèi)置了防抖動(dòng)電路,能夠自動(dòng)去除虛假信號(hào)。由于這款芯片是專門為鼠標(biāo)設(shè)計(jì)的,因此該芯片還有一個(gè)增速功能。其具體原理是當(dāng)光電碼盤轉(zhuǎn)速加快時(shí),芯片會(huì)自動(dòng)在光電探頭輸入的脈沖數(shù)目的基礎(chǔ)上加上一些脈沖,這使得光電碼盤在轉(zhuǎn)過相同的轉(zhuǎn)角的情況下,由于轉(zhuǎn)速的增加卻讓鼠標(biāo)指針得到更多的位移。這個(gè)功能使得光電碼盤轉(zhuǎn)過的角度與電腦得到的脈沖數(shù)目呈非線性關(guān)系,不利于用來測(cè)量角度。但可以在軟件程序中,通過電腦和鼠標(biāo)芯片的通訊讓芯片關(guān)閉這項(xiàng)功能,保證電腦得到的脈沖數(shù)能夠真正反映光電碼盤轉(zhuǎn)過的角度。鼠標(biāo)芯片的采樣率是100次/s,每次采樣最多可以接受到28=256脈沖,因此對(duì)于一個(gè)36孔的光電碼盤,其最大轉(zhuǎn)速不應(yīng)超過710 r/s。鼠標(biāo)芯片的存儲(chǔ)溫度范圍是-65~150℃,因此在較為惡劣的環(huán)境下,用該芯片設(shè)計(jì)制作的角度傳感器依舊能正常工作。
圖1 脈沖處理電路圖
圖2 齒輪增速機(jī)構(gòu)
將機(jī)械鼠標(biāo)改造成為角度傳感器,只需要用到其光電碼盤及光電檢測(cè)模塊,因此可以將鼠標(biāo)的電路圖簡化成如圖1所示的形式,包括發(fā)光二極管、光敏三級(jí)管、鼠標(biāo)芯片。
光電碼盤每轉(zhuǎn)過1周能夠產(chǎn)生36個(gè)脈沖,再由鼠標(biāo)芯片進(jìn)行4倍頻細(xì)分,使得光電編碼器每轉(zhuǎn)能夠產(chǎn)生36×4=144個(gè)脈沖。即最小能夠分辨的角度是360°÷144=2.5°,顯然精度不夠高,因此我們可以在光電碼盤前端加上兩級(jí)齒輪傳動(dòng),來將分辨率放大16倍,其最小能夠分辨的角度是 360°÷(144×16)=0.15°≈0.2°,如圖2所示。鼠標(biāo)光電碼盤的大小一般為20mm,考慮到尺寸的搭配,齒輪可以選用玩具車上的塑料齒輪,這種齒輪價(jià)格十分便宜。其模數(shù)一般為0.5 mm,如:1、3號(hào)齒輪可以選用40齒(直徑 20 mm),2、4號(hào)齒輪選用10齒(直徑5 mm)。
軟件設(shè)計(jì)采用Visual Basic語言編程。程序包含兩個(gè)部分,第一部分是將芯片初始化設(shè)置,去除自動(dòng)加速功能。其具體方法是,程序向芯片發(fā)送十六進(jìn)制代碼E7,命令芯片關(guān)閉自動(dòng)加速功能,當(dāng)收到應(yīng)答FA后,表明設(shè)置完成。加速功能去除后,程序執(zhí)行第二部分,檢測(cè)并計(jì)算碼盤轉(zhuǎn)角位移及速度。該部分程序中包含1個(gè)時(shí)鐘控件Timer和1個(gè)計(jì)數(shù)器Counter。當(dāng)光電碼盤順時(shí)針轉(zhuǎn)過1個(gè)柵格時(shí),計(jì)數(shù)器Counter加1,逆時(shí)針減1,由此可以求得角位移。將位移對(duì)時(shí)間進(jìn)行微分,即可求得角速度,其具體方法是,時(shí)鐘控件每秒觸發(fā)1次,并記錄下計(jì)數(shù)器當(dāng)前值與前一秒的差值Ti。
角位移計(jì)算公式
式中:Ci為計(jì)數(shù)器Counter的值;N為齒輪1轉(zhuǎn)1圈后電腦接收到的脈沖數(shù)。
角速度計(jì)算公式
式中:Ti為時(shí)鐘控件記錄下的計(jì)數(shù)器前后2s的差值,rad/s;
一般機(jī)械鼠標(biāo)采用PS/2串口輸出,對(duì)于一些不支持PS/2接口的電腦,采用一根PS/2轉(zhuǎn)USB串口數(shù)據(jù)線就能將設(shè)備插入電腦。當(dāng)設(shè)備插入電腦后,電腦實(shí)際上會(huì)將該設(shè)備識(shí)別為鼠標(biāo)設(shè)備,因此當(dāng)光電碼盤旋轉(zhuǎn)的過程中,鼠標(biāo)指針也會(huì)做出相應(yīng)運(yùn)動(dòng)。從而鼠標(biāo)指針移動(dòng)的步數(shù)可以準(zhǔn)確地反映碼盤轉(zhuǎn)過的柵格數(shù)目。通過捕捉鼠標(biāo)指針,可以使得計(jì)數(shù)器Counter的數(shù)值隨著指針同步變化。然而當(dāng)碼盤總是朝著一個(gè)方向轉(zhuǎn)動(dòng),鼠標(biāo)指針可能超出邊界而停止。對(duì)此可以在程序中加入一個(gè)判斷函數(shù),當(dāng)指針超過邊界時(shí),立刻通過 SetCursorPos(X0,Y0)函數(shù)將指針調(diào)回原點(diǎn)重新運(yùn)動(dòng)。程序流程圖如圖3所示。
圖3 程序流程圖
本文提供了一種可快速將機(jī)械鼠標(biāo)改造成為角度傳感器的方法,能夠?qū)崿F(xiàn)一定精度的任意范圍的角度測(cè)量.經(jīng)過測(cè)試,其性能穩(wěn)定。該方法最大的優(yōu)點(diǎn)是無需開發(fā)單片機(jī)或者考慮外設(shè)與電腦的通訊協(xié)議,只需通過簡單的編程或者直接運(yùn)行本文所給出的程序代碼,就能快速實(shí)現(xiàn)角位移及角速度的測(cè)量。
[1] 汪卓飛.一種高精度角度傳感器的研究[D].杭州:浙江工業(yè)大學(xué),2009.
[2] 李文強(qiáng),楊錄,田二明.利用機(jī)械鼠標(biāo)實(shí)現(xiàn)高精度位置檢測(cè)[J].機(jī)械工程與自化,2008(3):180-182.
[3] 陳曦.PS/2接口協(xié)議解析及應(yīng)用[J].國外電子元器件,2004(4):14-18.
[4] 戰(zhàn)延謀,王卓柱,周皓,等.基于鼠標(biāo)芯片TP8452的方向角傳感器設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(6):834-836.
[5] 何緒蘭,林財(cái)興.PS/2鼠標(biāo)驅(qū)動(dòng)關(guān)鍵問題的研究及程序?qū)崿F(xiàn)[J].現(xiàn)代機(jī)械,2011(3):68-72.
[6] 李文強(qiáng),楊錄,田二明.利用機(jī)械鼠標(biāo)實(shí)現(xiàn)高精度位置檢測(cè)[J].機(jī)械工程與自動(dòng)化,2008(3):180-182.