клас Servo – драйвер хобі-сервопривода з 3-дротовим підключенням

Об’єкти Servo керують стандартними хобі-сервоприводами з 3-дротовим підключенням (земля, живлення, сигнал).

Приклад використання:

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)

Примітка

Об’єкти Servo використовують Timer(5) для формування PWM-сигналу. Можна використовувати Timer(5) для керування Servo або для власних цілей, але не для обох одночасно.

Конструктори

class pyb.Servo(id: int)

Створити об’єкт сервопривода. id – номер каналу сервопривода з відліком від 1; кожен канал підключений до фіксованого виводу роз’єму, і кількість каналів залежить від OpenMV Cam:

Камера

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.

Методи

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

Якщо аргументи не задані, ця функція повертає поточний кут.

Якщо аргументи задані, ця функція встановлює кут сервопривода:

  • angle – кут повороту в градусах.

  • time – кількість мілісекунд для досягнення заданого кута. Якщо опущено, сервопривод переміщується якомога швидше до нового положення.

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

Якщо аргументи не задані, ця функція повертає поточну швидкість.

Якщо аргументи задані, ця функція встановлює швидкість сервопривода:

  • speed – швидкість для зміни, від -100 до 100.

  • time – кількість мілісекунд для досягнення заданої швидкості. Якщо опущено, сервопривод прискорюється якомога швидше.

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

Якщо аргументи не задані, ця функція повертає поточне необроблене значення ширини імпульсу.

Якщо аргумент задано, ця функція встановлює необроблене значення ширини імпульсу.

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

Якщо аргументи не задані, ця функція повертає поточні дані калібрування у вигляді 5-елементного кортежу.

Якщо аргументи задані, ця функція встановлює калібрування часових параметрів:

  • pulse_min – мінімально допустима ширина імпульсу.

  • pulse_max – максимально допустима ширина імпульсу.

  • pulse_centre – ширина імпульсу, що відповідає центральному/нульовому положенню.

  • pulse_angle_90 – ширина імпульсу, що відповідає 90 градусам.

  • pulse_speed_100 – ширина імпульсу, що відповідає швидкості 100.