Le mode véhicule

moteur Légo

Présentation

Le mode véhicule

Dans cette partie, on appelle véhicule un ensemble de deux roues entraînées de façon synchrone par deux moteurs.

Un véhicule se caractérise par :

Le point de référence est le point situé au milieu entre les deux roues.

Importer les classes

La classe DriveBase permet de créer un véhicule.

L'importation des classes Motor, DriveBase et Port est nécessaire.

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

Initialiser le véhicule

💻 mon_vehicule = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

Description

Crée un véhicule avec deux roues entrainées par deux moteurs.

Attention : l'initialisation d'un véhicule nécessite d'abord d'initialiser les moteurs en créant deux instances de la classe Motor, ces deux instances seront utilisées comme paramètres.

Paramètres

Exemple

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

# Initialisation des deux moteurs
m_left = Motor(Port.B)
m_right = Motor(Port.C)
# Initialisation du véhicule robotisé
robot = DriveBase(m_left, m_right, 56, 114)

Démarrer et arrêter le véhicule

💻 mon_vehicule.drive(drive_speed, turn_rate)

Description

Démarre le véhicule en le faisant avancer et/ou tourner aux vitesses spécifiées.

Paramètres

💻 mon_vehicule.stop()

Description

Arrête les moteurs.

Exemple

Fait avancer le robot pendant 2000 ms à la vitesse de 50 mm/s (soit un déplacement de 100 mm) puis fait tourner le robot pendant 2000 ms à la vitesse angulaire de 45 deg/s (soit une rotation d'un angle de 90 deg).

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

# Initialisation des deux moteurs
m_left = Motor(Port.A)
m_right = Motor(Port.B)
# Initialisation du véhicule robotisé
robot = DriveBase(m_left, m_right, 44, 114)

robot.drive(50,0)
wait(2000)
robot.stop()
robot.drive(0,45)
wait(2000)
robot.stop()

Mesurer la distance parcourue ou l'angle de rotation

💻 mon_vehicule.distance()

Description

Renvoie la distance parcourue estimée depuis la dernière réinitialisation.

Valeur renvoyée

💻 mon_vehicule.angle()

Description

Renvoie l'angle de rotation accumulé estimé depuis la dernière réinitialisation

Valeur renvoyée

💻 mon_vehicule.state()

Description

Renvoie la distance, la vitesse linéaire, l'angle et la vitesse angulaire du véhicule.

Valeur renvoyée

💻 mon_vehicule.reset()

Description

Réinitialise à 0 la valeur de la distance et de l'angle pour les fonctions distance(), angle() et state().

Exemple

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

# Initialisation des deux moteurs
m_left = Motor(Port.A)
m_right = Motor(Port.B)
# Initialisation du véhicule robotisé
robot = DriveBase(m_left, m_right, 44, 114)

robot.drive(50,0)
while robot.distance() < 100:
    wait(100)
robot.stop()

Avancer ou tourner avec des valeurs spécifiées

💻 mon_vehicule.settings(straight_speed, straight_acceleration, turn_rate, turn_acceleration)

Description

Définit les vitesses et accélérations pour les fonctions straight(distance) et turn(angle).

L'utilisation de la fonction settigns() ne peut se faire que lorsque le robot est arrêté, c'est à dire avant qu'il ne démarre ou après l'appel de la fonction stop().

Remarque : Sans argument, la fonction renvoie les valeurs sous la forme d'un tuple.

Paramètres

💻 mon_vehicule.straight(distance)

Description

Fait avancer le véhicule de la distance spécifiée en mm.

Paramètre

💻 mon_vehicule.turn(angle)

Description

Fait tourner le véhicule sur place de l'angle spécifié en deg.

Paramètre

Exemple

Fait avancer le robot d'une distance de 100 mm avec :

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

# Initialisation des deux moteurs
m_left = Motor(Port.A)
m_right = Motor(Port.B)
# Initialisation du véhicule robotisé
robot = DriveBase(m_left, m_right, 44, 114)

robot.settings(50, 100, 45, 0)
robot.straight(100)