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.