Les moteurs


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
port (Port)
– Port auquel le moteur est connecté.
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
- (
int
) – Valeur cumulée de l'angle de rotation du moteur en degrés.
💻 mon_moteur.reset_angle(angle)
Description
Réinitialise la valeur cumulée de l'angle de rotation du moteur.
Paramètre
angle
(int
) – Valeur de l'angle en degrés utilisée pour la réinitialisation de l'angle cumulé.
💻 mon_moteur.speed()
Description
Récupère la vitesse angulaire du moteur en deg/s.
Valeur renvoyée
- (
int
) – Vitesse angulaire du moteur en deg/s.
🔎 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
- speed (int) – Vitesse angulaire en deg/s.
💻 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
speed
(int
) – Vitesse angulaire du moteur en deg/s.time
(int) – Durée de la rotation en ms.then
(Stop) – Indique l'action du moteur après l'immobilisation : libreStop.COAST
, résistance passiveStop.BRAKE
, bloquéStop.HOLD
.wait
(bool) – Indique si le programme doit attendre la fin de l'action pour continuer.
💻 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
speed
(int
) – Vitesse angulaire de rotation du moteur en deg/s.rotation_angle
(int) – Angle de rotation en degrés.then
(Stop) – Indique l'action du moteur après l'immobilisation : libreStop.COAST
, résistance passiveStop.BRAKE
, bloquéStop.HOLD
.wait
(bool) – Indique si le programme doit attendre la fin de l'action pour continuer.
💻 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
speed
(int
) – Vitesse angulaire de rotation du moteur en deg/s.target_angle
(int) – Valeur de l'angle à atteindre en degrés.then
(Stop) – Indique l'action du moteur après l'immobilisation : libreStop.COAST
, résistance passiveStop.BRAKE
, bloquéStop.HOLD
.wait
(bool) – Indique si le programme doit attendre la fin de l'action pour continuer.
💻 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
speed
(int
) – Vitesse angulaire de rotation du moteur en deg/s.then
(Stop) – Indique l'action du moteur après l'immobilisation : libreStop.COAST
, résistance passiveStop.BRAKE
, bloquéStop.HOLD
.- duty_limit (
int
) - Couple limite en pourcentage %.
Valeur renvoyée
- (int) - Valeur de l'angle du moteur lorsqu'il a calé en deg
💻 track_target(target_angle)
Description
Fait tourner le moteur le plus rapidement possible jusqu'à atteindre l'angle cumulé spécifié.
Paramètre
target_angle
(int
) - Angle que le moteur doit atteindre en degrés.