Transmission#

Introduction#

Le robot 123 possède une transmission à deux roues motrices lui permettant d’avancer et de tourner. Le mode de transmission détermine la façon dont le robot se déplace.

La transmission peut mesurer la distance de deux manières : en pas et en mm (millimètres). Un pas correspond à un carré sur un terrain 123.

Il existe plusieurs façons de programmer la transmission. Vous trouverez ci-dessous la liste de toutes les méthodes de programmation de la transmission :

Actions — Déplacer et faire pivoter le robot.

  • drive — Déplace le robot vers l’avant ou vers l’arrière en permanence.

  • drive_for — Déplace le robot vers l’avant ou vers l’arrière sur une distance spécifique.

  • drive_until — Déplace le robot vers l’avant ou vers l’arrière jusqu’à ce qu’il détecte un objet, une collision ou une ligne.

  • turn — Fait tourner le robot à gauche ou à droite indéfiniment.

  • turn_for — Tourne le robot à gauche ou à droite d’un nombre spécifique de degrés.

  • turn_to_heading — Tourne le robot pour faire face à un cap spécifique de -359 à 359 degrés.

  • stop — Arrête le mouvement du robot.

Modificateurs — Ajustez les paramètres de la transmission.

  • set_timeout — Définit la durée pendant laquelle le robot essaiera de terminer un mouvement.

  • set_heading — Change le cap actuel du robot en un nouveau cap.

Getters — Vérifiez l’état du mouvement.

  • is_stopped — Renvoie si le robot a cessé de bouger, sous forme de valeur booléenne.

  • get_heading — Renvoie le cap actuel du robot de 0 à 359 degrés.

Actes#

drive#

La commande drive fait avancer ou reculer le robot indéfiniment. Le robot continuera à se déplacer jusqu’à ce qu’une autre action, comme tourner ou s’arrêter, lui soit donnée.

Usage:
robot.drive(direction)

Paramètres

Description

direction

La direction dans laquelle le robot se déplace : FORWARD ou REVERSE.

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

La commande drive_for déplace le robot vers l’avant ou vers l’arrière sur une distance spécifique. Le programme attendra que le robot ait terminé son déplacement avant d’exécuter la ligne de code suivante.

Usage:
robot.drive_for(direction, distance, unit)

Paramètres

Description

direction

La direction dans laquelle le robot se déplace : FORWARD ou REVERSE.

distance

La distance parcourue par le robot. Il peut s’agir d’un nombre entier ou décimal.

unit

L’unité de distance : MM (millimètres) ou STEPS (un carré sur un champ 123).

# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)

drive_until#

La commande drive_until fait avancer ou reculer le robot jusqu’à ce qu’il détecte un objet, une collision ou une ligne.

Usage:
robot.drive_until(direction)

Paramètres

Description

direction

La direction dans laquelle le robot se déplace : FORWARD ou REVERSE.

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn fait tourner le robot à gauche ou à droite en continu. Il continuera de tourner jusqu’à ce qu’on lui donne une autre instruction, comme avancer ou s’arrêter.

Usage:
robot.turn(direction)

Paramètres

Description

direction

Direction dans laquelle le robot tourne : LEFT ou RIGHT.

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

La fonction turn_for fait pivoter le robot vers la gauche ou la droite d’un nombre précis de degrés. Le programme attendra la fin de la rotation avant d’exécuter la ligne de code suivante.

Usage:
robot.turn_for(direction, degrees)

Paramètres

Description

direction

Direction dans laquelle le robot tourne : LEFT ou RIGHT.

degrees

Le nombre de degrés de rotation. Il peut s’agir d’un nombre entier ou décimal.

# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)

turn_to_heading#

turn_to_heading oriente le robot vers un cap spécifique compris entre -359 et 359 degrés. Le robot empruntera le chemin le plus court pour atteindre le cap cible.

Le cap initial est de 0 degré.

Le projet attendra que le robot ait fini de tourner avant d’exécuter la ligne de code suivante.

Usage:
robot.turn_to_heading(heading)

Paramètres

Description

heading

Le cap que le robot doit suivre, de -359 à 359 degrés.

# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)

stop#

stop arrête le mouvement du robot.

Usage:
robot.stop()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()

Mutateurs#

set_timeout#

set_timeout définit le délai (en secondes) pendant lequel le robot tente de terminer un mouvement. S’il n’y parvient pas, il interrompt ses tentatives et passe à la ligne de code suivante. Cela évite qu’il ne se bloque.

Usage:
robot.set_timeout(time, unit)

Paramètres

Description

time

Le temps nécessaire pour un déplacement. Il peut s’agir d’un nombre entier ou décimal.

unit

L’unité de temps : MSEC ou SECONDS.

# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)

set_heading#

set_heading modifie le cap actuel du robot en une nouvelle valeur de cap.

Par exemple, si le robot s’est tourné vers la droite, le fait de régler son orientation à 0 degré fait de cette position orientée vers la droite le nouveau 0 degré.

Usage:
robot.set_heading(heading)

Paramètres

Description

heading

La valeur du cap, en degrés, à définir pour le robot.

# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)

Getters#

is_stopped#

is_stopped renvoie un Boolean qui indique si le robot a cessé de bouger.

  • True — Le robot est arrêté.

  • False — Le robot est toujours en mouvement.

Usage:
robot.is_stopped()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
    if robot.is_stopped():
        robot.led.glow(BLUE)
    else:
        robot.led.glow(GREEN)
    wait(0.05, SECONDS)

get_heading#

get_heading renvoie la direction vers laquelle le robot est actuellement orienté sous forme d’un nombre entier compris entre 0 et 359 degrés.

Le cap initial du robot est de 0 degré.

Usage:
robot.get_heading()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())