# 使用BMP180測量氣壓值與高度 ## 研究目的與目標 ### 引言 - 為了更了解第一代航電板,學長建議我從當中的零件(BMP 280)開始探討,藉由撰寫氣壓計程式的過程中,熟悉arduino的語法 - 因為手邊材料的緣故,使用BMP180取代BMP280 ### 研究目的 - 熟悉arduino程式語法 - 寫出程式並利用BMP180測量氣壓,並能準確地偵測到物體上升或下降 - 將測量到的氣壓值轉換成所在高度 --- ## 研究內容 ### 研究材料 - arduino UNO Atmega328 - 杜邦線 - 氣壓計(BMP180)  - 麵包板  --- ### arduino library - <SFE_BMP180.h> 下載點: https://github.com/LowPowerLab/SFE_BMP180 - Wire.h #### SFE_BMP180.h 函式 1. 偵測氣壓值 char getPressure(double &P, double &T); returns 1 成功運作,returns 0 代表失敗 2. 命令BMP180運作 char startPressure(char oversampling); returns 0 啟動失敗 --- ### arduino UNO 與 BMP180 連接方式  - VIN --> 3.3V - GND --> GND - SCL / SCK - > A5(模擬銷 5) - SDA / SDI - > A4(模擬引腳 4) --- ### 程式碼改良 #### 7/24 1. 改良基準高度會變動的問題(已完成) 將程式碼改成一開始輸入高度值(基準點高度)  2. 改善每次測量間隔過久,從10秒一次改成5秒一次(已完成)  3. 改良氣壓換算高度的公式,目前使用的方法為每上升9公尺,氣壓下降100Pa來換算(未完成) >P0=Ps×10^( h/18400(1+Tm/273) 這個公式的問題在於,Tm需要使用12小時前的溫度值 #### 7/26 1. 修正基準點變動的錯誤  --- ### 測試結果 #### 7/15 - 二樓結果:  - 五樓結果:  #### 7/24  #### 7/26 https://youtu.be/Vul4OVtnbvU  --- ### 待改善內容 1. 高度換算公式 2. 在同一地點,氣壓值不穩定,導致測得高度起起伏伏 --- ### 研究時程 #### 第一階段(7/6~7/18): 收集材料 #### 第二階段(7/18~8/8): 學習Arduino語法與程式碼的調整 #### 第三階段(8/8~8/22): 戶外降落測試 --- ### 會議內容及學長建議的改良方法 #### 7/13社團會議 - 因為杜邦線的品質不一,利用麵包板接線到arduino比較穩定 - 下周生出時程表 - 題目內容較小 未來朝著其他方向發展 #### 7/18航電組會議 - 在二樓以及五樓測得的海平面氣壓不同(library內建函式),學長說大部分是使用前輸入基準的數值,可以將程式碼改成輸入的 - 閱讀別人寫好的程式碼也是個學習的好方法 #### 7/27社團會議 - 氣壓換算公式: https://en.wikipedia.org/wiki/Barometric_formula - bmp180以及bmp280library內的濾波公式,可以研究看看 ### 延伸學習內容 - [排除雜訊: Kalman filter]( https://hackmd.io/@8DvLSderTbe8QRjE9xlYvA/B1D7Fh0yK)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up