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

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

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

  • angle ist der Winkel in Grad, zu dem bewegt werden soll.

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

  • speed ist die Geschwindigkeit, auf die gewechselt werden soll, zwischen -100 und 100.

  • time ist 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_min ist die minimal zulässige Pulsweite.

  • pulse_max ist die maximal zulässige Pulsweite.

  • pulse_centre ist die Pulsweite, die der Mittel-/Nullposition entspricht.

  • pulse_angle_90 ist die Pulsweite, die 90 Grad entspricht.

  • pulse_speed_100 ist die Pulsweite, die einer Geschwindigkeit von 100 entspricht.