Servo类 – 三线hobby舵机驱动

Servo对象控制三线(地线,电源,信号)的标准hobby伺服电机。 (ground, power, signal).

使用示例

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) 进行伺服控制,也可以自己使用,但不能同时使用。

构造函数

class pyb.Servo(id)

创建一个伺服对象。 id 为1-3,与引脚P7至P9相对应。

方法

Servo.angle([angle, time=0])

若未给定参数,该函数返回当前角度。

若给定函数,该函数设置servo的角度:

  • angle 是度数计的移动的角度。

  • time 是达到指定角度所用的毫秒数。若省略,则servo会尽快移动到新的位置。

Servo.speed([speed, time=0])

若未给定参数,该函数会返回当前速度。

若给定参数,该函数设置servo的速度:

  • speed 是改变的速度,取值100-100。

  • time 是达到指定角度所用的毫秒数。若省略,则servo会尽快加速。

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对应的脉宽。