文獻(xiàn)標(biāo)識碼:A
文章編號: 0258-7998(2010)10-0132-03
陀螺儀可感應(yīng)空間的變化,與位置無關(guān),能夠檢測運動過程中每個軸上旋轉(zhuǎn)的角速度(角度/s) [1-2]。目前已有的無線空中鼠標(biāo)大多數(shù)所采用的技術(shù)有:Gyration公司的無線空中鼠標(biāo)GYM1100NA,采用傳統(tǒng)的微機(jī)械數(shù)字陀螺儀方式來實現(xiàn),其型號為MG1101BA,靈敏度達(dá)+/-500°/s,該數(shù)字陀螺儀的售價為8美元。然而隨著微機(jī)電系統(tǒng)(MEMS)技術(shù)的飛速發(fā)展和不斷成熟,MEMS的陀螺儀應(yīng)運而生,如羅技公司應(yīng)用了MEMS陀螺儀技術(shù)設(shè)計實現(xiàn)了無線空中鼠標(biāo)MX Air。它采用了應(yīng)美盛(INVENSENSE)公司的IXZ-500兩軸模擬陀螺儀來實現(xiàn),靈敏度達(dá)+/-500°/s,該模擬陀螺儀的售價約為3美元。但采用模擬陀螺儀,單片機(jī)內(nèi)部需要完成AD轉(zhuǎn)換,需要另外再增加0.5美元左右的單片機(jī)成本。因此,要實現(xiàn)數(shù)字陀螺儀同樣的功能,成本為3.5美元左右。由此可見,采用模擬陀螺儀加AD轉(zhuǎn)換的方案成本減少了4.5美元,同時傳統(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)換的方式來實現(xiàn)空中鼠標(biāo)指針空中姿態(tài)控制。
1 兩軸模擬陀螺儀的外圍硬件設(shè)計
本文研究的兩軸模擬陀螺儀為INVENSENSE公司的IXZ-500陀螺儀,它的每軸靈敏度達(dá)+/-500°/s,兩路模擬輸出,工作電壓為3.0 V。采用該陀螺儀實現(xiàn)無線空中鼠標(biāo)的空中指針控制的外圍硬件設(shè)計如圖1所示。
2 兩軸模擬陀螺儀的數(shù)據(jù)處理及轉(zhuǎn)化
2.1 兩軸陀螺儀數(shù)據(jù)的模數(shù)轉(zhuǎn)換
(1)帶AD功能的單片機(jī)選型
因為兩軸陀螺儀輸出的是2路模擬信號,輸出后需要經(jīng)過AD轉(zhuǎn)換。因此在選擇主控單片機(jī)時,要選擇至少帶2路AD的單片機(jī)。為了提高采樣的精度,可選擇AD在10位以上、采樣速率在100 b/s以上的主控單片機(jī)。但采樣精度的提高會影響采樣速度,在采樣精度和速率選擇上,可以先通過理論分析,然后經(jīng)過實際性能的測試,選擇合適的采樣精度和速率,從而獲得一個較好的空中鼠標(biāo)姿態(tài)感知的靈敏度。本文選擇的是12位2路以上AD的單片機(jī),采樣速率可達(dá)480 b/s。
(2)AD時鐘及采樣率設(shè)置
設(shè)置單片機(jī)的CPU時鐘CPU_Clock為12 MHz,AD采樣的時鐘DataClock為8 MHz,采樣精度為12 bit。則:
(3)IXZ-500工作原理及AD轉(zhuǎn)換的實現(xiàn)
IXZ-500陀螺儀的工作靈敏度為+/-500°/s,當(dāng)陀螺儀在平面上發(fā)生旋轉(zhuǎn)時,每個軸上會輸出一個與旋轉(zhuǎn)角度相關(guān)的模擬電壓信號,在工作范圍之內(nèi),旋轉(zhuǎn)的角度大小與電壓變化大小成正比。設(shè)計中,通過單片機(jī)的AD轉(zhuǎn)換器來檢測電壓變化的大小以檢測平面上旋轉(zhuǎn)角度的變化大小,從而實現(xiàn)空中旋轉(zhuǎn)角度的檢測,即實現(xiàn)空中鼠標(biāo)在空中的旋轉(zhuǎn)角度檢測。
當(dāng)IXZ-500陀螺儀開始通電工作后,陀螺儀保持靜止不動時,每個軸會輸出一個大小為1.25 V的靜態(tài)電壓值;當(dāng)陀螺儀發(fā)生旋轉(zhuǎn)后,電壓會在靜態(tài)電壓值的兩側(cè)發(fā)生變化。旋轉(zhuǎn)方向不同,電壓變化的方向也不同(增大或者減少),即1.25 V +/-?駐V。旋轉(zhuǎn)的角度與電壓變化大小關(guān)系為:2 mV/(°/s)。
單片機(jī)啟動AD轉(zhuǎn)換后,完成對陀螺儀輸出電壓的轉(zhuǎn)換,AD完成1次電壓轉(zhuǎn)換需要約2 ms的時間。本設(shè)計設(shè)置為10 ms采樣一次,通過采用定時器10 ms的中斷方式進(jìn)行控制。
2.2 靜態(tài)基準(zhǔn)點的捕捉
當(dāng)陀螺儀保持靜止不動時,芯片的數(shù)據(jù)手冊給出的參考靜態(tài)電壓值為1.25 V。然而在實際工作中,由于器件的差異性、外圍環(huán)境溫度變化等,都會使每個陀螺儀工作在靜止?fàn)顟B(tài)時,靜態(tài)電壓值并不一定是數(shù)據(jù)手冊給定的值[3]。因此需要對靜止?fàn)顟B(tài)下的輸出電壓進(jìn)行重新檢測,即靜態(tài)基準(zhǔn)點的捕捉。
靜態(tài)基準(zhǔn)點的捕捉方法如下:
(1)保持兩軸陀螺儀在靜止?fàn)顟B(tài),由單片機(jī)的AD轉(zhuǎn)換器采樣陀螺儀的輸出電壓并完成AD轉(zhuǎn)換。假設(shè)兩軸陀螺儀AD轉(zhuǎn)換后的值為:Current_x和Current_z。
(2)由于陀螺儀本身存在噪聲的影響,需要屏蔽噪聲。這里Current_x和Current_z都為12 bit的數(shù)值,設(shè)計時將其最低2位數(shù)據(jù)屏蔽掉,即將Current_x和Current_z分別與0xffc位進(jìn)行“與”操作。
(3)為了進(jìn)一步消除誤差,將上述的數(shù)據(jù)連續(xù)讀取兩次,求平均值。
(4)因為兩軸陀螺儀在靜止?fàn)顟B(tài)下,輸出的電壓基本上不變化,所以可以連續(xù)檢測多次,然后進(jìn)行數(shù)據(jù)比較。如果連續(xù)檢測多次經(jīng)過屏蔽及平均之后的數(shù)據(jù)都相等,則表明兩軸陀螺儀是處在靜止?fàn)顟B(tài)。
(5)分別記錄此時Current_x和Current_z的值。這兩個值即為靜態(tài)基準(zhǔn)點的值:Static_x和Static_z。
(6)在實際應(yīng)用中,將Static_x和Static_z寫入主控器的EEPROM中,其目的是使得下次Static_x和Static_z的值可以直接從EEPROM中讀出,不必要每次都檢測靜態(tài)基準(zhǔn)點。
2.3 動態(tài)旋轉(zhuǎn)角度變化率的測量
當(dāng)兩軸陀螺儀發(fā)生旋轉(zhuǎn)時,每個軸的輸出電壓會發(fā)生變化,即在靜態(tài)基準(zhǔn)電壓的兩側(cè)變化。
(1)兩軸陀螺儀發(fā)生旋轉(zhuǎn)時,計算兩維方向上的旋轉(zhuǎn)角度變化率:
式中,Current_x表示x軸上的輸出量,Static_x表示x軸上的沒有發(fā)生旋轉(zhuǎn)時輸出量;q為陀螺儀的靈敏度系數(shù)(系數(shù)的大小可根據(jù)實際的需要進(jìn)行設(shè)置,要提高靈敏度則可以減小系數(shù)的大小)。z軸上旋轉(zhuǎn)角度變化率的計算方法同x軸。
當(dāng)物體發(fā)生旋轉(zhuǎn)時,陀螺儀也跟著旋轉(zhuǎn),通過對旋轉(zhuǎn)角度變化率的測量,就能測量出陀螺儀在平面上旋轉(zhuǎn)角度的變化,從而得知物體在空中的旋轉(zhuǎn)變化。
(2)在空中鼠標(biāo)的應(yīng)用中,本文將陀螺儀的靈敏度系數(shù)q的值設(shè)置為20,經(jīng)過實際鼠標(biāo)的測試,已能滿足鼠標(biāo)指針在空中的位移控制需要。
3 無線空中鼠標(biāo)指針控制流程
無線空中鼠標(biāo)指針的空中旋轉(zhuǎn)控制流程如圖2所示。對于2.4 GHz的無線通信部分,可以參考文獻(xiàn)[4]。
4 兩軸陀螺儀的參數(shù)動態(tài)自校正
由于兩軸陀螺儀在環(huán)境溫度變化或工作電壓下降后,兩軸陀螺儀靜態(tài)的基準(zhǔn)點會發(fā)生改變即發(fā)生零點漂移[5],使得Static_x和Static_z的值發(fā)生改變。因此需要對靜態(tài)的基準(zhǔn)點進(jìn)行校正,即重新捕捉Static_x和Static_z的值。為此本文提出一種動態(tài)自校正的算法,對相應(yīng)的Static_x和Static_z參數(shù)進(jìn)行自校正,取得較好的校正效果。
動態(tài)自校正的算法引用靜態(tài)基準(zhǔn)點的捕捉方法進(jìn)行控制,控制過程如圖3所示。
對于參數(shù)i、j用戶可以根據(jù)具體不同的實際需要進(jìn)行調(diào)整,i、j增大會增加校正的時間,但可以增加靜態(tài)捕捉點的精度。本文i、j的設(shè)置是根據(jù)空中鼠標(biāo)實際性能的測試后得出的。通過對鼠標(biāo)的實際測試,該控制方法校正時間小于2 s。
本文通過對傳統(tǒng)的微機(jī)械陀螺儀、數(shù)字陀螺儀及MEMS陀螺儀進(jìn)行了比較研究,提出了一種采用兩軸模擬陀螺儀技術(shù)實現(xiàn)低成本的空中鼠標(biāo)指針的控制方法。該方法目前已成功應(yīng)用于無線空中鼠標(biāo)中,在空中可以檢測旋轉(zhuǎn)角度范圍為+/-500°/s,實現(xiàn)了空中鼠標(biāo)指針在空中的自由控制,已獲得實用新型專利一項[6]。此外,該方法還可應(yīng)用于人體動作跟蹤、游戲控制器、機(jī)器人及自動導(dǎo)航等人機(jī)輸入設(shè)備中。
參考文獻(xiàn)
[1] 董煜茜,高鐘毓,張嶸. 微機(jī)械陀螺儀的性能分析[J]. 清華大學(xué)學(xué)報<自然科學(xué)版>,1998, 38(11):1-3.
[2] 谷慶紅. 微機(jī)械陀螺儀的研制現(xiàn)狀[J]. 中國慣性技術(shù)學(xué)報, 2003,11(5):67-72.
[3] 葛海江, 陶姍. 姿態(tài)感知鼠標(biāo)指針的控制方法[J]. 機(jī)電工程. 2009,26(3):105-107.
[4] 葛海江, 陶姍, 吳弋旻,等. 2.4GHz無線鼠標(biāo)多信道控制方法研究[J]. 計算機(jī)工程與應(yīng)用. 2009,45(9):77-79.
[5] 金光明,張國良,陳林鵬,等. MEMS陀螺儀靜態(tài)漂移模型與濾波方法研究[J]. 傳感器與微系統(tǒng), 2007,26(11):48-50.
[6] 戴國駿, 葛海江,姜若林,等. 一種多功能無線鼠標(biāo)裝置: 中國, 專利申請?zhí)?200710164504.7.2008-05-14.