class Servo – 3-draads hobbyservodriver¶
Servo-objecten besturen standaard hobbyservomotoren met 3 draden (massa, voeding, signaal).
Voorbeeldgebruik:
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)
Notitie
De Servo-objecten gebruiken Timer(5) om de PWM-output te produceren. Je kunt Timer(5) gebruiken voor servobesturing, of voor je eigen doeleinden, maar niet beide tegelijk.
Constructors¶
- class pyb.Servo(id: int)¶
Maak een servo-object.
idis het 1-gebaseerde servokanaalnummer; elk kanaal is bedraad naar een vaste headerpin en het aantal kanalen hangt af van de OpenMV Cam:Camera
Servo(1)
Servo(2)
Servo(3)
OpenMV Cam M7 / H7
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8–
pyb.Servois niet beschikbaar op de OpenMV Cam N6.Methoden¶
- angle(angle: int | None = None, time: int = 0) int | None¶
Als er geen argumenten worden opgegeven, retourneert deze functie de huidige hoek.
Als er argumenten worden opgegeven, stelt deze functie de hoek van de servo in:
angleis de hoek in graden waarnaar bewogen moet worden.timeis het aantal milliseconden dat nodig is om de opgegeven hoek te bereiken. Indien weggelaten, beweegt de servo zo snel mogelijk naar zijn nieuwe positie.
- speed(speed: int | None = None, time: int = 0) int | None¶
Als er geen argumenten worden opgegeven, retourneert deze functie de huidige snelheid.
Als er argumenten worden opgegeven, stelt deze functie de snelheid van de servo in:
speedis de snelheid waarnaar gewijzigd moet worden, tussen -100 en 100.timeis het aantal milliseconden dat nodig is om de opgegeven snelheid te bereiken. Indien weggelaten, versnelt de servo zo snel mogelijk.
- pulse_width(value: int | None = None) int | None¶
Als er geen argumenten worden opgegeven, retourneert deze functie de huidige ruwe pulsbreedtewaarde.
Als er een argument wordt opgegeven, stelt deze functie de ruwe pulsbreedtewaarde in.
- calibration(pulse_min: int | None = None, pulse_max: int | None = None, pulse_centre: int | None = None, pulse_angle_90: int | None = None, pulse_speed_100: int | None = None) Tuple[int, int, int, int, int] | None¶
Als er geen argumenten worden opgegeven, retourneert deze functie de huidige kalibratiegegevens, als een 5-tuple.
Als er argumenten worden opgegeven, stelt deze functie de timingkalibratie in:
pulse_minis de minimaal toegestane pulsbreedte.pulse_maxis de maximaal toegestane pulsbreedte.pulse_centreis de pulsbreedte die overeenkomt met de midden-/nulpositie.pulse_angle_90is de pulsbreedte die overeenkomt met 90 graden.pulse_speed_100is de pulsbreedte die overeenkomt met een snelheid van 100.