class Servo – driver de servo de hobby de 3 fios

Objetos Servo controlam servomotores de hobby padrão com 3 fios (terra, alimentação, sinal).

Exemplo 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

Os objetos Servo usam o Timer(5) para produzir a saída PWM. Você pode usar o Timer(5) para controle de Servo, ou para seus próprios propósitos, mas não ambos ao mesmo tempo.

Construtores

class pyb.Servo(id: int)

Cria um objeto servo. id é o número do canal do servo (com base em 1); cada canal está conectado a um pino fixo do header e o número de canais depende da OpenMV Cam:

Câmera

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

pyb.Servo não está disponível na OpenMV Cam N6.

Métodos

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

Se nenhum argumento for fornecido, esta função retorna o ângulo atual.

Se argumentos forem fornecidos, esta função define o ângulo do servo:

  • angle é o ângulo para o qual mover, em graus.

  • time é o número de milissegundos a levar para chegar ao ângulo especificado. Se omitido, então o servo se move o mais rápido possível para sua nova posição.

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

Se nenhum argumento for fornecido, esta função retorna a velocidade atual.

Se argumentos forem fornecidos, esta função define a velocidade do servo:

  • speed é a velocidade para a qual mudar, entre -100 e 100.

  • time é o número de milissegundos a levar para chegar à velocidade especificada. Se omitido, então o servo acelera o mais rápido possível.

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

Se nenhum argumento for fornecido, esta função retorna o valor bruto atual de largura de pulso.

Se um argumento for fornecido, esta função define o valor bruto de largura de pulso.

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 nenhum argumento for fornecido, esta função retorna os dados de calibração atuais, como uma 5-tupla.

Se argumentos forem fornecidos, esta função define a calibração de temporização:

  • pulse_min é a largura de pulso mínima permitida.

  • pulse_max é a largura de pulso máxima permitida.

  • pulse_centre é a largura de pulso correspondente à posição central/zero.

  • pulse_angle_90 é a largura de pulso correspondente a 90 graus.

  • pulse_speed_100 é a largura de pulso correspondente a uma velocidade de 100.