class Servo – 3 vezetékes hobbi szervó-meghajtó

A Servo objektumok 3 vezetékes (föld, táp, jel) szabványos hobbi szervómotorokat vezérelnek.

Példa a használatra:

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)

Megjegyzés

A Servo objektumok a Timer(5)-öt használják a PWM-kimenet előállításához. A Timer(5)-öt használhatja szervóvezérlésre vagy saját céljaira, de nem mindkettőre egyidejűleg.

Konstruktorok

class pyb.Servo(id: int)

Szervó objektum létrehozása. Az id az 1-alapú szervócsatorna száma; minden csatorna egy rögzített fejléc-lábhoz van bekötve, és a csatornák száma az OpenMV Camtől függ:

Kamera

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

A pyb.Servo nem érhető el az OpenMV Cam N6 esetén.

Metódusok

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

Ha nem ad meg argumentumokat, ez a függvény az aktuális szöget adja vissza.

Ha argumentumokat ad meg, ez a függvény beállítja a szervó szögét:

  • Az angle az a szög fokban, amelyre el kell mozogni.

  • A time az ezredmásodpercek száma, amennyi idő alatt el kell érni a megadott szöget. Ha elhagyják, akkor a szervó a lehető leggyorsabban az új pozíciójába mozog.

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

Ha nem ad meg argumentumokat, ez a függvény az aktuális sebességet adja vissza.

Ha argumentumokat ad meg, ez a függvény beállítja a szervó sebességét:

  • A speed a beállítandó sebesség, -100 és 100 között.

  • A time az ezredmásodpercek száma, amennyi idő alatt el kell érni a megadott sebességet. Ha elhagyják, akkor a szervó a lehető leggyorsabban gyorsul.

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

Ha nem ad meg argumentumokat, ez a függvény az aktuális nyers impulzusszélesség-értéket adja vissza.

Ha argumentumot ad meg, ez a függvény beállítja a nyers impulzusszélesség-értéket.

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

Ha nem ad meg argumentumokat, ez a függvény az aktuális kalibrációs adatokat adja vissza, egy 5 elemű rekordként (tuple).

Ha argumentumokat ad meg, ez a függvény beállítja az időzítési kalibrációt:

  • A pulse_min a megengedett minimális impulzusszélesség.

  • A pulse_max a megengedett maximális impulzusszélesség.

  • A pulse_centre a középső/nulla pozíciónak megfelelő impulzusszélesség.

  • A pulse_angle_90 a 90 foknak megfelelő impulzusszélesség.

  • A pulse_speed_100 a 100-as sebességnek megfelelő impulzusszélesség.