一. 软件准备

  1. 下载链接:STM32CubeProgrammer (用来烧录PX4的bootloader和固件)
  2. 下载链接: QGroundControl(用来烧录PX4固件并调试无人机)

二. 硬件准备

1.主控: 微空MicoAir743 购买链接
2.电调: E45-HF32电调32位 购买链接
3.GPS+外置罗盘: 微空M10G-5883 购买链接
4.接收机: ELRS 2.4G NANO RX FPV 购买链接
5.遥控器: 鲨伯Sub250 TinyRadio ELRS2.4G 购买链接
6.机架:FPV MAK5 购买链接
7.无刷电机: 丰云无刷 购买链接
8.桨叶: GEMFAN乾丰桨叶51466V2 购买链接
9.电池: VINNER威能6S1300MAH160C 购买链接
飞控的详细信息与外设连接位置

三. PX4 环境配置

首先确保电脑里有虚拟机或者使用WSL等工具,在电脑里配置Linux系统,我使用的是WSL + Ubuntu22.04LTS。

第一步:更新系统并安装基础工具
首先确保 Ubuntu 系统的软件包是最新的,并安装 git

sudo apt update && sudo apt upgrade -y
sudo apt install git make cmake -y

第二步:拉取 PX4 稳定版源码
【使用 PX4 v1.16 或更高版本时,我一直遇到无人机避障模块固件缺失的警告,使用 QGC Daily 版本可以避免此警告,但是为了方便,所以还是使用比较成熟的 v1.15 版本】
在这里插入图片描述

v1.15 版本无微空MicoAir743的板载配置文件,所以还是使用 v1.16

# 回到用户根目录
cd ~

# 克隆 v1.16.1 版本的源码(--recursive 参数用于拉取所有子模块)
git clone https://github.com/PX4/PX4-Autopilot.git --recursive -b v1.16.1

# 进入源码目录
cd PX4-Autopilot

由于包含大量子模块,这一步受网络影响较大,请确保网络稳定且耐心等待。

第三步:运行官方环境安装脚本
PX4 提供了一个自动化脚本,专门用于在 Ubuntu 上配置交叉编译器(ARM GCC)和 Python 依赖。

# 运行安装脚本
bash ./Tools/setup/ubuntu.sh

执行此脚本时,脚本会自动下载配置 arm-none-eabi-gcc 编译器以及各种编译所需的 Python 库。过程大约需要 5-15 分钟。如果出现以下报错:

[notice] A new release of pip is available: 25.3 -> 26.0.1
[notice] To update, run: python3 -m pip install --upgrade pip
ERROR: Invalid requirement: 'matplotlib>=3.0.*': .* suffix can only be used with `==` or `!=` operators
    matplotlib>=3.0.*
              ~~~~~~^ (from line 11 of /home/crayon/PX4-Autopilot/Tools/setup/requirements.txt)

是因为新版本的 pip 强制执行了更严格的 PEP 440 版本号匹配规范,不再允许使用 >=3.0.* 这种带有 .* 后缀的语法。PX4 源码的 requirements.txt 文件里刚好有这一行,直接被 pip 拦截报错,导致 Python 依赖库安装被中断。按如下方法解决:

# 替换文件内错误语法
sed -i 's/matplotlib>=3.0.\*/matplotlib>=3.0/g' Tools/setup/requirements.txt

# 重新运行脚本文件
bash ./Tools/setup/ubuntu.sh

第四步:重启 WSL 以应用环境变量

  1. 关闭当前的 WSL 终端窗口。
  2. 打开 Windows 的 PowerShell(或 CMD),输入以下命令强制彻底关闭 WSL:
wsl --shutdown
  1. 重新打开 WSL Ubuntu 终端。( 如果使用的是原生 Linux 设备,就直接重启吧。)

验证环境是否搭建成功:
重新打开 WSL 后,直接在终端输入:

arm-none-eabi-gcc --version

如果输出显示了编译器的版本号(如 10.3.1 或 9.x),说明底层环境已彻底就绪。

四. 固件编译

1. 修改编译配置文件 (.px4board)
这个文件决定了底层编译时,会将哪些传感器驱动打包进飞控的 Flash 存储中。
文件路径: boards/micoair/h743-v2/default.px4board
修改操作: 打开该文件,可以直接在文件最末尾新起一行,添加配置,启用QMC5883L(罗盘) 的驱动:

CONFIG_DRIVERS_MAGNETOMETER_QMC5883L=y

2. 修改初始脚本文件 (rc.board_sensors)
这个脚本用来进行飞控系统中初始化各类传感器驱动。
文件路径: boards/micoair/h743-v2/init/rc.board_sensors
修改操作: 目前不需要修改

3. 编译 Bootloader
执行以下命令,专门针对微空 H743 V2 硬件生成引导程序:

make micoair_h743-v2_bootloader

