2. 飞控固件刷写
说到飞控固件刷写,很多新手第一反应就是「刷个固件嘛,点几下鼠标的事」。嗯,表面上看确实是这样。但我在项目里见过太多因为固件选错、刷写中断导致飞控变砖的案例了。今天咱们就把这事掰开揉碎了讲清楚。
固件选择:ArduPilot 还是 PX4?
这俩是当前最主流的开源飞控固件。我个人的习惯是:先看硬件,再看任务。
| 对比项 | ArduPilot | PX4 |
|---|---|---|
| 硬件支持 | 极广,从Pixhawk到树莓派都行 | 主要支持Pixhawk系列 |
| 上手难度 | 较低,文档丰富 | 中等,需要理解内部架构 |
| 航点规划 | Mission Planner原生支持,非常成熟 | QGroundControl,功能稍弱 |
| 实时性 | 中等 | 较高,适合高速无人机 |
| 社区活跃度 | 极高,论坛回复快 | 较高,但偏向开发者 |
说白了,如果你做测绘、植保、巡检这类常规任务,ArduPilot 是首选。我最早做农业无人机项目时,用的就是 ArduPilot + Mission Planner 的组合,航点规划那叫一个顺手。
但如果你搞的是竞速机、穿越机,或者对实时控制要求极高的场景,PX4 更合适。我记得有个做编队飞行的朋友,死活调不好 ArduPilot 的编队模式,换成 PX4 后一周就搞定了。
刷写步骤:Mission Planner 实操
好,假设你选了 ArduPilot。咱们开始刷写。我以 Pixhawk 为例,其他飞控大同小异。
- 连接飞控:用 USB 线连电脑。注意,有些飞控需要先上电再插 USB,否则可能识别不到。我遇到过好几次这种坑。
- 打开 Mission Planner:点击顶部菜单「初始设置」→「安装固件」。
- 选择固件版本:这里会列出各种飞控型号。找到你的板子,比如「Pixhawk1」。然后选固件版本——我个人习惯用最新稳定版,别追 beta 版。
- 开始刷写:点击「上传固件」。这时候飞控的蓝灯会开始闪烁,表示正在写入。
- 等待完成:大概 1-3 分钟。刷完后飞控会自动重启,Mission Planner 会提示「固件上传成功」。
刷写失败后的救砖方法
为什么会刷写失败?最常见的原因就三个:USB 线质量差、供电不稳定、刷写过程中不小心拔了线。
一旦变砖,飞控灯不亮或者一直闪红灯。别慌,我教你几招。
方法一:强制进入刷写模式
大部分飞控都有一个「安全按钮」或「bootloader 按钮」。以 Pixhawk 为例:
- 按住飞控上的安全按钮(小按钮)
- 保持按住,然后插 USB 上电
- 等 2 秒后松手
- 这时候飞控应该进入 bootloader 模式,Mission Planner 就能重新识别了
方法二:使用命令行工具
如果 Mission Planner 死活连不上,可以用命令行工具直接刷。我常用的工具是 px_uploader.py(ArduPilot 官方提供)。
# 先找到飞控的串口号(Windows 下是 COM3 之类的)
# 然后执行:
python px_uploader.py --port COM3 --baud 115200 firmware.hex
嗯,这里要注意:波特率不一定都是 115200,有些老飞控用 57600。我曾经因为波特率设错,折腾了半小时才发现。
方法三:短接复位
这是最后的办法。如果你连 bootloader 都进不去,可能是 bootloader 本身坏了。这时候需要:
- 拆开飞控外壳
- 找到主控芯片(STM32 系列)的 BOOT0 和 BOOT1 引脚
- 用镊子短接 BOOT0 到 3.3V
- 重新上电,这时候芯片会从系统存储器启动
- 用 STM32 Flash Loader 工具重新烧录 bootloader
知识体系总览
下面这张图帮你理清整个固件刷写的逻辑脉络:
最后说一句:刷写固件这事,多练几次就熟了。我第一次刷变砖的时候也慌得不行,后来发现只要 bootloader 没坏,基本都能救回来。嗯,今天就到这,下次咱们聊航点规划的具体参数设置。