伺服类 – 3 线业余伺服驱动器

伺服对象使用 3 线(接地、电源、信号)控制标准的业余伺服电机。pyboard 上有 4 个位置可以插入这些电机:引脚 X1 到 X4 是信号引脚,它们旁边是 4 组电源和接地引脚。

用法示例:

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-4,对应于引脚 X1 到 X4。

方法

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