Ardupilot飞控的数传使用教程
一.什么是数传
无线数传是一种低成本高效益的点对点双向通信链路,为飞控和地面站之间提供实时的数据上下行传输功能,以实现:
1. 飞控接收地面站发来的指令,上传航点数据到飞控,飞行过程中调参;
2. 将飞控的姿态、位置、传感器、电压电流等各种数据回传地面站;
二.数传选型
目前微空科技推出了两个系列的无线数传模块:LR24(2.4G)和LR900(900M),两个系列产品均基于最新的LoRa扩频技术开发,具有抗干扰远距离的特点。
两个系列数传的功能一致,区别在于通信频段和最大通信速率不一样,但均是能满足飞控比如Ardupilot的使用需求。而由于同一频段的无线设备在距离较近时可能会互相干扰影响,所以选择哪种数传大部分时候取决于遥控器的频段。比如使用2.4G遥控器(或高频头)时,应该使用LR900,而使用900M遥控器(高频头)时,应配合LR24数传使用。
为什么不使用常见的WiFi技术来实现数传?主要还是应用场景和产品需求不一样,无人机的主要需求是低成本,窄带远距离传输,即传输数据量很小,但通信距离要求很远。而微空数传使用了最新的LoRa扩频技术,实现了低速率,高接收灵敏度,超远距离的飞控数据传输。比如500mW发射功率的LR24-E,搭配高增益定向天线,在空旷无遮挡低干扰区域可以做到20-30KM的通信距离,即使用全向天线,一般也能有10KM,这是WiFi类产品难以实现的。而同样发射功率的LR900-F,因为使用较低频段,穿透力强,接收灵敏度更高,理想环境下在使用全向天线的时候也能实现20-30KM的通信距离,如果使用定向天线则会更远。
但值得注意的是,无线数传的通信距离在大部分时候都不是一个固定值,毕竟现实中的电磁环境经常过于复杂,比如在接近城区的地方往往有着各类同频信号干扰,这些都会成为数传通信距离不稳定的重要因素。
下文将以LR900为例,介绍微空数传在Ardupilot飞控上的连接和使用方法,让之前没有使用过数传产品的客户能尽快上手。
三.数传连接说明

LR900数传默认为双工模式,需要成对使用,每一边都可以发送并接收数据,不区分天空和地面端,且每个模块都带有GH1.25-4P的串口接口和TYPE-C USB接口,因此只要一边接入飞控,另外一边连接电脑或者手机,就可以使用地面站软件和飞控进行通信了。
模块板载一个绿色LED,功能为表示链接状态,两两配对成功并正常通信时LED灯长亮,无连接时则会闪烁。数传模块出厂时参数一致,上电会自动配对连接。另外如果需要同时使用多对数传,使用微空助手软件将每一对数传的模块地址配置成不同值即可。
飞控端连接数传
Ardupilot飞控通常会预留出多路串口出来,但一般默认使用SERIAL1作为数传串口,比如至今用户数量较多的经典飞控硬件Pixhawk1(国内对应版本为Pixhawk2.4.8),其TELEM1接口默认用于连接数传。
下图举例说明如何在Pixhawk上连接LR900数传,值得注意的两个点是:飞控和数传的Tx和Rx需要交叉连接;CTS和RTS引脚不需要接。

其它飞控硬件也是同样原理,比如各类常见的支持Ardupilot固件的F4飞控。最主要一点就是,如果连接到飞控的串口上,需要搞清楚其硬件串口和Ardupilot串口的对应关系,以便后面能在飞控中配置对应的串口参数。比如Pixhawk的TELEM1接口对应Ardupilot固件的SERIAL1, F4V3飞控的UART1对应SERIAL1(如下图所示)。一般飞控硬件厂商会提供此类资料。

