探索 RP2350B 作為搭載 BetaFlight 的飛行控制器平台,從硬體選擇到室內飛行測試
Raspberry Pi Pico 2(RP2350B)為飛行控制器開發提供了一個吸引人的組合:雙 ARM Cortex-M33 核心、520 KB SRAM,以及支援 ThreadX 和 NuttX RTOS。但關鍵問題是 BetaFlight — 歷史上以 STM32 為基礎 — 能否在上面良好運行以進行實際飛行。
我們在 BetaFlight 的 config 儲存庫中找到了 HELLBENDER_0001 板子配置。HellBender 是一家專注於電腦視覺即服務(CVaaS)的美國公司,他們的 RP2350A 開發板包含了一個有趣的 MCU 選擇:MAX7456 用於在影片串流上疊加螢幕顯示。這在 FPV 領域是一個熟悉的概念 — 在沒有數位傳輸時,將遙測資料直接疊加在影片畫面上的簡單方法。
HELLBENDER_0001 配置揭示了一個重要細節:它使用 GPIO32 到 GPIO48,這些只有在 RP2350B 變體上可用,原始的 RP2350A 只有 GPIO0-GPIO31。這意味著標準 Pico 2 無法直接使用 — 我們需要重新配置針腳映射,或改用 RP2350B 開發板。
為 HELLBENDER_0001 配置編譯 BetaFlight 的速度令人驚訝:
FLASH: 340,186 B / 4,032 KB (8.24%)
RAM: 383,016 B / 512 KB (73.05%)
編譯在約 33 秒內完成。閃存使用非常保守 — RP2350B 的 4 MB 外部閃存(或 2 MB 內部)有充足的餘量。
我們基於 Raspberry Pi 硬體設計指南中的 RP2350B 最小系統設計打造了 FMU2350 板子,並擴展為飛行控制器所需的連接器和週邊設備。電源設計繼承自 RP2350B mini 板,因此這部分已經過驗證。
出現了三個潛在方向:
在使用 Pico 開發的同時,我們也追蹤了並行的市場發展。DJI Neo 無人機的拆解揭示了有趣的设计選擇,而 Google 的 Pigweed 嵌入式框架新增了 Pico 2 支援。Pigweed — 原本是 Google 內部專案 — 現在出貨於數百萬台裝置,包括 Pixel 手機、Nest 恆溫器、衛星和自動送貨無人機。
對於簡單的專案,Earle F. Philhower 的 Arduino-Pico 框架仍然是我們的首選路徑。它編譯速度極快,並能立即存取 Pico 的完整週邊集。
在開發期間,我們也探索了使用 ESP32-C2-M1 晶片作為飛行控制器上的 WiFi 序列橋接器。對於帶有螺旋槳護罩的室內 cinewhoop 無人機,手動飛行模式搭配光學懸停提供了飛行員控制和穩定性之間的良好平衡。
例如,PMW3901 光學流感測器需要 SPI 而不是 UART 才能達到有意義的資料速率 — 它的 35x35 快取記憶體對於 UART 在有用頻率下來說太大。這加強了从零設計飛行控制器時需要仔細規劃週邊設備的重要性。
RP2350B 平台前景可期但仍在 BetaFlight 生態系中逐漸成熟。下一步是 PCB 製造和硬體啟動 — 從基本功能開始(IMU 偵測、馬達輸出、接收器輸入),然後逐步新增光學流感測器和 GPS 等週邊設備。