klasa Servo – sterownik 3-przewodowego serwomechanizmu modelarskiego

Obiekty Servo sterują standardowymi serwomechanizmami modelarskimi z 3 przewodami (masa, zasilanie, sygnał).

Przykład użycia:

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)

Informacja

Obiekty Servo używają Timer(5) do generowania wyjścia PWM. Możesz używać Timer(5) do sterowania serwomechanizmem lub do własnych celów, ale nie do obu naraz.

Konstruktory

class pyb.Servo(id: int)

Tworzy obiekt serwomechanizmu. id to numerowany od 1 numer kanału serwomechanizmu; każdy kanał jest podłączony do stałego pinu złącza, a liczba kanałów zależy od kamery OpenMV Cam:

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 nie jest dostępne na OpenMV Cam N6.

Metody

angle(angle: int | None = None, time: int = 0) int | None

Jeśli nie podano argumentów, funkcja ta zwraca bieżący kąt.

Jeśli podano argumenty, funkcja ta ustawia kąt serwomechanizmu:

  • angle to kąt, do którego należy się przesunąć, w stopniach.

  • time to liczba milisekund potrzebnych na osiągnięcie określonego kąta. Jeśli pominięty, serwomechanizm przemieszcza się do nowej pozycji tak szybko, jak to możliwe.

speed(speed: int | None = None, time: int = 0) int | None

Jeśli nie podano argumentów, funkcja ta zwraca bieżącą prędkość.

Jeśli podano argumenty, funkcja ta ustawia prędkość serwomechanizmu:

  • speed to prędkość, na jaką należy zmienić, w zakresie od -100 do 100.

  • time to liczba milisekund potrzebnych na osiągnięcie określonej prędkości. Jeśli pominięty, serwomechanizm przyspiesza tak szybko, jak to możliwe.

pulse_width(value: int | None = None) int | None

Jeśli nie podano argumentów, funkcja ta zwraca bieżącą surową wartość szerokości impulsu.

Jeśli podano argument, funkcja ta ustawia surową wartość szerokości impulsu.

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

Jeśli nie podano argumentów, funkcja ta zwraca bieżące dane kalibracyjne jako 5-elementową krotkę.

Jeśli podano argumenty, funkcja ta ustawia kalibrację czasową:

  • pulse_min to minimalna dozwolona szerokość impulsu.

  • pulse_max to maksymalna dozwolona szerokość impulsu.

  • pulse_centre to szerokość impulsu odpowiadająca pozycji środkowej/zerowej.

  • pulse_angle_90 to szerokość impulsu odpowiadająca 90 stopniom.

  • pulse_speed_100 to szerokość impulsu odpowiadająca prędkości 100.