.. currentmodule:: pyb .. _pyb.Servo: Servo类 –三线hobby舵机驱动 ======================================== Servo对象控制三线(地线,电源,信号)的标准hobby伺服电机。 (ground, power, signal). 用法示例:: import pyb s1 = pyb.Servo(1) # create a servo object on position P7 #在P7引脚创建servo对象 s2 = pyb.Servo(2) # create a servo object on position P8 #在P8引脚创建servo对象 s1.angle(45) # move servo 1 to 45 degrees #将servo1移动到45度 s2.angle(0) # move servo 2 to 0 degrees #将servo2移动到0度 # move servo1 and servo2 synchronously, taking 1500ms #同步移动servo1和servo2,耗时1500ms s1.angle(-60, 1500) s2.angle(30, 1500) .. note:: Servo对象使用 Timer(5) 产生PWM输出。您可以使用 Timer(5) 进行伺服控制,也可以自己使用,但不能同时使用。 构造函数 ------------ .. class:: pyb.Servo(id) 创建一个伺服对象。 ``id`` 为1-3,与引脚P7至P9相对应。 方法 ------- .. method:: Servo.angle([angle, time=0]) 若未给定参数,该函数返回当前角度。 若给定函数,该函数设置servo的角度: - ``angle`` 是度数计的移动的角度。 - ``time`` 是达到指定角度所用的毫秒数。若省略,则servo会尽快移动到新的位置。 .. method:: Servo.speed([speed, time=0]) 若未给定参数,该函数会返回当前速度。 若给定参数,该函数设置servo的速度: - ``speed`` 是改变的速度,取值100-100。 - ``time`` 是达到指定角度所用的毫秒数。若省略,则servo会尽快加速。 .. method:: Servo.pulse_width([value]) 若未给定参数,该函数会返回当前的原始脉宽值。 若给定参数,该函数设置原始脉宽值。 .. method:: 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对应的脉宽。