class Servo – 3-wire hobby servo driver
class Servo – 3-wire hobby servo driver
Servo objects control standard hobby servo motors with 3-wires (ground, power, signal).
Example usage:
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)Note
The Servo objects use Timer(5) to produce the PWM output. You can use Timer(5) for Servo control, or your own purposes, but not both at the same time.
Constructors
pyb.Servo
class pyb.Servo(id)Create a servo object. id is 1-3, and corresponds to pins P7 through P9.
Methods
Servo.angle
Servo.angle([angle, time=0])If no arguments are given, this function returns the current angle.
If arguments are given, this function sets the angle of the servo:
angleis the angle to move to in degrees.timeis the number of milliseconds to take to get to the specified angle. If omitted, then the servo moves as quickly as possible to its new position.
Servo.speed
Servo.speed([speed, time=0])If no arguments are given, this function returns the current speed.
If arguments are given, this function sets the speed of the servo:
speedis the speed to change to, between -100 and 100.timeis the number of milliseconds to take to get to the specified speed. If omitted, then the servo accelerates as quickly as possible.
Servo.pulse_width
Servo.pulse_width([value])If no arguments are given, this function returns the current raw pulse-width value.
If an argument is given, this function sets the raw pulse-width value.
Servo.calibration
Servo.calibration([pulse_min, pulse_max, pulse_centre, [pulse_angle_90, pulse_speed_100]])If no arguments are given, this function returns the current calibration data, as a 5-tuple.
If arguments are given, this function sets the timing calibration:
pulse_minis the minimum allowed pulse width.pulse_maxis the maximum allowed pulse width.pulse_centreis the pulse width corresponding to the centre/zero position.pulse_angle_90is the pulse width corresponding to 90 degrees.pulse_speed_100is the pulse width corresponding to a speed of 100.
