class Servo – 3 telli hobi servo sürücüsü

Servo nesneleri, 3 telli (toprak, güç, sinyal) standart hobi servo motorlarını denetler.

Örnek kullanım:

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)

Not

Servo nesneleri, PWM çıkışını üretmek için Timer(5) kullanır. Timer(5)’i Servo denetimi için ya da kendi amaçlarınız için kullanabilirsiniz, ancak ikisini aynı anda kullanamazsınız.

Yapıcılar

class pyb.Servo(id: int)

Bir servo nesnesi oluşturur. id, 1 tabanlı servo kanal numarasıdır; her kanal sabit bir başlık pinine bağlıdır ve kanal sayısı OpenMV Cam’e bağlıdır:

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, OpenMV Cam N6 üzerinde kullanılamaz.

Yöntemler

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

Argüman verilmezse, bu işlev geçerli açıyı döndürür.

Argümanlar verilirse, bu işlev servonun açısını ayarlar:

  • angle, derece cinsinden hareket edilecek açıdır.

  • time, belirtilen açıya ulaşmak için harcanacak milisaniye sayısıdır. Atlanırsa servo, yeni konumuna olabildiğince hızlı hareket eder.

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

Argüman verilmezse, bu işlev geçerli hızı döndürür.

Argümanlar verilirse, bu işlev servonun hızını ayarlar:

  • speed, -100 ile 100 arasında değiştirilecek hızdır.

  • time, belirtilen hıza ulaşmak için harcanacak milisaniye sayısıdır. Atlanırsa servo, olabildiğince hızlı ivmelenir.

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

Argüman verilmezse, bu işlev geçerli ham darbe genişliği değerini döndürür.

Bir argüman verilirse, bu işlev ham darbe genişliği değerini ayarlar.

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

Argüman verilmezse, bu işlev geçerli kalibrasyon verilerini 5 öğeli bir demet olarak döndürür.

Argümanlar verilirse, bu işlev zamanlama kalibrasyonunu ayarlar:

  • pulse_min, izin verilen minimum darbe genişliğidir.

  • pulse_max, izin verilen maksimum darbe genişliğidir.

  • pulse_centre, merkez/sıfır konumuna karşılık gelen darbe genişliğidir.

  • pulse_angle_90, 90 dereceye karşılık gelen darbe genişliğidir.

  • pulse_speed_100, 100 hızına karşılık gelen darbe genişliğidir.