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)¶
创建一个航模伺服对象。
id
为 1-3,对应引脚 P7 到 P9。
方法¶
- 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 的脉冲宽度。