Servo类 –三线hobby舵机驱动

伺服对象使用三条线(地线、电源线、信号线)控制标准hobby伺服电机。Pyboard上有4处电机可插入的位置:引脚X1到X4为信号引脚,其旁为4组电源和接地引脚。

用法示例:

import pyb

s1 = pyb.Servo(1)   # create a servo object on position X1 在X1位置创建一个伺服对象
s2 = pyb.Servo(2)   # create a servo object on position X2 在X2位置创建一个伺服对象

s1.angle(45)        # move servo 1 to 45 degrees 将伺服1移动到45度
s2.angle(0)         # move servo 2 to 0 degrees 将伺服2移动到0度

# move servo1 and servo2 synchronously, taking 1500ms 同时移动伺服1和伺服2,耗时1500ms
s1.angle(-60, 1500)
s2.angle(30, 1500)

注解

伺服对象使用定时器(5)来生成PWM输出。您可将定时器(5)用于伺服控制或您的个人用途,但二者不能同时进行。

构造函数

class pyb.Servo(id)

创建一个伺服对象。 id 为1-4,与引脚X1至X4相对应。

class pyb.Servo(id)

创建一个伺服对象。 id 为1-4,与引脚P13,P14,P15,P19相对应。

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