DroneCAN 适配器设置¶
运行 AP_Periph 的 DroneCAN 适配器节点有多种使用方法,本页只是其中的一小部分。这些部分将指导您设置(飞行)控制器和节点,使它们能够协同工作。
备注
DroneCAN 适配器节点通常随附支持 ArduPilot 大型外设功能子集的固件。请务必检查所提供的固件是否支持您试图设置的外设。如果不支持,请检查 固件 页面,查看该适配器可能具有该功能的替代固件。
GPS 设置¶
将 GPS 连接到 DroneCAN 适配器的串行端口上
设置 GPS1_TYPE = 9 在(飞行)控制器上
设置 DroneCAN 适配器的
SERIALx_PROTOCOL
5 (GPS)
罗盘设置¶
将指南针连接到 DroneCAN 适配器的外部 I2C 端口。它在 ArduPilot 中将显示为普通指南针,而在 DroneCAN 适配器中将显示为普通 I2C 端口。 罗盘设置程序 将适用。
备注
MatekL431 CAN 适配器是为 SPI 连接的指南针 (RM3100) 设置的。如果连接的是 I2C Compass,则必须加载不同的固件才能运行。
I2C 空速传感器¶
连接到从 DroneCAN 适配器引出的 I2C 总线上。
设置 ARSPD_TYPE =8 (DroneCAN)
设置 DroneCAN 的
ARSPD_TYPE
参数,以匹配所连接的空速传感器类型。
测距仪设置¶
要使用测距仪,请遵循以下说明 DroneCAN 高级设置 来设置 ArduPilot 参数。使用 MissionPlanner 或 DroneCAN Gui,按照相关测距仪的说明在适配器节点上设置参数。
备注
在适配器节点上,测距仪的方向 (RNGFND1_ORIENT) 必须设置为 0。
备注
RNGFNDx_ADDR ArduPilot 参数必须设置为 0 以上,且等于 DroneCAN 适配器节点上设置的数字。
PWM 或 DShot 输出节点¶
具有定时器输出的适配器可用作 PWM 和 DShot 输出节点。
"这款" MatekL431 DroneCAN PWM 设备 就是一个例子。
这对于在(飞行)控制器提供的输出之外提供额外的伺服输出非常有用,但最有用的是允许电调和 Sevos 使用 CAN 总线进行远程通信,远离(飞行)控制器。ArduPilot 最多可提供 32 个输出。
此外,(飞行)控制器输出可配置为 GPIO 用途,并仍可通过 DroneCAN 外围设备实现多达 32 个伺服/电机输出。
备注
要使用 DShot 输出,节点必须安装支持 DShot 的固件。
DShot 电调适配器¶
在本示例中,将显示一个垂直起降,其输出端 5-8 用于 4 个带遥测功能的 DShot ESC。每个电调的 3 根导线应连接到 DroneCAN 适配器节点:接地、DShot 信号和串行遥测。每个 ESC 的地线应连接到 DroneCAN 节点上的接地焊盘。4 个电调的信号线应连接到节点上的前 4 个 PWM 焊盘,分别标记为输出 "1"、"2"、"3 "和 "4"。所有 4 个电调的串行遥测引脚都应连接到适配器节点上的同一个 UART RX 引脚。
在主(飞行)控制器上需要进行设置:
CAN_Px_DRIVER = 1
CAN_Dx_PROTOCOL = 1
CAN_Dx_UC_ESC_BM = 240 或电机输出的位掩码
CAN_Dx_UC_ESC_OF = 4 或第一个 ESC 输出的偏移量。这使得 CAN 数据包的传输效率大大提高
您需要在 DroneCAN PWM 节点上进行设置:
OUTx_FUNCTION = 33 + ESC 号码
OUT_BLH_MASK = 15 或表示哪些 ESC 处于活动状态的位掩码
PWM 输出¶
在主(飞行)控制器上需要进行设置:
CAN_Dx_UC_SRV_BM 的位掩码。
CAN_Dx_UC_SRV_RT 到输出率。对于大多数伺服系统来说,输出频率通常为 50 赫兹。
在 CAN 节点上需要设置
OUT_BLH_MASK = 0 表示禁用 DShot
ESC_PWM_TYPE = 0 表示正常 PWM
OUTx_FUNCTION 为 50 的值,再加上要启用为 PWM 输出的每个输出的伺服编号
OUTx_FUNCTION = 0 表示未连接的输出端。不要将其设置为默认的 33 + ESC 号码
例如,如果在主(飞行)控制器的 SERVO2 上有一个升降舵伺服器,并希望它出现在 CAN 节点的第一个输出端(节点上标有 "1 "的引脚),则需要设置 OUT1_FUNCTION = 52(即 50 + (飞行)控制器上的伺服器编号)。如果您希望 SERVO4 上的方向舵显示在输出 4 上,则需要设置 OUT4_FUNCTION=54。
备注
同时建议将 OUTn_MIN 设置为 1000,OUTn_MAX 设置为 2000,OUTn_TRIM 设置为 1500。这样就可以使用主(飞行)控制器上的 SERVOn_MIN、SERVOn_MAX 和 SERVOn_TRIM 值,以常规方式控制输出范围和中心。也可以在节点上使用其他值,但要理解 PWM 值的映射会变得更加复杂,因此建议使用 1000、1500 和 2000。这样做也意味着(飞行)控制器日志中的 PWM 值与节点的输出值一致。
结合 DShot 和 PWM 输出¶
在同一节点上组合 PWM 和 DShot 输出时需要遵循一些规则。如果您熟悉在(飞行)控制器上这样做,规则也是一样的。引脚按定时器分组,连接到定时器的所有引脚必须是同一类型。例如,在 MatekL431 节点上,前 4 个输出都在同一个定时器上。这意味着这些输出引脚必须全部为 DShot 输出,第五个输出为 1 PWM,或者前 4 个输出为 PWM 和 1 DShot。