DShot 电调
DShot 是一种更高级的电调协议,相比 PWM 或 OneShot 具有几个优势:
- 低延迟
- 通过校验提高鲁棒性
- 由于协议使用数字编码,因此无需电调校准
- 很多电调支持数传反馈。
- 可以通过命令反转电机方向(而不是物理调换两根线/重新焊接)。
- 支持其他好用的命令。
本章介绍了如何连接和配置 DShot 电调。
Wiring/Connections
DShot 电调与PWM 电调的接线方式相同。 唯一的区别在于它们只能连接到FMU,通常只能连接到某些引脚的子集。
INFO
在接线之前,您可能需要检查执行器配置屏幕来查看飞控上可用于 DShot 的引脚!
通常带有FMU和IO板的Pixhawk飞控将它们分别标记为AUX
(连接到FMU)和MAIN
(连接到IO控制器)。 PWM AUX
和 PWM MAIN
的输出选项卡在执行器配置屏幕上。 对于这些飞控来说,DShot 电调连接到 AUX
端口。
没有IO板的飞控通常将输出端口标记为 MAIN
, 并且这是您连接 DShot 电调的地方。 如果那些没有IO控制器的飞控有自己的固件,执行器分配将匹配到相应的PWM MAIN
输出。 然而,如果无论有没有IO板都用的是同一个固件,如Pixhawk 4和 Pixhawk 4Mini, 那么在这种情况下使用的执行器选项是相同的: PWM AUX
(比如:不匹配端口标签 MAIN
在“mini”案例中)。
配置
WARNING
更改电调配置参数之前,请先拆下螺旋桨!
在执行器配置中为所需要的输出启用 DShot。
DShot 具有不同的速度选项:DShot150,DShot300,DShot600 和 DShot1200,其中的数字表示千比特每秒。 您应该将参数设置为您的电调支持的最高速度(根据其说明书)。
然后连接电池并解锁无人机。 电调应该初始化,电机应该按照正确的方向转动。
ESC Commands
可以通过 MAVLink shell 向电调发送命令。 查看这里以获取完整的参考命令。
其中最重要的是:
Make a motor connected to to FMU output pin 1 beep (helps with identifying motors)
shdshot beep1 -m 1
Retrieve ESC information (requires telemetry, see below):
shnsh> 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
:shdshot reverse -m 1 dshot save -m 1
Retrieving ESC information will then show:
shRotation Direction: reversed
Set spin direction to
normal
:shdshot normal -m 1 dshot save -m 1
Retrieving ESC information will then show:
shRotation 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 电调会有一条额外的连接线。
开启遥测数据功能(仅对于能支持遥测数据的电调):
- 把电调上的TELE端口连接到飞控上空的串口的 RX 端。
- 使用 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.
查看制造商文档以获取详细信息。