ArduPilot固件使用指南
本章将描述7-Nano运行ArduPilot固件时需要注意的要点,除本章外您可能还需要阅读以下内容:
加载固件
7-Nano®控制器支持ArduPilot,下面主要讲解如何加载ArduPilot固件。
[!TIP] 7-Nano支持4.5.6及以上版本固件.
在线烧录固件:
将7-Nano连接到电脑,打开地面站,点击初始设置界面》安装固件(CUAV-7-Nano)》等待烧录完成.
本地烧录固件:
请先下载固件到本地:
选择加载自定义固件》选择下载的固件》等待烧录完成
UART映射
- SERIAL0 -> USB
- SERIAL1 -> UART7 (TELEM1)
- SERIAL2 -> UART5 (TELEM2)
- SERIAL3 -> USART1 (GPS&SAFETY)
- SERIAL4 -> UART8 (GPS2)
- SERIAL7 -> USART3 (FMU DEBUG)
[!NOTE] TELEM1 和TELEM2接口带流量控制(RTS/CTS), 其它UARTs没有RTS/CTS引脚.
RC输入
RCIN接口支持所有单向RC协议(SBUS/PPM/DSM);
DSM/PPM/SBUS接收机
使用杜邦线连接至RCIN接口;无需任何额外的参数设置。
对于CRSF/ELRS等带有遥测的双向协议的接收机,需要连接到UART接口, 以下为设置教程:例如SERIAL2 (UART5/TELEM2) 用于双向 RC。
ELRS接收机
将接收机连接至TELME2接口并设置以下参数:
将接收机连接至TELME2接口并设置以下参数:
- SERIAL2_PROTOCOL=23;
- SERIAL2_OPTIONS=0;
- RSSI_TYPE=3;
- RC_OPTIONS=8192(Use 420kbaud for ELRS protool);
写入重启
CRSF接收机
- SERIAL2_PROTOCOL=23;
- SERIAL2_OPTIONS=0;
- RSSI_TYPE=3;
FPort接收机
- SERIAL2_PROTOCOL=23;
- SERIAL2_OPTIONS=7;
- RSSI_TYPE=3;
[!TIP] 任何UART都可以用于连接ArduPilot中的RC接收机,并且兼容除PPM之外的所有协议。有关详细信息,请参阅无线电控制系统。
PWM输出
7-Nano支持14路PWM输出
PWM输出分组:
第一组:M1~M4(TIM5)
第二组:M5~M6(TIM4)
第三组:M7~M8(TIM1)
第四组:M9-M11(TIM8)
第五组:M12(TIM15)
第五组:M13-M14(TIM12)
[!NOTE] 同一组中的PWM输出需要使用相同的输出速率和协议,如果组中的任何输出使用DShot,则该组中的所有通道都需要使用DShot。M1-M8支持3.3V电压和5V电压输出之间的切换。可以通过
BRD_PWM_VOLT_SEL
参数配置进行切换。
GPIO
所有的Servo输出都可以作为GPIOs (relays(继电器), 相机快门, RPM等). 作为GPIO需要设置SERVOx_FUNCTION=-1(X为引脚序号).
GPIO引脚映射关系:
- PWM1(M1) 50
- PWM2(M2) 51
- PWM3(M3) 52
- PWM4(M4) 53
- PWM5(M5) 54
- PWM6(M6) 55
- PWM7(M7) 56
- PWM8(M8) 57
- PWM9(M9) 58
- PWM10(M10) 59
- PWM11(M11) 60
- PWM12(M12) 61
- PWM13(M13) 62
- PWM14(M14) 63
以将M14作为继电器为例;设置Relay_pin=63.
模拟输入
7-Nano有6个模拟输入接口.
- ADC Pin9 -> 电池电压传感器
- ADC Pin8 -> 电池电流传感器
- ADC Pin5 -> VDD 5V电源感应
- ADC Pin13 -> ADC 3.3V感应
- ADC Pin12 -> ADC 6.6V感应
- ADC Pin10 -> RSSI电压监控
电池监测器(电流计设置)
[!NOTE] 标准套餐含7-VDM电源检测模块,支持10-100V电池输入,但只检测电压不检测电流并且您还需自行配备一个BEC模块为控制器供电。PDB套餐含7-Nano PDB电源监测模块,内含BEC、电源检测、分电板功能;
7-Nano PDB
- BATT_MONITOR=4
- BATT_VOLT_MULT=31
- BATT_V0LT_PIN=9
- BATT_CURR_PIN=8
- BATT_AMP_PERVLT=24
VDM
- BATT_MONITOR=3/4
- BATT_VOLT_MULT=31
- BATT_V0LT_PIN=9
罗盘
7-Nano具有 IST8310内置指南针,但由于干扰,该板通常与外部I2C指南针一起使用,作为 GPS/指南针组合的一部分。理应优先使用外部指南针(例如GPS上的指南针)作为主要指南;始终确保为外部指南顺序高于内部指南针。
以太网口配置
7-Nano支持通过以太网建立局域网链接,局域网内的设备需处于同一IP网络(同一网段)以使每个设备具有唯一的IP地址并且能够与其它设备通信。
[!TIP] ArduPilot 4.5及以上版本固件支持以太网配置。
打开Mission planner>配置>全部参数表,设置NET_ENABLED=1,,重启自动驾驶仪并修改以下参数:
如上图,设置自动驾驶仪IP为192.168.10.14,路由IP设置为192.10.3(根据路由IP设置)。
设置电脑IP为192.168.10.15,设置一个网络端口为15001,以便通过UDP访问该网络设备,端口协议为2。
[!NOTE] 最多可以设置四个端口。
系统硬件连接
- 使用配套的网线连接至电脑,并为自动驾驶仪及AG路由供电。
- 进入电脑【更改网络设配器选项】>以太网属性【Internet协议版本4(TCP/IPV4】>手动进行网络配置(本机IP,配置为192.168.0.1,子网掩码255.255.255.0)>点确定应用配置.
网络连通性测试
- 进入Windows命令窗口
- 输入:ping 192.168.10.4
[!TIP] 有网络延时数据回复则为通信建立,显示通信超时则可能时IP不对或者通信失败。
连接地面站
- 运行Mission planner地面站软件
- 设置连接方式"UDP"
- 输入端口号15001。
开发指南
[!COMMENT] CUAV不提供固件及软件二次开发技术指导,如有相关问题,请仔细阅读相关指南或ArduPilot discord_频道寻求ArduPilot协助。
ArduPilot固件编译命令
./waf configure --board CUAV-7-Nano
./waf copter --upload
已编译好的固件可以在 https://firmware.ardupilot.org 中名为“CUAV-7-Nano”的子文件夹中找到。
该主板预装了兼容 ArduPilot的引导加载程序,允许使用任何兼容 ArduPilot的地面站加载 *.apj 固件文件。