电脑端连接数传
LR900数传自带TYPE-C USB口,并板载USB转TTL芯片,因此只要使用普通TYPE-C数据线将数传连接至电脑即可。
连接完成后,可以打开windows的设备管理器,以确认数传模块的USB驱动是否已经正常加载。如果出现端口号,说明驱动正常,模块已经被电脑识别。注意的是LR900-F会被识别为CP210x,而LR900-A为CH340。

如果电脑没有安装对应USB芯片的驱动,无法被windows识别,在设备管理器中会出现带黄色感叹号的未识别设备,说明需要安装对应驱动。
通常CH340的驱动安装包为exe文件,直接打开安装即可。而CP210x的驱动没有可执行文件,需要用户手动安装:在设备管理器中找到带感叹号的CP210x设备,右键选择“更新驱动程序”,选择“浏览我的电脑以查找驱动程序”,然后选择CP210x驱动文件所在的文件夹,点击下一步就会开始自动安装。
手机端连接数传
目前安卓手机可以用过usb-otg线连接数传并使用,而苹果手机暂不支持。
连接手机需要使用OTG线,如果手机接入数传后模块LED灯不亮,说明无供电,需要更换带OTG功能的数据线。
数传连接手机并能正常上电后,无需安装驱动,具体地面站软件的使用方法下文会详述。
四.数传连接配置
飞控端配置
1. 连接数传至飞控的TELEM1接口后,需要在Ardupilot中将对应串口(SERIAL1)配置为mavlink功能,并设置波特率为57600(LR900数传的默认波特率),通常这个是Ardupilot默认设置。
注意这一步需要使用usb线连接飞控至电脑,使用MissionPlanner软件配置。

2. 为了能正常加载飞控参数,使用数传时需关闭mavftp功能。
在Ardupilot最新版本固件中(V4.5.0或者更高),此问题已经得到优化,即使不关闭mavftp也能正常通过数传加载飞控参数。不过这里还是要给出关闭mavftp功能的方法。

在参数表中找到BRD_OPTIONS参数,点击参数值,在弹出的窗口中勾选“Disable MAVftp”,然后再写入参数到飞控即可,重启后生效。
电脑端配置
飞控端正确配置并连接数传模块后,电脑端也同时连接LR900数传模块,根据上文所述,在设备管理器中查看数传所对应的端口号。然后打开MP地面站软件,在右上角中选择端口号,波特率57600,并点击连接即可。

如果一切正常,点击连接后地面站将会与飞控建立起数据链接,并开始读取飞控参数,如下图所示:

获取参数大概会花费25秒左右。
手机端配置
手机上能使用的地面站软件数量不多,如QGC安卓版,MissionPlanner安卓版,这里以QGC为例说明。
(需注意LR900系列数传中只有LR900-F支持安卓QGC)
手机上安装了QGC后,通过OTG线连接数传,若数传模块正常上电,此时手机应能识别出外部设备接入,会弹出选择应用程序的提示,此时点击QGC并打开。

打开QGC后,无需任何操作,软件将会自动连接通过数传连接飞控并开始读取飞控参数。

读取完参数后,可以开始正常使用APP。
五.Ardupilot飞控的数据下行速率配置说明
正常连接飞控后,在MP地面站软件的右上角打开“链接统计“,可以看到一些数据传输的统计数据,其中下载栏中的”字节/s”便是飞控的实时下行速率,单位为“字节/每秒”,比如下图中的1.73K表示飞控每秒发送1.73K字节的数据到地面站。

通常单传感器的飞控硬件(如F4V3这类),固件默认的下行速率在每秒1.3-1.5K字节左右,如果飞控的传感器增多,比如双IMU或者3 IMU,那么默认的下行速率会变高,但只要该速率不超出数传的速率上限,都是没问题的。
另外这个下行速率可以在MP中调节。
在MP地面站软件的“配置/调试”-“Planner”页面中,有一行遥测速率参数,调节这几个参数便会影响Ardupilot的实际下行速率,可以增大或者减小。
使用LR900数传时,需要飞控的实际下行速率不超过2K字节每秒。
