Skip to content

DShot 电调

DShot 是一种更高级的电调协议,相比 PWMOneShot 具有几个优势:

  • 低延迟
  • 通过校验提高鲁棒性
  • 由于协议使用数字编码,因此无需电调校准
  • 很多电调支持数传反馈。
  • 可以通过命令反转电机方向(而不是物理调换两根线/重新焊接)。
  • 支持其他好用的命令。

本章介绍了如何连接和配置 DShot 电调。

Wiring/Connections

DShot 电调与PWM 电调的接线方式相同。 唯一的区别在于它们只能连接到FMU,通常只能连接到某些引脚的子集。

INFO

在接线之前,您可能需要检查执行器配置屏幕来查看飞控上可用于 DShot 的引脚!

通常带有FMU和IO板的Pixhawk飞控将它们分别标记为AUX(连接到FMU)和MAIN(连接到IO控制器)。 PWM AUXPWM MAIN 的输出选项卡在执行器配置屏幕上。 对于这些飞控来说,DShot 电调连接到 AUX 端口。

没有IO板的飞控通常将输出端口标记为 MAIN, 并且这是您连接 DShot 电调的地方。 如果那些没有IO控制器的飞控有自己的固件,执行器分配将匹配到相应的PWM MAIN输出。 然而,如果无论有没有IO板都用的是同一个固件,如Pixhawk 4和 Pixhawk 4Mini, 那么在这种情况下使用的执行器选项是相同的: PWM AUX (比如:不匹配端口标签 MAIN 在“mini”案例中)。

配置

WARNING

更改电调配置参数之前,请先拆下螺旋桨!

执行器配置中为所需要的输出启用 DShot。

DShot 具有不同的速度选项:DShot150DShot300DShot600DShot1200,其中的数字表示千比特每秒。 您应该将参数设置为您的电调支持的最高速度(根据其说明书)。

然后连接电池并解锁无人机。 电调应该初始化,电机应该按照正确的方向转动。

  • 如果电机未按照正确方向旋转(适用于所选机架),您可以在UI中使用设置旋转方向选项来反转它们(此选项在您选择DShot并分配电机后出现)。 您也可以通过发送ESC命令来反转电机。

ESC Commands

可以通过 MAVLink shell 向电调发送命令。 查看这里以获取完整的参考命令。

其中最重要的是:

  • Make a motor connected to to FMU output pin 1 beep (helps with identifying motors)

    sh
    dshot beep1 -m 1
  • Retrieve ESC information (requires telemetry, see below):

    sh
    nsh> dshot esc_info -m 2
    INFO  [dshot] ESC Type: #TEKKO32_4in1#
    INFO  [dshot] MCU Serial Number: xxxxxx-xxxxxx-xxxxxx-xxxxxx
    INFO  [dshot] Firmware version: 32.60
    INFO  [dshot] Rotation Direction: normal
    INFO  [dshot] 3D Mode: off
    INFO  [dshot] Low voltage Limit: off
    INFO  [dshot] Current Limit: off
    INFO  [dshot] LED 0: unsupported
    INFO  [dshot] LED 1: unsupported
    INFO  [dshot] LED 2: unsupported
    INFO  [dshot] LED 3: unsupported
  • Permanently set the spin direction of a motor connected to FMU output pin 1 (while motors are not spinning):

    • Set spin direction to reversed:

      sh
      dshot reverse -m 1
      dshot save -m 1

      Retrieving ESC information will then show:

      sh
      Rotation Direction: reversed
    • Set spin direction to normal:

      sh
      dshot normal -m 1
      dshot save -m 1

      Retrieving ESC information will then show:

      sh
      Rotation Direction: normal

    INFO

    • The commands will have no effect if the motors are spinning, or if the ESC is already set to the corresponding direction.
    • The ESC will revert to its last saved direction (normal or reversed) on reboot if save is not called after changing the direction.

:::

Telemetry

有些电调能够向飞控发送Telemetry数据,包括:

  • 温度
  • 电压
  • 电流
  • 累计消耗的电量
  • 转速值

这些DShot 电调会有一条额外的连接线。

开启遥测数据功能(仅对于能支持遥测数据的电调):

  1. 把电调上的TELE端口连接到飞控上空的串口的 RX 端。
  2. 使用 DSHOT_TEL_CFG 命令在该串行端口启用遥测。

重启后,您可以检查TELE数据传输是否正常工作(确保电池已连接),方法如下:

sh
dshot esc_info -m 1

TIP

您可能需要配置MOT_POLE_COUNT以获取正确的转速(RPM值)。

TIP

并非所有支持DSHOT的电调都支持[esc_info](例如APD 80F3x),就算支持并且开启了TELE功能。 显示的错误是:

sh
ERROR [dshot] No data received. If telemetry is setup correctly, try again.

查看制造商文档以获取详细信息。