# 使用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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.