摘要:在很多控制系統(tǒng)中,角度值是一個(gè)十分重要的物理參數(shù)。例如起重機(jī)和升降機(jī)上都要有角度測控機(jī)構(gòu)來控制起降高度;飛行器自動(dòng)駕駛系統(tǒng)中都有大量的角度傳感器,實(shí)時(shí)檢測飛機(jī)偏轉(zhuǎn)角度,以便對飛行姿態(tài)進(jìn)行調(diào)整。目前已有利用加速度傳感器實(shí)現(xiàn)高精度角度測量的設(shè)計(jì)研究,但主要側(cè)重于單軸的測量,同時(shí)進(jìn)行三軸測量的研究設(shè)計(jì)鮮有報(bào)道。本文將重點(diǎn)討論采用三軸
加速度傳感器MMA7361L實(shí)現(xiàn)高精度角度檢測的軟硬件方法。
引言
在很多控制系統(tǒng)中,角度值是一個(gè)十分重要的物理參數(shù)。例如起重機(jī)和升降機(jī)上都要有角度測控機(jī)構(gòu)來控制起降高度;飛行器自動(dòng)駕駛系統(tǒng)中都有大量的角度傳感器,實(shí)時(shí)檢測飛機(jī)偏轉(zhuǎn)角度,以便對飛行姿態(tài)進(jìn)行調(diào)整。目前已有利用加速度傳感器實(shí)現(xiàn)高精度角度測量的設(shè)計(jì)研究,但主要側(cè)重于單軸的測量,同時(shí)進(jìn)行三軸測量的研究設(shè)計(jì)鮮有報(bào)道。本文將重點(diǎn)討論采用三軸加速度傳感器MMA7361L實(shí)現(xiàn)高精度角度檢測的軟硬件方法。
1、角度檢測儀硬件平臺(tái)設(shè)計(jì)
采用了高精度三軸加速度傳感器MMA7361L作為角度檢測模塊,數(shù)據(jù)處理采用的帶A/D轉(zhuǎn)換功能的STM32F103VE芯片,采用I2C接口的AT24C02A芯片進(jìn)行周期性數(shù)據(jù)存儲(chǔ),采用1602液晶模塊對角度值進(jìn)行實(shí)時(shí)顯示,為了擴(kuò)展系統(tǒng)功能,采用4×4鍵盤對系統(tǒng)模式進(jìn)行設(shè)置。同時(shí)采用聲光報(bào)警電路,當(dāng)角度超過設(shè)定上*,進(jìn)行聲光報(bào)警提示。
角度檢測儀硬件平臺(tái)結(jié)構(gòu)框圖如圖1所示。
1.1STM32F103VE控制器
本系統(tǒng)采用新一代低功耗高速工業(yè)級芯片STM32F103VE作為控制器核心,芯片采用更優(yōu)化的32位ARMCortex-M3內(nèi)核,時(shí)鐘頻率達(dá)到72MHz。該芯片系統(tǒng)資源和外圍接口豐富,內(nèi)部集成時(shí)鐘、復(fù)位以及電源管理模塊,支持多種工作模式,內(nèi)含2個(gè)12位高速ADC、80個(gè)快速I/O口、7個(gè)定時(shí)器和多達(dá)9個(gè)通信接口。
1.2MMA7361L角度檢測模塊設(shè)計(jì)
MMA7361L是一種超低功耗、小型電容式的微機(jī)械加速度傳感器。該傳感器可以采用1.5g或6g靈敏度重力選擇模式,具有信號調(diào)理、一階低通濾波、溫度補(bǔ)償、自檢、帶有線性自由落體檢測和零重力檢測等功能。工作電壓為2.2~3.6V,工作電流為400μA,設(shè)置為睡眠模式時(shí)工作電路僅為3μA。從靈敏度、功耗角度考慮,采用MMA7361L作為角度檢測模塊的核心芯片。MMA7361L角度檢測模塊電路如圖2所示。
2、角度檢測儀軟件平臺(tái)設(shè)計(jì)
2.1軟件平臺(tái)整體結(jié)構(gòu)
幾乎所有的嵌入式產(chǎn)品中都需要嵌入式軟件來提供靈活多樣而且可為應(yīng)用定制的功能。為了便于今后產(chǎn)品功能擴(kuò)展,采用精簡的μC/OS-II操作系統(tǒng)作為軟件平臺(tái)的支撐。角度檢測儀軟件體系結(jié)構(gòu)如圖3所示。其中zui底層為設(shè)備驅(qū)動(dòng)程序?qū)?,主要是進(jìn)行處理器初始化和驅(qū)動(dòng)各外設(shè)電路模塊;第2層為嵌入式μC/OS-II操作系統(tǒng),主要是管理系統(tǒng)的軟硬件資源,以及上層應(yīng)用和操作底層驅(qū)動(dòng)接口;第3層為應(yīng)用程序,主要是系統(tǒng)調(diào)用和實(shí)現(xiàn)OS級別功能。
2.2MMA7361L角度測試驅(qū)動(dòng)實(shí)現(xiàn)
MMA7361L是一款高精度的模擬三軸加速度傳感器,其精度模式可以選擇1.5g或6g兩種。從工程需要的角度選擇1.5g模式,其精度為800mV/g,將g-Select引腳置為低電平。在正常工作狀態(tài),Sleep引腳需要置為高電平。同時(shí)啟動(dòng)SelfTest模式,芯片在工作之前先完成內(nèi)部自檢。
MMA7361L三軸加速度傳感器實(shí)現(xiàn)角度測試,其核心算法是建立輸出電壓和角度之間的函數(shù)映射關(guān)系。零傾斜角度的選擇對于測量儀的精度影響比較大,本文先以MMA7361L傳感器X軸方向的傾角計(jì)算為例加以說明,Y軸、Z軸的角度測量方法類似。在本文中取傳感方向x軸與重力加速度g垂直時(shí)的狀態(tài)為零傾斜角度,當(dāng)傾角為θ時(shí),x軸方向傾角測量圖示如圖4所示。
傳感方向x軸方向的重力加速度分量是g1(θ)=gsinθ,當(dāng)θ→0時(shí)有:
可以看到,當(dāng)傾斜角θ為一個(gè)小角度時(shí),其角度的變化率(即導(dǎo)數(shù))越大并趨向于g,這樣有助于提高小角度測量的分辨率,因此該零傾斜角度的選擇方式有助于小角度的測量。由于傳感器的加速度分量與其電壓成正比,且精度是800mV/g,因此傾角。
在算法分析的基礎(chǔ)上,該加速度傳感器的角度測試的驅(qū)動(dòng)程序得以實(shí)現(xiàn)。其核心部分可以用如下代碼實(shí)現(xiàn):
Y軸、Z軸的角度也可以用類似的方法得到。另外為了便于系統(tǒng)管理,軟件部分采用實(shí)時(shí)精簡的嵌入式操作系統(tǒng)μC/OS-II,可以將角度測量、鍵盤、顯示作為若干個(gè)任務(wù)進(jìn)行管理。
3、結(jié)語
本文論述了一種基于MMA7361L的高精度智能角度測量儀的設(shè)計(jì)與實(shí)現(xiàn)方法,構(gòu)建了角度測量儀的軟硬件平臺(tái),同時(shí)對MMA7361L角度檢測算法進(jìn)行了詳細(xì)的介紹,并給出了實(shí)現(xiàn)代碼。實(shí)驗(yàn)測試證明,該測量儀具有高精度和良好的可靠性,且成本低,應(yīng)用前景非常廣闊。