class Servo – pilote de servomoteur de loisir à 3 fils

Les objets Servo contrôlent des servomoteurs de loisir standard à 3 fils (masse, alimentation, signal).

Exemple d’utilisation

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)

Note

Les objets Servo utilisent Timer(5) pour produire la sortie PWM. Vous pouvez utiliser Timer(5) pour le contrôle des servos, ou pour vos propres besoins, mais pas les deux en même temps.

Constructeurs

class pyb.Servo(id: int)

Crée un objet servo. id est le numéro de canal de servo basé sur 1 ; chaque canal est câblé à une broche fixe du connecteur et le nombre de canaux dépend de l’OpenMV Cam :

Caméra

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’est pas disponible sur l’OpenMV Cam N6.

Méthodes

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

Si aucun argument n’est fourni, cette fonction retourne l’angle actuel.

Si des arguments sont fournis, cette fonction définit l’angle du servo :

  • angle est l’angle vers lequel se déplacer, en degrés.

  • time est le nombre de millisecondes à prendre pour atteindre l’angle spécifié. S’il est omis, alors le servo se déplace aussi rapidement que possible vers sa nouvelle position.

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

Si aucun argument n’est fourni, cette fonction retourne la vitesse actuelle.

Si des arguments sont fournis, cette fonction définit la vitesse du servo :

  • speed est la vitesse vers laquelle changer, entre -100 et 100.

  • time est le nombre de millisecondes à prendre pour atteindre la vitesse spécifiée. S’il est omis, alors le servo accélère aussi rapidement que possible.

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

Si aucun argument n’est fourni, cette fonction retourne la valeur brute actuelle de largeur d’impulsion.

Si un argument est fourni, cette fonction définit la valeur brute de largeur d’impulsion.

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 aucun argument n’est fourni, cette fonction retourne les données de calibration actuelles, sous forme de 5-uplet.

Si des arguments sont fournis, cette fonction définit la calibration de la temporisation :

  • pulse_min est la largeur d’impulsion minimale autorisée.

  • pulse_max est la largeur d’impulsion maximale autorisée.

  • pulse_centre est la largeur d’impulsion correspondant à la position centre/zéro.

  • pulse_angle_90 est la largeur d’impulsion correspondant à 90 degrés.

  • pulse_speed_100 est la largeur d’impulsion correspondant à une vitesse de 100.