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.
idto 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
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8–
pyb.Servonie 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:
angleto kąt, do którego należy się przesunąć, w stopniach.timeto 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:
speedto prędkość, na jaką należy zmienić, w zakresie od -100 do 100.timeto 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_minto minimalna dozwolona szerokość impulsu.pulse_maxto maksymalna dozwolona szerokość impulsu.pulse_centreto szerokość impulsu odpowiadająca pozycji środkowej/zerowej.pulse_angle_90to szerokość impulsu odpowiadająca 90 stopniom.pulse_speed_100to szerokość impulsu odpowiadająca prędkości 100.