clasa Servo – driver pentru servo hobby cu 3 fire

Obiectele Servo controlează servomotoare standard de tip hobby cu 3 fire (masă, alimentare, semnal).

Exemplu de utilizare:

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ă

Obiectele Servo folosesc Timer(5) pentru a produce ieșirea PWM. Puteți folosi Timer(5) pentru controlul Servo, sau pentru propriile scopuri, dar nu ambele în același timp.

Constructori

class pyb.Servo(id: int)

Creează un obiect servo. id este numărul canalului servo, cu numărare de la 1; fiecare canal este conectat la un pin fix de pe header, iar numărul de canale depinde de camera OpenMV Cam:

Cameră

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo nu este disponibil pe OpenMV Cam N6.

Metode

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

Dacă nu sunt furnizate argumente, această funcție returnează unghiul curent.

Dacă sunt furnizate argumente, această funcție setează unghiul servomotorului:

  • angle este unghiul la care se deplasează, în grade.

  • time este numărul de milisecunde necesar pentru a ajunge la unghiul specificat. Dacă este omis, atunci servomotorul se deplasează cât mai rapid posibil către noua poziție.

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

Dacă nu sunt furnizate argumente, această funcție returnează viteza curentă.

Dacă sunt furnizate argumente, această funcție setează viteza servomotorului:

  • speed este viteza la care se schimbă, între -100 și 100.

  • time este numărul de milisecunde necesar pentru a ajunge la viteza specificată. Dacă este omis, atunci servomotorul accelerează cât mai rapid posibil.

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

Dacă nu sunt furnizate argumente, această funcție returnează valoarea brută curentă a lățimii impulsului.

Dacă este furnizat un argument, această funcție setează valoarea brută a lățimii impulsului.

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

Dacă nu sunt furnizate argumente, această funcție returnează datele de calibrare curente, sub forma unui tuplu cu 5 elemente.

Dacă sunt furnizate argumente, această funcție setează calibrarea temporizării:

  • pulse_min este lățimea minimă permisă a impulsului.

  • pulse_max este lățimea maximă permisă a impulsului.

  • pulse_centre este lățimea impulsului corespunzătoare poziției centrale/zero.

  • pulse_angle_90 este lățimea impulsului corespunzătoare a 90 de grade.

  • pulse_speed_100 este lățimea impulsului corespunzătoare unei viteze de 100.