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. id is 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

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo is 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:

  • angle is de hoek in graden waarnaar bewogen moet worden.

  • time is 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:

  • speed is de snelheid waarnaar gewijzigd moet worden, tussen -100 en 100.

  • time is 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_min is de minimaal toegestane pulsbreedte.

  • pulse_max is de maximaal toegestane pulsbreedte.

  • pulse_centre is de pulsbreedte die overeenkomt met de midden-/nulpositie.

  • pulse_angle_90 is de pulsbreedte die overeenkomt met 90 graden.

  • pulse_speed_100 is de pulsbreedte die overeenkomt met een snelheid van 100.