空速計設定

空速計是定翼機(Plane / VTOL)飛行不可或缺的感測器,提供相對於空氣的速度資訊。SparkNavi Blue 同時支援類比空速計數位空速計(I2C)。


類比空速計設定

硬體接線

將類比空速計接於 SparkNavi Blue 的 ADC 連接器:

Pin 信號 接到空速計
1 +5V VCC
2 ADC OUT(類比訊號)
3 GND GND

MPXV7002DP 類比空速計模組

連接器上的「ANA」即 analog 訊號輸出腳,對應飛控的 ADC 輸入。

ArduPilot 參數設定

參數 數值 說明
ARSPD_TYPE 2 (Analog) 類比型態
ARSPD_PIN 18 SparkNavi Blue 專屬類比腳位
ARSPD_USE 1 啟用空速計用於控制

⚠️ ARSPD_PIN = 18 的由來:對應 SparkNavi Blue 上的 PA4(ADC1_6V6_IN),即 ADC1 的 PIN 18。Mission Planner 下拉選單中可能不會出現 18 這個選項,直接手動輸入即可

校正

  1. 設定完上述參數
  2. 重啟飛控
  3. 用嘴對著皮托管(Pitot Tube)的 Dynamic 孔輕吹,Mission Planner HUD 上的 AS(Airspeed)應有變化即代表設定成功

數位空速計設定(MS5525)

硬體接線

將 MS5525 數位空速計接於 SparkNavi Blue 的 I2C 外部埠:

Pin 信號
1 +5V
2 I2C2_SCL
3 I2C2_SDA
4 GND

Pitot 管路接法

以下圖為例,Static(靜壓)接皮托管的側孔,Dynamic(動壓)接皮托管的前端孔:

Static 與 Dynamic 對應

ArduPilot 參數設定

ARSPD_BUS  = 0
ARSPD_OPTIONS  = 15
ARSPD_PIN  = 18
ARSPD_TYPE = 5  (I2C-MS5525, 0x77)

詳細參數表:

ARSPD 完整參數

為何 ARSPD_BUS = 0?

SparkNavi Blue 的 hwdef 設計中,I2C2 設為第一順位(因為外接 I2C 設備優先級高)。所以 ARSPD_BUS = 0 對應的是物理上的 I2C2 外部埠,不是 0 號就一定是 I2C0

I2C 位址衝突注意

  • SPL06 氣壓計的 I2C 位址是 0x76
  • MS5525 預設 I2C 位址也是 0x76 → 與 SPL06 衝突
  • 將 MS5525 改成 0x77 以避免衝突
  • 若使用其他飛控不會有 SPL06,則 MS5525 用 0x76 即可

數位空速計校正流程

設定完參數後,進行校正:

1. 清除既有校正值

ARSPD_SKIP_CAL = 0    ← 暫時關閉跳過校正
ARSPD_OFFSET   = 0    ← 清空既有 offset

按 Write Params 存檔。

2. 進行校正

  1. 按住皮托管的 Pitot tube 開口(讓空氣不要進去)
  2. 讓 SparkNavi Blue 重新開機(Reboot)
  3. 開機後查看 Mission Planner HUD,AS 數值應為 0 m/s

3. 確認校正完成

於參數頁面查看,如果 ARSPD_OFFSET 已自動填入非 0 數值,代表校正成功。

4. 鎖定校正

ARSPD_SKIP_CAL = 1    ← 開啟跳過校正,後續啟動沿用本次校正值

HUD 顯示驗證

校正完成後,於 Mission Planner HUD 左上角應該能看到 AS(Airspeed)即時數值:

HUD AS 數值顯示

對著皮托管 Dynamic 孔吹氣,AS 數值應該即時變化(例如 12.5 m/s)。


常見問題

Q: 設定後 AS 一直為 0?

A: 檢查: 1. ARSPD_USE = 1 是否啟用 2. I2C 接線是否正確 3. 皮托管的 Static 與 Dynamic 接管沒有接反 4. 數位空速計 I2C 位址是否與其他模組衝突(改 0x77)

Q: 為何重啟後 ARSPD_OFFSET 沒有自動填入?

A: 校正流程必須是 「先關閉風流 → 再重啟」,順序錯誤會失敗。

Q: AS 與 GS(地速)差異很大?

A: 那是有風的影響(逆風時 AS > GS,順風時 AS < GS)。這是正常現象 — 空速計量的是相對於空氣的速度,GPS 量的是相對於地面的速度。


進階參考