文章目录
前言
5 附加配置
前言
DShot 是一种数字 ESC 协议,它允许快速、高分辨率的数字通信,可以改善飞行器控制,这在多旋翼和 quadplane 应用中特别有用。
5 附加配置
DShot更新率
发送 DShot 脉冲的频率可以通过SERVO_DSHOT_RATE配置。默认情况下,每次准备好新的 IMU 样本时,ArduPilot 都会以固定的 1Khz 间隔输出 DShot 数据脉冲。在具有标准 400Hz 调度器循环速率的直升机上,这大约为 1.4Khz。然而,输出非常不规则——为了获得更规则的输出,SERVO_DSHOT_RATE 可以配置为以调度器循环速率的倍数发送脉冲。因此,如果设置为 2,脉冲将以 800Hz 的频率发送,设置为 1.2Khz 的 3,以此类推。区别在于输出非常均匀,这有利于需要更严格电机控制的直升机(例如较小的赛车)。不建议以低于 1Khz 的频率发送脉冲,因为有报告称 BLHeli32 在某些自动驾驶仪上偶尔会丢失帧,同样,以更高的速率发送可以提高可靠性,并在需要时更快地从丢失的脉冲中恢复,但会牺牲一些 CPU。非常高的速率只能用于更快的 DShot速度,否则脉冲可能会重叠——例如,DShot150 理论上可以支持的最快速率是 4Khz。
DShot命令
在某些 ESC 上支持 DShot 命令。这些允许自动驾驶仪操纵 ESC LED、蜂鸣声和电机方向等功能。要使用 DShot 命令:
- 设置 SERVO_DSHOT_ESC 应设置为正在使用的 DSHOT ESC 的类型。如果使用双向 DShot 遥测或扩展遥测,则尤其需要这样做;
- 设置 NTF_LED_TYPES 的“DShot”复选框以启用对 ESC LED 的控制;
- 设置 NTF_BUZZ_TYPES 的“DShot”复选框,以启用将电机用作蜂鸣器。
当前支持的命令有:
- DShot 指示灯打开/关闭;
- DShot 蜂鸣器打开/关闭;
- 反转电机方向(见 SERVO_BLH_RVMASK 参数);
- 可逆 DShot(也称为 3D 模式)(参见 Reversible DShot ESCs)。
!Warning
目前,ArduPilot 支持常用的命令集(SERVO_DSHOT_ESC = 1),但是,其他命令集也出现了,可能不兼容,导致操作未定义。在确认 ESC 使用类型= 1 的正确操作之前,请务必小心(拆下桨叶!)
可逆DShot ESC
可逆 DShot(也称为3D模式)允许电机在任何方向上旋转,这对于具有反向推力(Planes with reverse thrust)的无人车、船只和固定翼来说都很重要。
目前,仅支持具有 BLHeli32 和 BLHeli_S 功能的可逆 DShot ESC。为了使用一个,驱动它的输出必须在 SERVO_BLH_3DMASK 位掩码参数中指定适当的位。这将把输出 1000-1500-2000 值映射到ESC 的正确数字值,以分别提供全反向怠速全正向范围操作。
如果 DShot 命令(DShot commands)已启用,则 ArduPilot 将根据 SERVO_BLH_3DMASK 在启动时自动将 ESC 配置为可逆模式(3D 模式)。启用 DShot 命令(DShot commands)将允许通过DShot 设置说明(DShot setup instructions)中讨论的 DShot 掩码参数将其他 DShot 指令发送到配置为DShot 的任何其他 ESC。
否则,你必须手动将 ESC 的“电机方向”配置为“双向3D”,如下所示。
!Note
目前,ArduPilot 仅支持在固定翼和无人车上使用可逆 ESC,不支持 Copter。