class Servo -- 3 线业余舵机驱动¶
Servo 对象控制带 3 根线(地、电源、信号)的标准业余舵机。
示例用法:
import pyb
s1 = pyb.Servo(1) # create a servo object on position P7
s2 = pyb.Servo(2) # create a servo object on position P8
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) 用于舵机控制或自己的用途,但不能同时用于两者。
构造函数¶
- class pyb.Servo(id: int)¶
创建一个舵机对象。
id是从 1 开始的舵机通道编号;每个通道连接到一个固定的排针引脚,通道数量取决于 OpenMV Cam:摄像头
Servo(1)
Servo(2)
Servo(3)
OpenMV Cam M7 / H7
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8--
pyb.Servo在 OpenMV Cam N6 上不可用。方法¶
- angle(angle: int | None = None, time: int = 0) int | None¶
如果不带参数,此函数返回当前角度。
如果带参数,此函数设置舵机的角度:
angle是要移动到的角度,单位为度。time是到达指定角度所用的毫秒数。如果省略,则舵机会尽快移动到新位置。
- speed(speed: int | None = None, time: int = 0) int | None¶
如果不带参数,此函数返回当前速度。
如果带参数,此函数设置舵机的速度:
speed是要改变到的速度,介于 -100 和 100 之间。time是到达指定速度所用的毫秒数。如果省略,则舵机会尽快加速。
- calibration(pulse_min: int | None = None, pulse_max: int | None = None, pulse_centre: int | None = None, pulse_angle_90: int | None = None, pulse_speed_100: int | None = None) Tuple[int, int, int, int, int] | None¶
如果不带参数,此函数以 5 元组形式返回当前的校准数据。
如果带参数,此函数设置时序校准:
pulse_min是允许的最小脉宽。pulse_max是允许的最大脉宽。pulse_centre是对应中心/零位置的脉宽。pulse_angle_90是对应 90 度的脉宽。pulse_speed_100是对应速度 100 的脉宽。