4. 硬件准备与安全检查

好,咱们正式开始聊ArduPilot。这一章我打算先给你搭个框架——说白了,就是让你知道ArduPilot到底是个什么东西,它怎么工作的,以及你该用哪个版本。

很多新手一上来就急着连飞控、调参数,结果连固件类型都选错了,折腾半天飞不起来。嗯,咱们先把地基打牢。

4.1 ArduPilot架构简介

ArduPilot不是一套死板的代码,它更像一个模块化的飞行大脑。我个人习惯把它分成三层来看:

  • 硬件抽象层(HAL):负责跟具体的硬件打交道。不管你是用Pixhawk、Cube还是自己画的板子,只要HAL层写好了驱动,上层代码几乎不用改。
  • 核心库层:包括EKF(扩展卡尔曼滤波器)、导航、控制律、MAVLink通信协议等。这些是算法的核心,跟硬件无关。
  • 应用层:也就是具体的飞行模式、任务规划、电调校准这些功能。你平时在Mission Planner里点的那些选项,最终都会调用这一层的逻辑。

我遇到过不少开发者,自己改代码时直接在应用层里写硬件操作,结果换个飞控板就炸了。记住:别绕过HAL层,这是ArduPilot跨平台的关键。

核心逻辑:ArduPilot的架构设计目标就是「一次编写,到处运行」。你写的应用代码,理论上可以在任何支持的硬件上跑。

下面这张图能帮你快速理解这三层的关系:

ArduPilot 三层架构图 应用层(Application Layer) 飞行模式 · 任务规划 · 电调校准 · 参数调优 用户直接交互的功能模块 核心库层(Core Library Layer) EKF · 导航 · 控制律 · MAVLink · 参数系统 算法与协议的核心实现 硬件抽象层(HAL) GPIO · I2C · SPI · UART · PWM · ADC 屏蔽硬件差异,提供统一接口 提示:修改代码时请遵守分层原则,不要跨层调用硬件接口

4.2 Mission Planner地面站介绍

Mission Planner(简称MP)是ArduPilot最经典的地面站软件。你想想看,飞控在天上飞,你在地上总得有个东西跟它说话吧?MP就是干这个的。

它的核心功能我列一下:

  • 固件下载与烧录:选择飞控板型号,一键刷写固件。
  • 参数读写与调优:所有飞控参数都能在这里改,实时生效。
  • 实时数据监控:姿态、GPS、电压、电流……飞控的所有状态都能看到。
  • 任务规划:在地图上点几个航点,飞控就能自动飞过去。
  • 电调校准:嗯,这就是咱们这门课的核心操作之一。
  • 日志分析与回放:飞机炸了?别急,先看看日志再说。

我的习惯:我一般会在电脑上同时装两个版本——一个稳定版用于日常调试,一个最新测试版用来尝鲜新功能。但千万别用测试版去飞真机,我吃过这个亏。

MP的界面乍一看有点乱,但用熟了你会发现它布局很合理。左侧是功能树,中间是地图或数据面板,右侧是操作按钮。你只需要记住:所有跟电调相关的操作,都在「初始设置」→「可选硬件」→「电调校准」里。

4.3 固件版本选择

这个问题我几乎每次培训都会被问到:「到底该刷哪个版本?」

ArduPilot的固件版本命名其实挺清晰的:

版本类型 命名规则 适用场景 稳定性
稳定版 Copter-4.5.x 正式飞行、量产、教学 ★★★★★
测试版 Copter-4.6.0-beta1 功能验证、兼容性测试 ★★★☆☆
开发者版 基于master分支每日构建 新功能尝鲜、二次开发 ★★☆☆☆

我个人建议:如果你不是在做开发,老老实实用稳定版。我曾经在项目里为了一个新功能刷了测试版,结果EKF滤波参数有变动,飞机在空中直接翻了个跟头……嗯,从那以后我再也不敢在真机上用非稳定版了。

警告:电调校准操作对固件版本敏感。不同版本的PWM输出逻辑可能有细微差异。请务必在刷完固件后,先验证PWM输出范围,再进行电调校准。

怎么选具体的小版本号?比如4.5.1和4.5.2有什么区别?

  • 看Release Notes(发布说明)。每个版本都会列出修复了哪些bug、增加了什么功能。
  • 如果当前版本用着没问题,就别追新。飞控不是手机App,稳定第一。
  • 遇到特定bug时,再去升级对应修复的版本。

你想想看,电调校准本身就是一个对时序要求很高的操作。如果固件版本不对,PWM信号周期差了几微秒,电调可能就认不出校准信号了。所以,选对版本是第一步。

好了,这一章的内容就这些。你理解了ArduPilot的架构,知道了Mission Planner是干什么的,也学会了怎么选固件版本。接下来,咱们就可以开始动手了。