Ardupilot
編譯與燒錄Ardupilot的基本教學
韌體編譯
0. 前置條件
作業系統為Ubuntu或Windows WSL
1. 構建 Ardupilot 開發環境
Ardupilot是一個開源的飛控韌體,主要用於無人機和遙控飛行器。以下是構建 Ardupilot開發環境的步驟:
2. 複製Ardupilot Github儲存庫
開啟終端。
執行以下命令以複製 Ardupilot 儲存庫:
git clone --recurse-submodules https://github.com/ArduPilot/ardupilot.git進入儲存庫目錄:
cd ardupilot執行Ardupilot開發環境配置腳本,等待安裝完成:
Tools/environment_install/install-prereqs-ubuntu.sh -y
重新讀取路徑:
. ~/.profile登出後再登入以儲存設定
3. 編譯 Ardupilot 韌體
先將工作目錄切換到Ardupilot儲存庫中
執行以下命令進行韌體編譯:
將 Board Name替換為飛控板的具體名稱。

編譯成功後會出現以下訊息

編譯的韌體位置在build/<Board Name>/bin底下,包含僅含Ardupilot韌體檔案(ardupilot.bin, ardupilot.apj)與包含bootloader的Ardupilot韌體檔案(ardupilot_with_bl.hex)

韌體燒錄
燒錄Ardupilot韌體目前提供兩種方法
此方法應用於已安裝PX4或Ardupilot的韌體
飛控板使用USB連接到電腦。
開啟Mission Planner,開啟初始配置,注意不需要按下連線

按下想要燒錄的韌體(例如Copter),按下Yes

燒錄中

燒錄完成

按下右上角連線,回到飛行數據,有姿態以及飛行數據表示燒錄完成

此方法可以應用於原先安裝Betaflight或其他非PX4與Ardupilot的韌體
先下載並安裝STM32CubeProgrammer,下載來源
飛控板開啟DFU模式,USB 連接到電腦。
開啟STM32CubeProgrammer,選擇USB並按下Connect,連線到飛控板

按下Open file,開啟包含bootloader的檔案


下載/燒錄韌體到飛控板上

燒錄中

完成下載/燒錄
燒錄完成

開啟Mission Planner,連線到飛控

如何編譯自定義的飛控板
確認已經成功配置Ardupilot開發環境
移動到ardupilot/library/AP_HAL_ChibiOS/hwdef中,複製已經存在的飛控板定義,重新命名新飛控板名稱的資料夾,此處以Morakot為例。

修改hwdef.dat(不含Bootloader的版本)與hwdef-bl.dat(含Bootloader的版本)

修改其中的內容,根據實際板子所使用的腳位定義與接線,撰寫自己的飛控板配置

修改完畢後,開啟終端機,切換到ardupilot儲存庫的資料夾
首先,編譯新飛控板的Bootloader,此步驟不可跳過。:
./Tools/scripts/build_bootloaders.py <Board Name>
接著配置Ardupilot韌體編譯設定,此時還不會編譯,此步驟不可跳過。
./waf configure --board <Board Name>
接著編譯Ardupilot韌體,此步驟不可跳過。
./waf copter
編譯完成的Ardupilot韌體將會位於ardupilot/build/<Board Name>/bin裡面

Last updated