class Servo – 3-Draht-Hobby-Servotreiber¶
Servo-Objekte steuern standardmäßige Hobby-Servomotoren mit 3 Drähten (Masse, Strom, Signal).
Anwendungsbeispiel:
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)
Bemerkung
Die Servo-Objekte verwenden Timer(5), um den PWM-Ausgang zu erzeugen. Sie können Timer(5) für die Servosteuerung oder für Ihre eigenen Zwecke verwenden, aber nicht beides gleichzeitig.
Konstruktoren¶
- class pyb.Servo(id: int)¶
Erzeugt ein Servo-Objekt.
idist die 1-basierte Servo-Kanalnummer; jeder Kanal ist mit einem festen Header-Pin verdrahtet, und die Anzahl der Kanäle hängt von der OpenMV Cam ab:Kamera
Servo(1)
Servo(2)
Servo(3)
OpenMV Cam M7 / H7
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8–
pyb.Servoist auf der OpenMV Cam N6 nicht verfügbar.Methoden¶
- angle(angle: int | None = None, time: int = 0) int | None¶
Wenn keine Argumente angegeben werden, gibt diese Funktion den aktuellen Winkel zurück.
Wenn Argumente angegeben werden, setzt diese Funktion den Winkel des Servos:
angleist der Winkel in Grad, zu dem bewegt werden soll.timeist die Anzahl der Millisekunden, die benötigt werden, um den angegebenen Winkel zu erreichen. Wenn weggelassen, bewegt sich der Servo so schnell wie möglich zu seiner neuen Position.
- speed(speed: int | None = None, time: int = 0) int | None¶
Wenn keine Argumente angegeben werden, gibt diese Funktion die aktuelle Geschwindigkeit zurück.
Wenn Argumente angegeben werden, setzt diese Funktion die Geschwindigkeit des Servos:
speedist die Geschwindigkeit, auf die gewechselt werden soll, zwischen -100 und 100.timeist die Anzahl der Millisekunden, die benötigt werden, um die angegebene Geschwindigkeit zu erreichen. Wenn weggelassen, beschleunigt der Servo so schnell wie möglich.
- pulse_width(value: int | None = None) int | None¶
Wenn keine Argumente angegeben werden, gibt diese Funktion den aktuellen rohen Pulsweitenwert zurück.
Wenn ein Argument angegeben wird, setzt diese Funktion den rohen Pulsweitenwert.
- 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¶
Wenn keine Argumente angegeben werden, gibt diese Funktion die aktuellen Kalibrierungsdaten als 5-Tupel zurück.
Wenn Argumente angegeben werden, setzt diese Funktion die Timing-Kalibrierung:
pulse_minist die minimal zulässige Pulsweite.pulse_maxist die maximal zulässige Pulsweite.pulse_centreist die Pulsweite, die der Mittel-/Nullposition entspricht.pulse_angle_90ist die Pulsweite, die 90 Grad entspricht.pulse_speed_100ist die Pulsweite, die einer Geschwindigkeit von 100 entspricht.