клас 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
P7P8P9OpenMV Cam M4 / H7 Plus / Pure Thermal
P7P8–
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.