4、无线电遥测连接:数传模块配对与参数配置

无线电遥测,说白了就是飞控和地面站之间的「无线脐带」。没有它,你只能看着飞机飞走,啥也干不了。433MHz 和 915MHz 这两个频段,是 ArduPilot 世界里最常用的。

我个人习惯把数传模块比作「对讲机」—— 发射端和接收端必须配对,频率、速率、协议都得对上。否则,你喊破嗓子也没用。

核心要点: 数传连接的本质是「双向串口透传」。飞控的 UART 口通过数传模块,把 MAVLink 数据包无线发送到地面端的另一个数传模块,再通过 USB 或蓝牙转发给地面站软件。

4.1 数传模块配对(433MHz / 915MHz)

市面上常见的数传模块,比如 Holybro 的 SiK 系列、3DR 的 433MHz 模块,出厂默认是「一对一」配对的。但如果你买了两个模块,或者需要更换其中一个,就得手动配对。

配对的核心逻辑: 两个模块的 NETID 必须一致。这就像 Wi-Fi 的 SSID,只有名字对了才能连上。

4.1.1 硬件连接

  1. 将其中一个数传模块通过 USB-TTL 转换器插到电脑上。
  2. 另一个模块同样操作,或者直接插在飞控上(注意:飞控供电时,模块也会工作)。
  3. 打开 Mission Planner,进入 初始设置 → 可选硬件 → SiK 无线电配置。
注意: 连接模块时,TX 接 RX,RX 接 TX,GND 接 GND。VCC 通常接 5V,但有些模块是 3.3V 的,接错会烧。我刚开始玩的时候,就烧过一个 3DR 模块,心疼了好几天。

4.1.2 参数设置

在 SiK 配置页面,你会看到一堆参数。别慌,我们只改几个关键的:

参数名 说明 我的建议值
NETID 网络 ID,范围 0-255 25(随便选,别跟别人冲突就行)
FORMAT 空中波特率,单位 bps 64(远距离用 32,近距离用 64 或 128)
FREQ 载波频率,单位 Hz 433000000 或 915000000
TXPWR 发射功率,单位 dBm 20(最大功率,但注意当地法规)

改完参数后,点击 更新设置,然后对另一个模块做同样的操作。记住:两个模块的 NETID 和 FORMAT 必须完全一致。

小技巧: 如果你用的是 433MHz 模块,在城市里飞,建议把 FORMAT 降到 32。虽然数据量小了,但穿墙能力会好很多。我在一次城市测绘项目中,就是靠这个设置保住了 1.2 公里的链路。

4.2 遥测参数设置(SERIAL_PROTOCOL、SERIAL_BAUD)

数传模块配对好了,飞控这边也得「开门迎客」。飞控的 UART 口默认是关闭的,你得告诉它:这个口是用来接数传的,速率是多少。

这里涉及两个关键参数:

  • SERIAL_PROTOCOL:串口协议。数传通常用 MAVLink1 或 MAVLink2,对应参数值 1 或 2。
  • SERIAL_BAUD:串口波特率。数传模块和飞控之间的通信速率,常见值 57600 或 115200。

4.2.1 在 Mission Planner 中设置

  1. 连接飞控(USB 或数传都行)。
  2. 进入 配置/调试 → 全部参数表。
  3. 搜索 SERIAL,找到你接数传的那个串口。比如接在 TELEM1 口,就找 SERIAL1_PROTOCOL 和 SERIAL1_BAUD。
// 典型配置(以 TELEM1 为例)
SERIAL1_PROTOCOL = 2    // MAVLink2,支持更安全的签名
SERIAL1_BAUD     = 57   // 注意:这里是 57,代表 57600 bps
                       // 如果写 115,代表 115200 bps
避坑指南: 我曾经遇到过一个问题:数传模块的波特率设成了 57600,但飞控的 SERIAL1_BAUD 写的是 115。结果地面站能连上,但数据全是乱码。后来查了半天才发现是波特率不匹配。所以,飞控的波特率必须和数传模块的 UART 波特率一致。

4.2.2 数传模块自身的波特率

数传模块也有两个波特率:

  • UART 波特率:模块和飞控(或电脑)之间的速率。
  • 空中波特率:两个模块之间无线传输的速率(即前面说的 FORMAT)。

这两个速率可以不一样。比如,UART 用 57600,空中用 64bps。但通常建议保持一致,避免数据拥塞。

4.3 地面端数传连接

地面端就简单多了。把地面数传模块插到电脑上,安装好驱动(CP210x 或 FTDI),然后在 Mission Planner 里选择对应的 COM 口和波特率。

  1. 打开 Mission Planner,右上角选择 COM 口(比如 COM3)。
  2. 波特率选 57600 或 115200(和飞控端一致)。
  3. 点击 连接。

如果一切正常,你会看到地面站开始接收数据,地图上出现飞机的位置,HUD 开始跳动。

连接成功的标志:
  • Mission Planner 左上角显示 Heartbeat 计数在增加。
  • 状态栏显示 GPS 星数 和 电池电压。
  • 地图上出现蓝色飞机图标。

4.4 信号质量评估

连上了不代表万事大吉。你得知道链路质量怎么样,否则飞着飞着断了,那就炸鸡了。

ArduPilot 提供了几个关键指标:

指标 参数/来源 正常范围 我的经验
RSSI(接收信号强度) 数传模块上报 -90 dBm 以上 -70 以上很稳,-80 以下就要小心了
丢包率 地面站统计 < 5% 超过 10% 建议返航
延迟 地面站显示 < 200ms 超过 500ms 基本没法手动操控

在 Mission Planner 里,你可以打开 状态 窗口,或者直接看 HUD 上的 RSSI 数值。有些数传模块还会在 SiK 无线电配置 页面里显示详细的链路统计。

我的习惯: 每次起飞前,我都会先在地面走几步,看看 RSSI 的变化。如果走到 50 米外信号就掉到 -80 以下,我会换个位置或者加个天线。有一次在山区飞行,我就是靠这个习惯,提前发现了一个信号盲区,避免了炸机。

4.5 知识体系总览

下面这张图,把整个数传连接的流程串起来了。你可以把它当作一个检查清单:

无线电遥测连接知识体系 无线电遥测连接流程 飞控端 数传模块(空中) 数传模块(地面) 地面站软件 UART 433/915 MHz 无线链路 USB/蓝牙 关键参数: • 飞控端:SERIAL_PROTOCOL=2, SERIAL_BAUD=57 • 数传模块:NETID=25, FORMAT=64, FREQ=433MHz 信号质量评估: • RSSI > -90 dBm • 丢包率 < 5%

嗯,到这里,数传连接这块的核心内容就差不多了。你可能会问:「为什么我连上了,但数据刷新很慢?」 这通常是因为空中波特率(FORMAT)设得太低,或者飞控的 SERIAL_BAUD 和数传模块的 UART 波特率不匹配。检查一下这两个地方,基本能解决 90% 的问题。