基于氣壓傳感器的高度測量系統(tǒng)設(shè)計_第1頁
基于氣壓傳感器的高度測量系統(tǒng)設(shè)計_第2頁
基于氣壓傳感器的高度測量系統(tǒng)設(shè)計_第3頁
基于氣壓傳感器的高度測量系統(tǒng)設(shè)計_第4頁
基于氣壓傳感器的高度測量系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

摘要:本文介紹了一種基于氣壓傳感器的高度測量系統(tǒng)設(shè)計。系統(tǒng)通過Arduino微控制器讀取傳感器BMP085的溫度、氣壓值及溫度補償校正參數(shù);利用溫度、氣壓和海拔高度的關(guān)系結(jié)合軟件編程及插值優(yōu)化計算出海拔髙度或相對海拔髙度;在LED屏上顯示當前溫度、氣壓、海拔高度或相對海拔高度值。整個系統(tǒng)集傳感器和微控制器一體,具有結(jié)構(gòu)精簡、靈敏度髙、低功耗、體積小、智能化、操作簡單等特點。關(guān)鍵詞:氣壓傳感器、線性插值、髙度測量0引言當前對海拔髙度的測量主要的方式有利用GPS的測量,采用儀器的測量和基于氣壓的海拔髙度測量三種方式。GPS精度能達到要求但成本較髙;儀器的測量因體積大攜帶不方便;相比較而言,采用微控制器的基于氣壓傳感器髙度測量系統(tǒng)在靈敏度、體積、成本、智能性等方面更符合實用要求。該系統(tǒng)采用Arduino微控制器利用溫度、氣壓值等傳輸參數(shù)經(jīng)過處理后將大氣壓值轉(zhuǎn)換成海拔髙度值。經(jīng)實驗得出該系統(tǒng)得到的數(shù)據(jù)能夠滿足實際需求,在便攜氣象儀系統(tǒng)、低空飛行器系統(tǒng)、氣象控制系統(tǒng)等諸多領(lǐng)域有廣泛的應(yīng)用前景。1系統(tǒng)硬件設(shè)計系統(tǒng)硬件部分由Arduino微控制器、供電模塊、LED顯示模塊、數(shù)字氣壓傳感器BMP085以及外圍電路組成。如圖1所示:圖1氣壓高度計硬件系統(tǒng)框圖氣壓傳感器BMP085通過IIC總線接口和微控制器Arduino相連,從而將溫度、氣壓數(shù)據(jù)傳送到微控制器,經(jīng)過軟件編程將微控制器獲得的數(shù)據(jù)處理得到當前海拔高值或相對海拔高度值,將處理后相對精確的數(shù)據(jù)值再由顯示器輸出。系統(tǒng)的硬件接口布線如下:BMP085:Vcc-3.3v,GND-GND,SDA-ArduinnoSDA,SCL-ArduinoSCL1602:Vcc-3.3v,Vss-GND,VL-R(〈10KQ)-GND,RS-ArduinoD12,R/W-ArduinoD11,E-ArduinoD2,D0~D7-ArduinoD3~D10,BLA-3.3V,BLK-GNDArduinomega2560微控制器微控制器是整個系統(tǒng)的控制核心,負責操作按鍵、傳感器數(shù)據(jù)的采集、數(shù)據(jù)運算處理、顯示器驅(qū)動等。本氣壓高度計系統(tǒng)選用Arduinomega2560微控制器芯片,該芯片由意大利Arduino公司出品一個開放源代碼的硬件組成。兼容ATmegal68/328/2560系列內(nèi)核,帶有54個數(shù)字I/O口(其中14個提供PWM輸出),6個模擬I/O口,4對串行數(shù)據(jù)通信(UART),8KBSRAM存儲,4KBEEPROM存儲,256KB閃存(其中8KB用于引導程序),支持3.3V和5V供電以及IIC總線通信和增強型SPI串行接口,能很方便地與外圍設(shè)備進行通信。外圍供電電壓在5V-12V之間,本系統(tǒng)采用9V電源。數(shù)字氣壓傳感器BMP085數(shù)字氣壓傳感器BMP085是一款髙精度、超低能耗的壓力傳感器,可以應(yīng)用在移動設(shè)備中。它內(nèi)部由控制單元、A/D轉(zhuǎn)換模塊、數(shù)據(jù)存儲單元、8-pin陶瓷無引線芯片承載(LCC)超薄封裝。傳感器通過A/D轉(zhuǎn)換模塊以最髙128次/s的速率對溫度氣壓的模擬值采樣轉(zhuǎn)換成數(shù)字信號,控制單元讀取存儲器EEPROM中的11個補償參數(shù)和溫度系數(shù)等。完成采樣后將數(shù)據(jù)通過IIC總線傳送給微控制器,經(jīng)過計算得到當前的溫度值和氣壓值。數(shù)字氣壓傳感器的主要特點:壓力范圍:300——1100hPa(海拔-500米到9000米);電源電壓:1.8V——3.6V(VDDA)1.62V——3.6V(VDDD);髙精度:低功耗模式下,分辨率為0.06hPa(0.5米);髙線性模式下,分辨率為0.03hPa(0.25米)。1.3輸出顯示器輸出電路部分采用標準的1602液晶顯示器。它是一種將液晶顯示器、控制集成電路、PCB板、背光源、結(jié)構(gòu)件裝備在一起的集合。如圖2所示:圖2標準1602液晶模塊主要參數(shù):D0—D7數(shù)據(jù)口、R/W讀寫選擇、RS數(shù)據(jù)/命令寄存器選擇、BLA/BLK背光正/負極、VDD電源、VSS電源地、VL液晶顯示偏壓。2系統(tǒng)軟件設(shè)計系統(tǒng)模塊化結(jié)構(gòu),主要有微控制上的復位按鍵,系統(tǒng)初始化,讀EEPROM中的數(shù)據(jù)溫度和氣壓值,軟件濾波處理,氣壓海拔高度轉(zhuǎn)換,輸出到顯示器等程序,主程序是循環(huán)方式工作。系統(tǒng)流程圖如圖3所示:圖3系統(tǒng)軟件設(shè)計流程圖系統(tǒng)初始化首先系統(tǒng)進行微控制器啟動,對系統(tǒng)I/O口、波特率、時鐘等進行設(shè)置;系統(tǒng)初始化完成之后,Arduinomega2560微控制器按照IIC協(xié)議讀取BMP085氣壓傳感器中存放在EEPROM中的11個16位數(shù)據(jù)組成的溫度補償校正參數(shù),每只傳感器有著唯一的溫度補償校正參數(shù);經(jīng)過溫度補償校正參數(shù)和軟件插值優(yōu)化以后得到當前溫度、大氣壓值進而計算得出所對應(yīng)的海拔高度值或相對海拔高度值,并將溫度、海高度值有效信息送入顯示器輸出。2.2溫度和氣壓的補償系統(tǒng)初始化后對氣壓傳感器BMP085進行操作,微控制器Arduinomega2560將傳感器EEPR0M中的11個16位數(shù)據(jù)組成的補償參數(shù),acl,ac2,ac3,ac4,ac5,ac6,bl,b2,mb,mc,md分別讀取出來為溫度補償準備。此時,再對當前傳感器采樣模式為0SS=0進行原始未補償溫度數(shù)據(jù)(UT)和原始未補償?shù)拇髿鈮毫?shù)據(jù)(UP)的讀取操作。再利用數(shù)字氣壓芯片的補償算法對大氣壓值進行溫度補償,得到當前溫度值(temp)和大氣壓力值(p)。主要算法程序流程如下:floatbmp085GetTemperature(unsignedlongut){floatx1,x2;x1=(((long)ut-ac6)*ac5)>>15;x2=((long)mc<<11)/(x1+md);b5=x1+x2;floattemp=((b5+8)>>4);temp=temp/10;returntemp;}floatbmp085GetPressure(unsignedlongup){longx1,x2,x3,b3,b6,p;unsignedlongb4,b7;b6=b5-4000;//CalculateB3belowx1=(b2*(b6*b6)>>12)>>11;x2=(ac2*b6)>>11;x3=x1+x2;b3=(((((long)ac1)*4+x3)<<0SS)+2)>>2;//CalculateB4belowx1=(ac3*b6)>>13;x2=(b1*((b6*b6)>>12))>>16;x3=((x1+x2)+2)>>2;b4=(ac4*(unsignedlong)(x3+32768))>>15;b7=((unsignedlong)(up-b3)*(50000>>0SS));if(b7<0x80000000)p=(b7<<1)/b4;elsep=(b7/b4)<<1;x1=(p>>8)*(p>>8);x1=(x1*3038)>>16;x2=(-7357*p)>>16;p+=(x1+x2+3791)>>4;returnp;}2.3海拔高度計算數(shù)字氣壓傳感器BMP085對氣壓海拔髙度提供了參考公式,利用該公式配合傳感器采集到的氣壓值以及溫度補償值較好地得出海拔髙度,公式如下Altitude=44330*[l-(p/P0廠(1/5.255)](1)式中Altitude是以米(m)為單位的海拔髙度值;p以Pa為單位的當前某一髙度的大氣壓值;P0為15°C時101325Pa海平面標準大氣壓值。將其值代入方程計算得到相應(yīng)海拔髙度(縱坐標m)和大氣壓(橫坐標Pa)關(guān)系曲線。如圖4所示:圖4大氣壓和海拔髙度曲線關(guān)系圖從圖4中可以看出:大氣壓和海拔髙度在0到6000米之間幾乎成線性關(guān)系,但隨著變化關(guān)系比較復雜,微處理器直接計算算法程序復雜、速度慢、資源占用較多。因此,在實際設(shè)計過程中,在系統(tǒng)允許誤差范圍內(nèi)對原始數(shù)據(jù)進行插值優(yōu)化處理,假設(shè)系統(tǒng)輸入為p,并且p(i)〈p〈p(i+l)時,在此區(qū)間內(nèi)可近似認為系統(tǒng)的輸入/輸出的關(guān)系為線性關(guān)系P(p)=a0+a1*p,其插值公式為:P(p)=y(i)+(y(i+1)-y(i))/(p(i+1)-p(i))(2)國際標準大氣壓數(shù)據(jù)表記錄了-100~20000m之間每隔一段髙度所對應(yīng)的氣壓值。每個氣壓數(shù)據(jù)p(i)和所對應(yīng)髙度數(shù)據(jù)點y(i),P(p)為系統(tǒng)要測量的髙度值。將數(shù)據(jù)離散化制作成一個大氣壓值和海拔髙度值對應(yīng)查詢表,并放入到微控制器內(nèi)存中,再根據(jù)測量得到的大氣壓值進行查表,從而確定對應(yīng)的海拔髙度值。3實驗結(jié)果基于該系統(tǒng)于14年11月12讓下午5時對某樓層樓層髙度測量,并多次測量取海拔髙度值并計算得出相對海拔髙度值并與實際值比較,實驗所得數(shù)據(jù)結(jié)果如下表1所示。對象樓層樓道溫度值/r樓道氣壓值/Pa測量相對地面髙度值/m與真實樓層髙誤差絕對值/m2樓15.8197111.175.28270.28273樓15.6397065.009.27800.27804樓15.4297014.8313.30920.30925樓15.1996974.1416.30180.19826樓14.8796922.1720.28140.2814表1實驗數(shù)據(jù)結(jié)果由上表1可看出樓層相對地面海拔髙度平均誤差為0.2699m。實驗測量結(jié)果表明該系統(tǒng)測量值和真實值差距在誤差范圍(0.25m-0.5m)內(nèi),效果良好,基本滿足了測量要求。4結(jié)束語實驗結(jié)果表明本文設(shè)計實現(xiàn)了計算海拔高度或相對海拔高度的測量?;跉鈮簜鞲衅鰾MP085及微控制器通過簡單的電路和有效的軟件算法技術(shù)處理,具有較高的靈敏度和穩(wěn)定性,適用于精度比較高,體積小,成本低,操作簡單的設(shè)備中。本文研究結(jié)果在實際生活中具有廣泛的應(yīng)用前景。參考文獻:U.S;SimonMonk;《30ArduinoProjectsfortheEvilGenius》;2010byTheMcGraw-HillCompanies。U.S;MichaelMcRoberts;《BeginningArduino》;2010byMichaelMcRoberts。程晨,《Arduino開發(fā)實戰(zhàn)指南》,機械工業(yè)出版社。殷希梅,楊維,程洪濤;基于BMP085數(shù)字氣壓傳感器的彈上髙度測量系統(tǒng)設(shè)計;彈箭與制導學報

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論