třída Servo – ovladač 3vodičového hobby serva¶
Objekty Servo ovládají standardní hobby servomotory se 3 vodiči (zem, napájení, signál).
Příklad použití:
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)
Poznámka
Objekty Servo používají Timer(5) pro generování PWM výstupu. Timer(5) můžete použít pro ovládání serva, nebo pro vlastní účely, ale ne pro obojí současně.
Konstruktory¶
- class pyb.Servo(id: int)¶
Vytvoří objekt serva.
idje číslo kanálu serva počítané od 1; každý kanál je zapojen na pevný pin konektoru a počet kanálů závisí na OpenMV Cam:Kamera
Servo(1)
Servo(2)
Servo(3)
OpenMV Cam M7 / H7
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8–
pyb.Servonení dostupné na OpenMV Cam N6.Metody¶
- angle(angle: int | None = None, time: int = 0) int | None¶
Pokud nejsou zadány žádné argumenty, tato funkce vrátí aktuální úhel.
Pokud jsou zadány argumenty, tato funkce nastaví úhel serva:
angleje úhel, na který se má přesunout, ve stupních.timeje počet milisekund, za které se má dosáhnout zadaného úhlu. Pokud je vynechán, servo se přesune do nové polohy co nejrychleji.
- speed(speed: int | None = None, time: int = 0) int | None¶
Pokud nejsou zadány žádné argumenty, tato funkce vrátí aktuální rychlost.
Pokud jsou zadány argumenty, tato funkce nastaví rychlost serva:
speedje rychlost, na kterou se má změnit, mezi -100 a 100.timeje počet milisekund, za které se má dosáhnout zadané rychlosti. Pokud je vynechán, servo zrychluje co nejrychleji.
- pulse_width(value: int | None = None) int | None¶
Pokud nejsou zadány žádné argumenty, tato funkce vrátí aktuální nezpracovanou hodnotu šířky impulzu.
Pokud je zadán argument, tato funkce nastaví nezpracovanou hodnotu šířky impulzu.
- 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¶
Pokud nejsou zadány žádné argumenty, tato funkce vrátí aktuální kalibrační data jako 5-tici.
Pokud jsou zadány argumenty, tato funkce nastaví kalibraci časování:
pulse_minje minimální povolená šířka impulzu.pulse_maxje maximální povolená šířka impulzu.pulse_centreje šířka impulzu odpovídající střední/nulové poloze.pulse_angle_90je šířka impulzu odpovídající 90 stupňům.pulse_speed_100je šířka impulzu odpovídající rychlosti 100.