class Servo – controlador de servo de aficionado de 3 hilos

Los objetos Servo controlan servomotores estándar de aficionado con 3 hilos (tierra, alimentación, señal).

Ejemplo de uso:

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

Los objetos Servo usan Timer(5) para producir la salida PWM. Puede usar Timer(5) para el control de servos, o para sus propios fines, pero no para ambos al mismo tiempo.

Constructores

class pyb.Servo(id: int)

Crea un objeto servo. id es el número de canal de servo basado en 1; cada canal está conectado a un pin fijo del conector y el número de canales depende de la OpenMV Cam:

Cámara

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo no está disponible en la OpenMV Cam N6.

Métodos

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

Si no se proporcionan argumentos, esta función devuelve el ángulo actual.

Si se proporcionan argumentos, esta función establece el ángulo del servo:

  • angle es el ángulo al que moverse, en grados.

  • time es el número de milisegundos que se tarda en llegar al ángulo especificado. Si se omite, el servo se mueve lo más rápido posible a su nueva posición.

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

Si no se proporcionan argumentos, esta función devuelve la velocidad actual.

Si se proporcionan argumentos, esta función establece la velocidad del servo:

  • speed es la velocidad a la que cambiar, entre -100 y 100.

  • time es el número de milisegundos que se tarda en llegar a la velocidad especificada. Si se omite, el servo acelera lo más rápido posible.

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

Si no se proporcionan argumentos, esta función devuelve el valor actual del ancho de pulso en bruto.

Si se proporciona un argumento, esta función establece el valor del ancho de pulso en bruto.

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

Si no se proporcionan argumentos, esta función devuelve los datos de calibración actuales, como una tupla de 5 elementos.

Si se proporcionan argumentos, esta función establece la calibración de temporización:

  • pulse_min es el ancho de pulso mínimo permitido.

  • pulse_max es el ancho de pulso máximo permitido.

  • pulse_centre es el ancho de pulso correspondiente a la posición central/cero.

  • pulse_angle_90 es el ancho de pulso correspondiente a 90 grados.

  • pulse_speed_100 es el ancho de pulso correspondiente a una velocidad de 100.