
1. 为什么ELRS加ArduPilot是当前穿越机与固定翼玩家的热门组合如果你最近一年逛过航模论坛或者刷过FPV相关的视频大概率会频繁看到两个词ELRS和ArduPilot。前者是ExpressLRS的缩写一套开源遥控链路方案后者是飞控固件里功能最全、生态最庞大的存在。把这俩凑一块儿基本就是“信号稳、距离远、功能多”的代名词。我自己从最早的PPM接收机一路用到SBUS再到后来换装ELRS中间踩过的坑不算少。最开始用ELRS配Betaflight很顺插上就能用但换到ArduPilot之后发现事情没那么简单——CRSF协议虽然通用可ArduPilot的参数体系跟Betaflight完全不是一个量级遥测回传的配置也有一堆细节要注意。这篇文章就是把我从零配置到高级遥测显示的完整过程整理出来包括参数怎么设、线怎么接、常见故障怎么排查以及怎么把飞控数据回传到遥控器上显示。适合谁看如果你手上有刷了ArduPilot的飞控遥控器是OpenTX或者EdgeTX系统想用ELRS接收机做控制链路同时希望把飞行数据实时回传到遥控器屏幕上那这篇内容基本能覆盖你90%的需求。不需要你有多深的电子基础但至少要会拆装机、会刷固件、能看懂基本的接线图。核心关键词先摆出来ELRS负责射频链路ArduPilot负责飞行控制CRSF是两者之间的通信协议OpenTX和EdgeTX是遥控器端的操作系统。这四个东西串起来就是一套完整的遥控遥测方案。2. 硬件选型与接线别让一根线毁掉整个链路2.1 接收机与飞控的匹配逻辑ELRS接收机的种类很多按频段分有2.4GHz和915MHz国内常用868MHz按接口分有单线CRSF、双线CRSF加遥测、还有带PWM输出的版本。配ArduPilot的话我强烈建议用支持CRSF协议的串口接收机比如常见的EP1、EP2、RP1、RP3这几款。原因很简单CRSF是双向协议一根线就能同时传输遥控指令和遥测数据接线少、故障点少。飞控这边ArduPilot支持的串口数量取决于具体硬件。以Pixhawk系列为例通常有5个以上的UART其中TELEM1、TELEM2、GPS口都可以配置成遥控输入。我一般习惯把ELRS接收机接在TELEM2上因为TELEM1通常留给数传电台GPS口留给GPS模块这样分工明确后期排查问题也方便。这里有个细节要注意ELRS接收机的供电电压。大部分接收机支持5V输入但有些飞控的串口供电是3.3V或者电压不稳。我实测过如果供电不足接收机会间歇性重启表现就是遥控信号时断时续。所以接线前先用万用表量一下飞控串口口的供电电压确认在4.5V到5.5V之间再插接收机。2.2 接线方式与端口映射CRSF接收机通常有四根线5V、GND、TX、RX。但实际用的时候你只需要接三根——5V、GND、TX。因为CRSF是半双工协议一根TX线就能完成双向通信。接收机的TX接到飞控串口的RX上飞控的TX不用接。这个逻辑跟SBUS类似但CRSF的波特率是420000比SBUS的100000高不少。具体到ArduPilot的参数配置假设你把接收机接在TELEM2口上对应的参数是SERIAL2_PROTOCOL设为 23RCINSERIAL2_BAUD设为 420对应420000波特率RC_PROTOCOLS设为 1只启用CRSF这里解释一下为什么SERIAL2_PROTOCOL要设成23。ArduPilot的串口协议编号里23代表RC输入也就是把该串口当作遥控信号输入口。如果你设成别的值比如1MAVLink飞控就收不到遥控指令了。RC_PROTOCOLS这个参数是位掩码1代表CRSF2代表SBUS4代表PPM。设成1就是只认CRSF避免飞控误判信号类型。注意改完参数必须重启飞控否则串口协议不会重新初始化。我见过有人改完参数直接试结果遥控没反应以为接收机坏了其实就是没重启。2.3 遥控器端的硬件准备遥控器这边OpenTX和EdgeTX系统的遥控器都支持ELRS外置高频头。常见的有Jumper T-Lite、Radiomaster TX12、TX16S这些。如果你用的是内置ELRS的遥控器比如Radiomaster Zorro ELRS版那就省事了直接在遥控器里设置就行。外置高频头的安装很简单插到遥控器背面的JR仓或者Nano仓里然后在遥控器系统里把外置射频模式设成CRSF。具体路径是模型设置 - 外部射频 - 协议选CRSF - 波特率选400000有些遥控器是420000选最接近的就行。这里有个坑如果波特率选错了高频头和遥控器之间通信不上表现就是高频头灯不亮或者闪烁异常。3. ArduPilot参数配置从串口到遥控校准的完整流程3.1 串口参数与协议选择前面提到了SERIAL2_PROTOCOL和SERIAL2_BAUD这里再展开说一下其他相关参数。ArduPilot的串口参数命名规则是SERIALx_PROTOCOL和SERIALx_BAUDx代表串口编号。不同飞控的串口编号对应关系不一样比如Pixhawk 4的TELEM2对应SERIAL2而有些飞控的TELEM2对应SERIAL3。这个一定要查飞控的硬件定义文档别凭感觉猜。我一般会先把所有串口的当前配置读出来确认哪个串口是空闲的。方法很简单在Mission Planner或者QGroundControl里连上飞控打开参数列表搜索SERIAL把SERIALx_PROTOCOL不是-1的都记下来。通常GPS占一个、数传占一个剩下的就可以给接收机用。RC_PROTOCOLS这个参数值得单独说一下。它的默认值通常是7也就是CRSF、SBUS、PPM都启用。但实际用的时候我建议只启用你正在用的协议。原因有两个一是减少飞控的解析负担二是避免信号干扰导致的误判。比如你只用CRSF就设成1如果以后要换SBUS接收机再改成2。还有一个参数叫RC_OPTIONS这个跟遥测有关。默认值是0但如果你要用CRSF的遥测功能需要把第5位值32打开也就是设成32。这个参数控制的是是否通过CRSF回传遥测数据。我一开始没设这个结果遥控器上什么数据都看不到折腾了半天才发现是这里的问题。3.2 遥控校准与通道映射参数设好之后下一步是遥控校准。在Mission Planner里进入初始设置 - 必要硬件 - 遥控器校准按照提示拨动摇杆和开关。校准过程中要注意几点第一确保接收机已经跟遥控器对频成功。ELRS的对频方式通常是上电后接收机灯快闪然后在遥控器高频头菜单里选Bind。对频成功后接收机灯常亮。第二校准前把遥控器的通道映射确认好。ArduPilot默认的通道顺序是1副翼、2升降、3油门、4方向、5飞行模式、6预留、7预留、8预留。如果你在遥控器里改了通道顺序比如把油门放到通道3以外的位置那校准的时候飞控会识别错。第三校准过程中如果某个通道的行程不够飞控会提示。这时候要回到遥控器里调整该通道的行程范围通常是调到±100%。ELRS的默认行程就是±100%一般不需要额外调整。校准完成后检查一下飞行模式开关是否对应正确的模式。ArduPilot的飞行模式是通过通道5的PWM值来切换的不同PWM区间对应不同模式。比如固定翼的Manual、Stabilize、Loiter、RTL每个模式对应一个PWM范围。这个在Mission Planner的飞行模式设置里可以直观地看到。3.3 失控保护与故障安全设置失控保护是很多人容易忽略的一环。ELRS接收机本身支持失控保护但ArduPilot也有自己的失控保护逻辑。两者要配合好否则可能出现接收机认为信号丢了、飞控却还在等指令的情况。ELRS的失控保护设置在高频头菜单里可以设置每个通道在失控时的输出值。我一般把油门通道设为最低其他通道设为中位飞行模式通道设为RTL对应的值。这样一旦失控飞控会自动进入返航模式。ArduPilot这边的失控保护参数是FS_THR_ENABLE和FS_THR_VALUE。FS_THR_ENABLE设为1表示启用油门失控保护FS_THR_VALUE设为950左右比正常油门最低值略低。当飞控检测到油门通道值低于这个阈值超过一定时间就会触发失控保护。提示测试失控保护的时候不要把桨装上。我见过有人在地面测试时电机突然转起来幸好没装桨不然后果不堪设想。4. 遥测回传与遥控器显示把飞行数据搬到屏幕上4.1 CRSF遥测协议的数据类型CRSF协议支持的遥测数据类型很多包括GPS坐标、高度、速度、电池电压、电流、姿态角、飞行模式等。但不是所有数据都会自动回传需要在ArduPilot里配置。具体来说RC_OPTIONS设成32之后飞控会通过CRSF回传一组标准遥测数据。但如果你想回传更多数据比如具体的GPS卫星数、HDOP值就需要额外配置。ArduPilot的遥测回传是通过MAVLink协议实现的CRSF只是传输层。飞控把MAVLink数据打包成CRSF帧通过接收机的TX线回传到遥控器。遥控器端的OpenTX或EdgeTX系统再解析这些数据显示在屏幕上。这里有个概念要理清CRSF遥测和MAVLink遥测是两回事。CRSF遥测是接收机直接回传的数据量有限MAVLink遥测是通过数传电台回传的数据量大但需要额外硬件。ELRS的优势在于它把两者结合了——通过CRSF链路回传部分MAVLink数据不需要额外的数传电台。4.2 OpenTX/EdgeTX遥测屏幕配置遥控器端的遥测显示配置OpenTX和EdgeTX的操作逻辑基本一致。以EdgeTX为例进入模型设置 - 遥测 - 发现新传感器系统会自动搜索接收机回传的传感器数据。搜到之后你会看到一堆传感器名称比如RSSI、1RSS、2RSS、RQly、TQly、GPS、Alt、Spd、Vbat等。这些传感器的含义分别是RSSI信号强度指示1RSS/2RSS双天线各自的信号强度RQly上行链路质量TQly下行链路质量GPSGPS坐标Alt高度Spd速度Vbat电池电压搜到传感器之后下一步是配置显示屏幕。EdgeTX支持多个遥测屏幕每个屏幕可以显示不同数据。我一般配三个屏幕第一个显示信号质量和链路质量第二个显示GPS和高度速度第三个显示电池电压和电流。配置方法进入显示 - 遥测屏幕选择屏幕编号然后添加要显示的传感器。每个传感器可以设置名称、单位和精度。比如电池电压可以设成显示两位小数高度设成整数。4.3 高级遥测自定义传感器与逻辑开关如果你想让遥测显示更智能比如电池电压低于某个值时触发震动提醒那就需要用到逻辑开关和特殊功能。EdgeTX的逻辑开关功能很强大可以基于遥测数据做条件判断。举个例子我想在电池电压低于3.5V每片时触发遥控器震动。假设是4S电池总电压低于14V时触发。配置步骤是在逻辑开关里新建一个功能选“小于”第一个参数选Vbat传感器第二个参数设14然后开启这个逻辑开关。在特殊功能里新建一个触发条件选刚才的逻辑开关动作选“震动”然后设置震动模式。这样当电压低于14V时遥控器就会震动提醒。类似地你还可以做高度提醒、速度提醒、信号弱提醒等。还有一个高级玩法是把遥测数据记录到遥控器的SD卡里。EdgeTX支持日志记录功能可以把选定的传感器数据以CSV格式保存。飞行结束后把SD卡插到电脑上用Excel或者专门的分析软件打开就能看到整个飞行过程的电压、高度、速度曲线。这个对于调试飞行性能特别有用。5. 常见问题与排查技巧实录5.1 接收机灯不亮或闪烁异常这是最常见的问题通常有三个原因供电不足、对频失败、固件不匹配。供电不足的判断方法很简单用万用表量接收机供电引脚电压。如果低于4.5V就要检查飞控串口供电是否正常或者考虑从其他5V源取电。我遇到过一种情况飞控的TELEM2口供电只有4.2V接收机勉强能工作但距离一远就失控。后来改从飞控的5V输出排针取电问题就解决了。对频失败的话先确认遥控器高频头和接收机的固件版本是否匹配。ELRS的固件版本号必须一致比如都是3.x版本。如果一个是2.x一个是3.x对频会失败。查看版本号的方法遥控器高频头菜单里看版本接收机连上飞控后看Mission Planner的CRSF遥测数据里的版本号。固件不匹配的情况比较少见但如果你买的是二手接收机有可能被刷过其他固件。这时候需要用ELRS配置器重新刷固件。刷固件的方法这里不展开官方文档写得很清楚。5.2 遥控信号时断时续信号断续的原因比较多按概率排序天线安装不当、接收机供电不稳、遥控器高频头功率设置过低、环境干扰。天线安装是最容易被忽视的。ELRS接收机的天线要尽量远离碳纤维板和金属部件因为碳纤维会屏蔽射频信号。我一般把天线用扎带固定在机臂的塑料部分让天线振子尽量垂直。如果是双天线接收机两根天线最好呈90度夹角这样能覆盖不同的极化方向。供电不稳前面说过了这里补充一点如果接收机跟飞控共用5V而飞控的5V是由电调BEC提供的那电调负载变化时电压会波动。解决办法是给接收机单独加一个5V BEC或者加一个电容滤波。遥控器高频头功率设置ELRS支持10mW到1000mW的功率调节。功率越高信号越强但功耗和发热也越大。我一般设成100mW这个功率在开阔环境下能拉到几公里足够用了。如果设成1000mW高频头会烫得厉害而且可能干扰其他设备。5.3 遥测数据不显示或显示错误遥测不显示的原因通常是RC_OPTIONS没设对或者遥控器端没有发现传感器。先检查RC_OPTIONS是否设成了32然后重启飞控和遥控器重新发现传感器。如果传感器发现了但数据不对比如高度一直是0那可能是飞控没有获取到GPS定位。ArduPilot的高度数据来自气压计和GPS如果GPS没定位高度数据可能不准确。检查GPS模块是否正常工作卫星数是否足够。还有一种情况是数据更新频率太低。CRSF遥测的更新频率取决于链路质量链路好的时候更新快链路差的时候更新慢。如果发现数据卡顿先检查信号质量RQly和TQly应该在80%以上才算正常。5.4 常见问题速查表问题现象可能原因排查方法解决方案接收机灯不亮供电不足万用表量电压换5V源或加BEC接收机灯闪烁对频失败检查固件版本统一固件版本后重新对频信号时断时续天线安装不当检查天线位置远离碳纤维垂直安装遥控无反应串口协议错误检查SERIALx_PROTOCOL设为23并重启遥测不显示RC_OPTIONS未设检查参数值设为32并重启高度数据为0GPS未定位检查卫星数等待GPS定位或检查GPS模块数据更新慢链路质量差检查RQly/TQly调整天线或提高功率6. 进阶玩法把ELRS遥测接入地面站6.1 通过WiFi或蓝牙回传遥测ELRS的遥测数据不仅能在遥控器上显示还能通过遥控器的WiFi或蓝牙模块回传到手机或平板上的地面站软件。这个功能对于需要大屏幕显示飞行数据的场景特别有用比如测绘或者长距离飞行。具体实现方式遥控器比如TX16S内置WiFi模块可以开启WiFi热点然后手机连上这个热点在地面站软件里设置UDP连接端口通常是14550。这样地面站就能收到飞控的MAVLink数据了。但要注意通过CRSF回传的MAVLink数据量有限不是所有地面站功能都能用。比如航点上传、参数修改这些需要双向通信的功能通过CRSF遥测可能不稳定。如果需要完整的地面站功能还是建议加一个数传电台。6.2 遥测数据记录与分析前面提到了EdgeTX的日志记录功能这里再补充一下数据分析的方法。EdgeTX记录的CSV文件可以用Excel打开也可以用专门的分析工具比如FlightPlot或者MAVExplorer。我一般用Excel做快速查看用MAVExplorer做深度分析。分析的重点通常是电压曲线是否平滑、高度变化是否符合预期、速度是否有异常波动、信号质量在哪些位置变差。通过这些分析可以优化天线布局、调整飞行路线、改进电池配置。举个例子我有一次飞固定翼发现飞到某个位置时信号质量骤降。后来把日志导出来一看那个位置正好是遥控器天线指向飞机的方向说明天线极化方向不匹配。后来把遥控器天线角度调整了一下问题就解决了。6.3 多机切换与模型配置管理如果你有多架飞机每架都装了ELRS接收机那模型配置管理就很重要。EdgeTX支持多个模型配置每个模型可以独立设置高频头参数、遥测传感器、逻辑开关等。切换飞机时只需要在遥控器里选择对应的模型就行。但要注意ELRS接收机的对频信息是存在接收机里的不是存在遥控器里的。所以如果你用同一个高频头控制多架飞机每架飞机的接收机都需要单独对频。对频一次之后接收机会记住高频头的ID下次上电自动连接。如果你想让一个接收机对应多个模型配置比如同一架飞机在不同飞行场地用不同的参数那可以在遥控器里复制模型配置然后修改参数。接收机不需要重新对频因为它只认高频头ID不认模型配置。7. 我个人在实际操作中的几点体会从最早用PPM到现在用ELRS加ArduPilot我最大的感受是这套组合的灵活性很高但前提是你得把基础参数搞对。很多人觉得ArduPilot参数太多太复杂其实常用的就那么十几个搞懂了之后剩下的都是微调。另外ELRS的固件更新比较频繁每次更新可能会引入新功能或者改变默认参数。我建议每次更新固件后都重新检查一遍关键参数特别是RC_OPTIONS和SERIALx_BAUD这两个有时候更新后会被重置。最后分享一个小技巧如果你在调试过程中遇到莫名其妙的问题先别急着改参数把飞控和遥控器都重启一遍很多时候问题就消失了。电子设备嘛有时候就是需要重启一下。