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. id je čí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

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

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

  • angle je úhel, na který se má přesunout, ve stupních.

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

  • speed je rychlost, na kterou se má změnit, mezi -100 a 100.

  • time je 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_min je minimální povolená šířka impulzu.

  • pulse_max je maximální povolená šířka impulzu.

  • pulse_centre je šířka impulzu odpovídající střední/nulové poloze.

  • pulse_angle_90 je šířka impulzu odpovídající 90 stupňům.

  • pulse_speed_100 je šířka impulzu odpovídající rychlosti 100.