编译成功后,生成的文件存放于以下路径:
build/micoair_h743-v2_bootloader/micoair_h743-v2_bootloader.bin
(注:因为准备进行全片擦除,此 .bin 文件稍后将使用 STM32CubeProgrammer 烧录,STM32H7 芯片的 Bootloader 起始地址为 0x08000000。)

4. 编译飞控主固件
执行以下命令,编译包含自定义传感器和接收机配置的主固件:

make micoair_h743-v2_default

编译成功后,生成的固件文件存放于以下路径:
build/micoair_h743-v2_default/micoair_h743-v2_default.px4
(注:此 .px4 文件可以直接在 QGroundControl 固件刷写界面选择“高级设置 -> 自定义固件文件”进行本地烧录。)

五. 固件烧录

在烧录之前,先将飞控上外接的 TF 卡进行格式化处理,格式成 FAT32 的格式

1.飞控进入 DFU 烧录模式
在未通电的情况下,按住飞控板上的 BOOT 按键不放。随后使用 Type-C 数据线将飞控连接至电脑 USB 接口。连接成功后即可松开 BOOT 键。让飞控进入待烧录状态,成功后有如下显示:

在这里插入图片描述

2.全片擦除

  1. 打开软件 STM32CubeProgrammer。
    在软件右侧的连接方式下拉菜单中选择 USB,在 Port 栏点击刷新按钮,选择识别到的 USB1,然后点击 Connect 。此时连接上飞控:
    在这里插入图片描述

  2. 连接成功后,点击左侧边栏的“橡皮擦”图标(Erasing & Programming),找到并勾选 Full chip erase,点击 Erase 按钮。等待日志窗口提示 Mass erase successfully achieved,这代表芯片内部已经被彻底清空。
    在这里插入图片描述

3. 烧录 Bootloader

  1. 确保界面上的 Start address(起始地址)的值为 0x08000000;
    通过 Open file 找到 micoair_h743-v2_bootloader.bin 文件并打开
    在这里插入图片描述
  2. 再点击 Download 进行 Bootloader 固件烧录
    在这里插入图片描述
  3. 完成后将飞控与电脑断连

4. 烧录 PX4 主固件
在成功烧录 Bootloader 后,飞控已经具备了接收 PX4 固件的能力。接下来使用 QGroundControl (QGC) 烧录刚刚编译好的主固件。

  1. 进入 QGC 刷写界面
    在这里插入图片描述
    在这里插入图片描述
  2. 在固件这个界面,使用 Type-C 数据线将飞控直接连接到电脑(此次连接无需按住 BOOT 键)。
    QGC 会自动识别到飞控进入 Bootloader 模式,并弹出固件选择界面。
    勾选界面右侧的 Advanced settings (高级设置)。
    在出现的下拉菜单中选择 Custom firmware file… (自定义固件文件…),然后点击右上角的 OK。
    在这里插入图片描述
  3. 在弹出的文件选择窗口中,找到并选中 micoair_h743-v2_default.px4 文件。
    在这里插入图片描述
  4. 等待烧录完成。提示 Upgrade complete 后,飞控会自动重启发出提示音,并与 QGC 建立连接。
    在这里插入图片描述
  5. 固件烧录已经完成。

5. 参数修改

  1. 点开参数,找到 Serial 将配置按照如下图所示进行修改,然后点击右侧的工具。(不过我使用的接收机是CRSF协议,如果说用的是SBUS则不能按照以下配置修改)
    在这里插入图片描述
  2. 选择 重启飞行器在这里插入图片描述

六. 无人机校准及通道设置

传感器和遥控器根据 QGC 的提示进行校准即可。
电调校准分成三步。(插上电源调试时,务必卸除 桨叶!!!

  1. 寻找MAIN 1-4 对应的真实电机位置
    操作:(图框 1)在 QGC 中将 MAIN 1-4 依次映射为 Motor 1-4(1对1对应)。
    目的:(图框 2)逐一推移滑块,记录每个 MAIN 端口对应电机的实际物理位置(如:推动 Motor 1 滑块,发现左后电机转动,即记下 MAIN 1 = 左后)。
  2. 逻辑映射
    操作: 对照 PX4 标准模型(如 Quad X:右前1、左后2、左前3、右后4),修改 MAIN 端口的 Function。
    目的:将物理位置绑定到正确的逻辑编号(如:既然 MAIN 1 在左后,就将其功能改为 Motor 2)。
  3. 方向对齐
    操作: 观察各电机的实际物理转向。
    目的: 在地面站模型中,根据实际转向勾选或取消 CCW 选项。确保模型上的箭头方向与物理电机的真实转向完全一致。
    在这里插入图片描述
    最后将遥控器对应的通道与对应模式相对应,就可以成功起飞了。至于对应通道的选择,看个人爱好。
    在这里插入图片描述
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