SDK 舵机#

SDK提供了几种控制和与舵机系统通信的方法,以及一些可以轻松访问的隐藏方法。

通用说明#

PWM说明#

舵机通过PWM信号进行控制。PWM信号是信号开启若干微秒,然后关闭若干微秒的信号。舵机通过每20毫秒发送可变长度的脉冲来控制,脉冲的长度决定舵机应该移动到什么角度(或者CR舵机,它应该以什么速度移动)。脉冲的长度,以微秒表示,称为PWM脉冲宽度。默认情况下,sdk生成600到2400微秒的信号(SDK0是600微秒,SDK1是2400微秒)。然而,如果手动设置范围,扩展集线器实际上可以生成500到2500微秒之间的信号。

5V电源#

所有舵机系统都需要至少5V才能运行,因此扩展集线器产生5V来为舵机系统供电。5V电源在成对端口(0-1、2-3、4-5)之间共享。默认情况下,此5V电源关闭,不提供电源。但是,执行任何舵机操作,例如设置舵机的位置,将打开两个共享端口的5V电源。调用禁用PWM似乎关闭了共享电源,但是如果使用另一个舵机或激活,5V电源将保持打开状态。

一个控制舵机的 PWM 波形示例。

舵机 PWM 波形示例。注意:舵机角度是任意选择的,并非对所有舵机都准确无误。#

警告

每对两个端口(0-1,2-3,4-5)共享相同的2安培限制,因此应注意舵机对的拉力不要超过2安培。建议尽可能将舵机放在每个其他端口。

隐藏方法#

ServoImplEx#

所有REV集线器舵机系统都是ServoInfEx的实例,它向用户公开了更多方法,例如设置舵机PWM范围。

备注

使用ServoImpEx没有缺点,为了将Servo转换为ServoImpEx,用户只需将hardwareMap返回的Servo转换为ServoImpEx。

提示:

  • 你可以使用 setPwmRange() 将伺服范围增加到最大 500 至 2500 微秒。这将改变 SDK 映射,0 变为最小微秒,1 变为最大微秒。 当控制使用 500-2500 PWM 范围的伺服系统(如 goBILDA 伺服系统和 REV 智能机器人伺服系统)时,将范围增加到 500-2500 可以提供更大的范围

  • setPwmDisable()和setPwmEnable()可用于打开和关闭舵机的PWM信号。在某些舵机上,这将导致舵机断电并“关闭”而没有保持电源。其他舵机可能会保持开启并保持其位置。行为因舵机制造商而异。如果舵机是其端口组中唯一的一个,它还将禁用5V电源。

小技巧

当调用setPwmDisable时,REV智能机器人舵机和goBILDA舵机都将停止保持其位置,无论5v电源是否仍然打开。