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 的脉冲宽度。