陀螺儀可感應(yīng)空間的變化,與位置無(wú)關(guān),能夠檢測(cè)運(yùn)動(dòng)過(guò)程中每個(gè)軸上旋轉(zhuǎn)的角速度(角度/s) [1-2].目前已有的無(wú)線空中鼠標(biāo)大多數(shù)所采用的技術(shù)有:Gyration公司的無(wú)線空中鼠標(biāo)GYM1100NA,采用傳統(tǒng)的微機(jī)械數(shù)字陀螺儀方式來(lái)實(shí)現(xiàn),其型號(hào)為MG1101BA,靈敏度達(dá)+/-500°/s,該數(shù)字陀螺儀的售價(jià)為8美元。然而隨著微機(jī)電系統(tǒng)(MEMS)技術(shù)的飛速發(fā)展和不斷成熟,MEMS的陀螺儀應(yīng)運(yùn)而生,如羅技公司應(yīng)用了MEMS陀螺儀技術(shù)設(shè)計(jì)實(shí)現(xiàn)了無(wú)線空中鼠標(biāo)MX Air.它采用了應(yīng)美盛(INVENSENSE)公司的IXZ-500兩軸模擬陀螺儀來(lái)實(shí)現(xiàn),靈敏度達(dá)+/-500°/s,該模擬陀螺儀的售價(jià)約為3美元。但采用模擬陀螺儀,單片機(jī)內(nèi)部需要完成AD轉(zhuǎn)換,需要另外再增加0.5美元左右的單片機(jī)成本。因此,要實(shí)現(xiàn)數(shù)字陀螺儀同樣的功能,成本為3.5美元左右。由此可見(jiàn),采用模擬陀螺儀加AD轉(zhuǎn)換的方案成本減少了4.5美元,同時(shí)傳統(tǒng)的微機(jī)械陀螺儀MG1101的體積為13.8 mm×14.75 mm×16 mm,而IXZ-500的MEMS陀螺儀的體積僅為4 mm×5 mm×1.2 mm.為了節(jié)省空中鼠標(biāo)的生產(chǎn)成本和縮小鼠標(biāo)的體積,本文采用兩軸MEMS模擬陀螺儀(IXZ-500)+AD轉(zhuǎn)換的方式來(lái)實(shí)現(xiàn)空中鼠標(biāo)指針空中姿態(tài)控制。
1 兩軸模擬陀螺儀的外圍硬件設(shè)計(jì)
本文研究的兩軸模擬陀螺儀為INVENSENSE公司的IXZ-500陀螺儀,它的每軸靈敏度達(dá)+/-500°/s,兩路模擬輸出,工作電壓為3.0 V.采用該陀螺儀實(shí)現(xiàn)無(wú)線空中鼠標(biāo)的空中指針控制的外圍硬件設(shè)計(jì)如圖1所示。
2 兩軸模擬陀螺儀的數(shù)據(jù)處理及轉(zhuǎn)化
2.1 兩軸陀螺儀數(shù)據(jù)的模數(shù)轉(zhuǎn)換
?。?)帶AD功能的單片機(jī)選型
因?yàn)閮奢S陀螺儀輸出的是2路模擬信號(hào),輸出后需要經(jīng)過(guò)AD轉(zhuǎn)換。因此在選擇主控單片機(jī)時(shí),要選擇至少帶2路AD的單片機(jī)。為了提高采樣的精度,可選擇AD在10位以上、采樣速率在100 b/s以上的主控單片機(jī)。但采樣精度的提高會(huì)影響采樣速度,在采樣精度和速率選擇上,可以先通過(guò)理論分析,然后經(jīng)過(guò)實(shí)際性能的測(cè)試,選擇合適的采樣精度和速率,從而獲得一個(gè)較好的空中鼠標(biāo)姿態(tài)感知的靈敏度。本文選擇的是12位2路以上AD的單片機(jī),采樣速率可達(dá)480 b/s.
?。?)AD時(shí)鐘及采樣率設(shè)置
設(shè)置單片機(jī)的CPU時(shí)鐘CPU_Clock為12 MHz,AD采樣的時(shí)鐘DataClock為8 MHz,采樣精度為12 bit.則:
?。?)IXZ-500工作原理及AD轉(zhuǎn)換的實(shí)現(xiàn)
IXZ-500陀螺儀的工作靈敏度為+/-500°/s,當(dāng)陀螺儀在平面上發(fā)生旋轉(zhuǎn)時(shí),每個(gè)軸上會(huì)輸出一個(gè)與旋轉(zhuǎn)角度相關(guān)的模擬電壓信號(hào),在工作范圍之內(nèi),旋轉(zhuǎn)的角度大小與電壓變化大小成正比。設(shè)計(jì)中,通過(guò)單片機(jī)的AD轉(zhuǎn)換器來(lái)檢測(cè)電壓變化的大小以檢測(cè)平面上旋轉(zhuǎn)角度的變化大小,從而實(shí)現(xiàn)空中旋轉(zhuǎn)角度的檢測(cè),即實(shí)現(xiàn)空中鼠標(biāo)在空中的旋轉(zhuǎn)角度檢測(cè)。
當(dāng)IXZ-500陀螺儀開始通電工作后,陀螺儀保持靜止不動(dòng)時(shí),每個(gè)軸會(huì)輸出一個(gè)大小為1.25 V的靜態(tài)電壓值;當(dāng)陀螺儀發(fā)生旋轉(zhuǎn)后,電壓會(huì)在靜態(tài)電壓值的兩側(cè)發(fā)生變化。旋轉(zhuǎn)方向不同,電壓變化的方向也不同(增大或者減少),即1.25 V +/-?駐V.旋轉(zhuǎn)的角度與電壓變化大小關(guān)系為:2 mV/(°/s)。
單片機(jī)啟動(dòng)AD轉(zhuǎn)換后,完成對(duì)陀螺儀輸出電壓的轉(zhuǎn)換,AD完成1次電壓轉(zhuǎn)換需要約2 ms的時(shí)間。本設(shè)計(jì)設(shè)置為10 ms采樣一次,通過(guò)采用定時(shí)器10 ms的中斷方式進(jìn)行控制。
2.2 靜態(tài)基準(zhǔn)點(diǎn)的捕捉
當(dāng)陀螺儀保持靜止不動(dòng)時(shí),芯片的數(shù)據(jù)手冊(cè)給出的參考靜態(tài)電壓值為1.25 V.然而在實(shí)際工作中,由于器件的差異性、外圍環(huán)境溫度變化等,都會(huì)使每個(gè)陀螺儀工作在靜止?fàn)顟B(tài)時(shí),靜態(tài)電壓值并不一定是數(shù)據(jù)手冊(cè)給定的值[3].因此需要對(duì)靜止?fàn)顟B(tài)下的輸出電壓進(jìn)行重新檢測(cè),即靜態(tài)基準(zhǔn)點(diǎn)的捕捉。
靜態(tài)基準(zhǔn)點(diǎn)的捕捉方法如下:
?。?)保持兩軸陀螺儀在靜止?fàn)顟B(tài),由單片機(jī)的AD轉(zhuǎn)換器采樣陀螺儀的輸出電壓并完成AD轉(zhuǎn)換。假設(shè)兩軸陀螺儀AD轉(zhuǎn)換后的值為:Current_x和Current_z.
?。?)由于陀螺儀本身存在噪聲的影響,需要屏蔽噪聲。這里Current_x和Current_z都為12 bit的數(shù)值,設(shè)計(jì)時(shí)將其zui低2位數(shù)據(jù)屏蔽掉,即將Current_x和Current_z分別與0xffc位進(jìn)行“與”操作。
?。?)為了進(jìn)一步消除誤差,將上述的數(shù)據(jù)連續(xù)讀取兩次,求平均值。
?。?)因?yàn)閮奢S陀螺儀在靜止?fàn)顟B(tài)下,輸出的電壓基本上不變化,所以可以連續(xù)檢測(cè)多次,然后進(jìn)行數(shù)據(jù)比較。如果連續(xù)檢測(cè)多次經(jīng)過(guò)屏蔽及平均之后的數(shù)據(jù)都相等,則表明兩軸陀螺儀是處在靜止?fàn)顟B(tài)。
(5)分別記錄此時(shí)Current_x和Current_z的值。這兩個(gè)值即為靜態(tài)基準(zhǔn)點(diǎn)的值:Static_x和Static_z.
?。?)在實(shí)際應(yīng)用中,將Static_x和Static_z寫入主控器的EEPROM中,其目的是使得下次Static_x和Static_z的值可以直接從EEPROM中讀出,不必要每次都檢測(cè)靜態(tài)基準(zhǔn)點(diǎn)。
2.3 動(dòng)態(tài)旋轉(zhuǎn)角度變化率的測(cè)量
當(dāng)兩軸陀螺儀發(fā)生旋轉(zhuǎn)時(shí),每個(gè)軸的輸出電壓會(huì)發(fā)生變化,即在靜態(tài)基準(zhǔn)電壓的兩側(cè)變化。
(1)兩軸陀螺儀發(fā)生旋轉(zhuǎn)時(shí),計(jì)算兩維方向上的旋轉(zhuǎn)角度變化率:
式中,Current_x表示x軸上的輸出量,Static_x表示x軸上的沒(méi)有發(fā)生旋轉(zhuǎn)時(shí)輸出量;q為陀螺儀的靈敏度系數(shù)(系數(shù)的大小可根據(jù)實(shí)際的需要進(jìn)行設(shè)置,要提高靈敏度則可以減小系數(shù)的大?。?。z軸上旋轉(zhuǎn)角度變化率的計(jì)算方法同x軸。
當(dāng)物體發(fā)生旋轉(zhuǎn)時(shí),陀螺儀也跟著旋轉(zhuǎn),通過(guò)對(duì)旋轉(zhuǎn)角度變化率的測(cè)量,就能測(cè)量出陀螺儀在平面上旋轉(zhuǎn)角度的變化,從而得知物體在空中的旋轉(zhuǎn)變化。
?。?)在空中鼠標(biāo)的應(yīng)用中,本文將陀螺儀的靈敏度系數(shù)q的值設(shè)置為20,經(jīng)過(guò)實(shí)際鼠標(biāo)的測(cè)試,已能滿足鼠標(biāo)指針在空中的位移控制需要。
3 無(wú)線空中鼠標(biāo)指針控制流程
無(wú)線空中鼠標(biāo)指針的空中旋轉(zhuǎn)控制流程如圖2所示。對(duì)于2.4 GHz的無(wú)線通信部分,可以參考文獻(xiàn)[4].
4 兩軸陀螺儀的參數(shù)動(dòng)態(tài)自校正
由于兩軸陀螺儀在環(huán)境溫度變化或工作電壓下降后,兩軸陀螺儀靜態(tài)的基準(zhǔn)點(diǎn)會(huì)發(fā)生改變即發(fā)生零點(diǎn)漂移[5],使得Static_x和Static_z的值發(fā)生改變。因此需要對(duì)靜態(tài)的基準(zhǔn)點(diǎn)進(jìn)行校正,即重新捕捉Static_x和Static_z的值。為此本文提出一種動(dòng)態(tài)自校正的算法,對(duì)相應(yīng)的Static_x和Static_z參數(shù)進(jìn)行自校正,取得較好的校正效果。
動(dòng)態(tài)自校正的算法引用靜態(tài)基準(zhǔn)點(diǎn)的捕捉方法進(jìn)行控制,控制過(guò)程如圖3所示。
對(duì)于參數(shù)i、j用戶可以根據(jù)具體不同的實(shí)際需要進(jìn)行調(diào)整,i、j增大會(huì)增加校正的時(shí)間,但可以增加靜態(tài)捕捉點(diǎn)的精度。本文i、j的設(shè)置是根據(jù)空中鼠標(biāo)實(shí)際性能的測(cè)試后得出的。通過(guò)對(duì)鼠標(biāo)的實(shí)際測(cè)試,該控制方法校正時(shí)間小于2 s.
本文通過(guò)對(duì)傳統(tǒng)的微機(jī)械陀螺儀、數(shù)字陀螺儀及MEMS陀螺儀進(jìn)行了比較研究,提出了一種采用兩軸模擬陀螺儀技術(shù)實(shí)現(xiàn)低成本的空中鼠標(biāo)指針的控制方法。該方法目前已成功應(yīng)用于無(wú)線空中鼠標(biāo)中,在空中可以檢測(cè)旋轉(zhuǎn)角度范圍為+/-500°/s,實(shí)現(xiàn)了空中鼠標(biāo)指針在空中的自由控制,已獲得實(shí)用新型一項(xiàng)[6].此外,該方法還可應(yīng)用于人體動(dòng)作跟蹤、游戲控制器、機(jī)器人及自動(dòng)導(dǎo)航等人機(jī)輸入設(shè)備中。
更多精彩內(nèi)容請(qǐng)點(diǎn)擊 土壤水分速測(cè)儀 http://.cn