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