伺服类 – 3 线业余伺服驱动器¶
伺服对象使用 3 线(接地、电源、信号)控制标准的业余伺服电机。pyboard 上有 4 个位置可以插入这些电机:引脚 X1 到 X4 是信号引脚,它们旁边是 4 组电源和接地引脚。
用法示例:
import pyb
s1 = pyb.Servo(1) # create a servo object on position X1
s2 = pyb.Servo(2) # create a servo object on position X2
s1.angle(45) # move servo 1 to 45 degrees
s2.angle(0) # move servo 2 to 0 degrees
# move servo1 and servo2 synchronously, taking 1500ms
s1.angle(-60, 1500)
s2.angle(30, 1500)
笔记
Servo 对象使用 Timer(5) 来产生 PWM 输出。您可以将 Timer(5) 用于伺服控制或您自己的目的,但不能同时使用。
方法¶
-
Servo.
angle
([angle, time=0])¶ 如果没有给出参数,则此函数返回当前角度。
如果给出参数,则此函数设置舵机的角度:
angle
是要移动到的角度(以度为单位)。time
是到达指定角度所需的毫秒数。如果省略,则伺服会尽快移动到新位置。
-
Servo.
speed
([speed, time=0])¶ 如果没有给出参数,则此函数返回当前速度。
如果给出参数,则此函数设置伺服的速度:
speed
是变化的速度,介于 -100 和 100 之间。time
是达到指定速度所需的毫秒数。如果省略,则伺服会尽快加速。
-
Servo.
pulse_width
([value])¶ 如果没有给出参数,该函数返回当前的原始脉冲宽度值。
如果给出参数,则此函数设置原始脉冲宽度值。
-
Servo.
calibration
([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]])¶ 如果没有给出参数,该函数返回当前校准数据,作为一个 5 元组。
如果给出参数,则此函数设置时序校准:
pulse_min
是允许的最小脉冲宽度。pulse_max
是最大允许脉冲宽度。pulse_centre
是对应于中心/零位置的脉冲宽度。pulse_angle_90
是90度对应的脉冲宽度。pulse_speed_100
是对应于 100 速度的脉冲宽度。