kelas Servo -- driver servo hobi 3-kabel

Objek Servo mengontrol motor servo hobi standar dengan 3 kabel (ground, daya, sinyal).

Contoh penggunaan:

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)

Catatan

Objek Servo menggunakan Timer(5) untuk menghasilkan output PWM. Anda dapat menggunakan Timer(5) untuk kontrol Servo, atau keperluan sendiri, tetapi tidak keduanya sekaligus.

Konstruktor

class pyb.Servo(id: int)

Membuat objek servo. id adalah nomor saluran servo berbasis 1; setiap saluran terhubung ke pin header yang tetap dan jumlah saluran bergantung pada 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 tidak tersedia pada OpenMV Cam N6.

Metode

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

Jika tidak ada argumen yang diberikan, fungsi ini mengembalikan sudut saat ini.

Jika argumen diberikan, fungsi ini menetapkan sudut servo:

  • angle adalah sudut yang akan dituju dalam derajat.

  • time adalah jumlah milidetik yang diperlukan untuk mencapai sudut yang ditentukan. Jika dihilangkan, servo bergerak secepat mungkin ke posisi barunya.

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

Jika tidak ada argumen yang diberikan, fungsi ini mengembalikan kecepatan saat ini.

Jika argumen diberikan, fungsi ini menetapkan kecepatan servo:

  • speed adalah kecepatan yang akan diubah, antara -100 dan 100.

  • time adalah jumlah milidetik yang diperlukan untuk mencapai kecepatan yang ditentukan. Jika dihilangkan, servo mempercepat secepat mungkin.

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

Jika tidak ada argumen yang diberikan, fungsi ini mengembalikan nilai lebar pulsa mentah saat ini.

Jika argumen diberikan, fungsi ini menetapkan nilai lebar pulsa mentah.

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

Jika tidak ada argumen yang diberikan, fungsi ini mengembalikan data kalibrasi saat ini, sebagai tuple 5 elemen.

Jika argumen diberikan, fungsi ini menetapkan kalibrasi timing:

  • pulse_min adalah lebar pulsa minimum yang diizinkan.

  • pulse_max adalah lebar pulsa maksimum yang diizinkan.

  • pulse_centre adalah lebar pulsa yang sesuai dengan posisi tengah/nol.

  • pulse_angle_90 adalah lebar pulsa yang sesuai dengan 90 derajat.

  • pulse_speed_100 adalah lebar pulsa yang sesuai dengan kecepatan 100.