class Servo – driver per servo hobby a 3 fili

Gli oggetti Servo controllano i normali servomotori hobby a 3 fili (massa, alimentazione, segnale).

Esempio di utilizzo:

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)

Nota

Gli oggetti Servo usano Timer(5) per produrre l’uscita PWM. È possibile usare Timer(5) per il controllo dei Servo, oppure per i propri scopi, ma non entrambe le cose contemporaneamente.

Costruttori

class pyb.Servo(id: int)

Crea un oggetto servo. id è il numero del canale del servo a base 1; ogni canale è cablato a un pin fisso del connettore e il numero di canali dipende dalla OpenMV Cam:

Camera

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo non è disponibile sulla OpenMV Cam N6.

Metodi

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

Se non vengono forniti argomenti, questa funzione restituisce l’angolo corrente.

Se vengono forniti argomenti, questa funzione imposta l’angolo del servo:

  • angle è l’angolo verso cui spostarsi, in gradi.

  • time è il numero di millisecondi da impiegare per raggiungere l’angolo specificato. Se omesso, il servo si sposta il più rapidamente possibile verso la sua nuova posizione.

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

Se non vengono forniti argomenti, questa funzione restituisce la velocità corrente.

Se vengono forniti argomenti, questa funzione imposta la velocità del servo:

  • speed è la velocità a cui passare, compresa tra -100 e 100.

  • time è il numero di millisecondi da impiegare per raggiungere la velocità specificata. Se omesso, il servo accelera il più rapidamente possibile.

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

Se non vengono forniti argomenti, questa funzione restituisce il valore grezzo corrente della larghezza dell’impulso.

Se viene fornito un argomento, questa funzione imposta il valore grezzo della larghezza dell’impulso.

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

Se non vengono forniti argomenti, questa funzione restituisce i dati di calibrazione correnti, come una tupla di 5 elementi.

Se vengono forniti argomenti, questa funzione imposta la calibrazione delle temporizzazioni:

  • pulse_min è la larghezza minima consentita dell’impulso.

  • pulse_max è la larghezza massima consentita dell’impulso.

  • pulse_centre è la larghezza dell’impulso corrispondente alla posizione centrale/zero.

  • pulse_angle_90 è la larghezza dell’impulso corrispondente a 90 gradi.

  • pulse_speed_100 è la larghezza dell’impulso corrispondente a una velocità di 100.