Les moteurs

moteur Légomoteur Légo

Importer les classes

La programmation des moteurs nécessite d'importer les classes Motor, Port et éventuellement Direction :

#!/usr/bin/env pybricks-micropython
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Direction

Initialiser un moteur

L'initialisation d'un moteur se fait en créant une instance de la classe Motor.

Le sens positif de rotation du moteur par défaut est représenté sur le schéma ci-dessous.

💻 mon_moteur = Motor(port)

Paramètre

Ports utilisables pour les moteurs

Les ports utilisables pour les moteurs sont : Port.A ; Port.B ; Port.C ; Port.D.

Exemple

#!/usr/bin/env pybricks-micropython
from pybricks.ev3devices import Motor
from pybricks.parameters import Port

moteur_gauche = Motor(Port.A)

Récupérer les informations d'un moteur

💻 mon_moteur.angle()

Description

Récupère la valeur cumulée de l'angle de rotation du moteur en degrés.

Valeur renvoyée

💻 mon_moteur.reset_angle(angle)

Description

Réinitialise la valeur cumulée de l'angle de rotation du moteur.

Paramètre

💻 mon_moteur.speed()

Description

Récupère la vitesse angulaire du moteur en deg/s.

Valeur renvoyée

🔎 Exemple

Démarrer et arrêter un moteur

💻 mon_moteur.run(speed)

Description

Maintient le moteur à une vitesse angulaire constante.

Le moteur accélère pour atteindre la vitesse demandée et maintient cette vitesse jusqu'à recevoir une nouvelle commande.

Paramètre

💻 mon_moteur.stop()

Description

Arrête le moteur et le laisse libre.

Le moteur s'arrête progressivement du fait des frottements.

💻 mon_moteur.brake()

Description

Arrête le moteur en le freinant de façon passive.

Le moteur s'arrête progressivement du fait des frottements et des forces électromagnétiques.

💻 mon_moteur.hold()

Description

Arrête le moteur et le bloque.

Le moteur s'arrête brusquement.

Piloter un moteur avec des instructions spécifiques

💻 mon_moteur.run_time(speed, time, then=Stop.COAST, wait=True)

Description

Maintient le moteur à une vitesse angulaire constante pendant un temps donné.

Le moteur accélère pour atteindre la vitesse demandée, maintient cette vitesse, puis décélère jusqu'à s'arrêter. La durée de l'ensemble correspond à la durée demandée.

Paramètres

💻 mon_moteur.run_angle(speed, rotation_angle, then=Stop.COAST, wait=True)

Description

Fait tourner le moteur à une vitesse angulaire constante d'un angle spécifié.

Parameters

💻 mon_moteur.run_target(speed, target_angle, then=Stop.COAST, wait=True)

Description

Fait tourner le moteur à une vitesse angulaire constante jusqu'à atteindre l'angle cumulé spécifié.

Le sens de rotation du moteur est déterminé automatiquement en fonction de la valeur de départ et d'arrivée de l'angle cumulé, indépendamment du signe de la vitesse angulaire.

The direction of rotation is automatically selected based on the target angle.

Parameters

💻 run_until_stalled(speed, then=Stop.COAST, duty_limit=None)

Description

Fait tourner le moteur à une vitesse angulaire constante jusqu'à ce qu'il cale.

Parameters

Valeur renvoyée

💻 track_target(target_angle)

Description

Fait tourner le moteur le plus rapidement possible jusqu'à atteindre l'angle cumulé spécifié.

Paramètre