Tren de transmisión#

Introducción#

El 123 Robot tiene una transmisión de dos ruedas que le permite conducir y girar. Los métodos de transmisión controlan cómo se mueve el robot.

La transmisión puede medir la distancia de dos maneras: pasos y mm (milímetros). Un paso es un cuadrado en un campo 123.

Hay muchas maneras de codificar la transmisión. A continuación se muestra una lista de todos los métodos de transmisión:

Acciones: mueve y gira el robot.

  • drive — Mueve el robot hacia adelante o hacia atrás para siempre.

  • drive_for — Mueve el robot hacia adelante o hacia atrás una distancia específica.

  • drive_until — Mueve el robot hacia adelante o hacia atrás hasta que detecta un objeto, choque o línea.

  • turn — Gira el robot a la izquierda o a la derecha para siempre.

  • turn_for — Gira el robot a la izquierda o a la derecha un número específico de grados.

  • turn_to_heading — Gira el robot para enfrentar un rumbo específico de -359 a 359 grados.

  • stop — Detiene el movimiento del robot.

Mutadores: ajuste la configuración del tren motriz.

  • set_timeout — Establece cuánto tiempo intentará el robot terminar un movimiento.

  • set_heading — Cambia el encabezado actual del robot a un nuevo encabezado.

Getters — Compruebe el estado del movimiento.

  • is_stopped — Devuelve si el robot ha dejado de moverse, como un valor booleano.

  • get_heading — Devuelve el rumbo actual del robot de 0 a 359 grados.

Acciones#

drive#

drive mueve el robot hacia adelante o hacia atrás para siempre. El robot continuará moviéndose hasta que se le dé otra acción, como girar o detenerse.

Usage:
robot.drive(direction)

Parámetros

Descripción

direction

La dirección en la que se mueve el robot: FORWARD O HACIA REVERSE.

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

drive_for#

drive_for mueve el robot hacia adelante o hacia atrás una distancia específica. El proyecto esperará hasta que el robot termine de moverse antes de que se ejecute la siguiente línea de código.

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

Parámetros

Descripción

direction

La dirección en la que se mueve el robot: FORWARD O HACIA REVERSE.

distance

La distancia que recorre el robot. Esto puede ser un número entero o decimal.

unit

La unidad de distancia: MM (milímetros) o STEPS (un cuadrado en un campo 123).

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

drive_until#

drive_until mueve el robot hacia adelante o hacia atrás hasta que detecta un objeto, un choque o una línea.

Usage:
robot.drive_until(direction)

Parámetros

Descripción

direction

La dirección en la que se mueve el robot: FORWARD O HACIA REVERSE.

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

turn#

turn hace que el robot gire a la izquierda o a la derecha indefinidamente. El robot seguirá girando hasta que se le dé otra acción, como conducir o detenerse.

Usage:
robot.turn(direction)

Parámetros

Descripción

direction

La dirección en la que gira el robot: LEFT o RIGHT.

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

turn_for#

turn_for gira el robot a la izquierda o a la derecha un número específico de grados. El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.

Usage:
robot.turn_for(direction, degrees)

Parámetros

Descripción

direction

La dirección en la que gira el robot: LEFT o RIGHT.

degrees

El número de grados a girar. Esto puede ser un número entero o decimal.

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

turn_to_heading#

turn_to_heading hace que el robot se enfrente a un rumbo específico de -359 a 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo objetivo.

El rumbo inicial es 0 grados.

El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.

Usage:
robot.turn_to_heading(heading)

Parámetros

Descripción

heading

El rumbo al que debe enfrentarse el robot es de -359 a 359 grados.

# 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 detiene el movimiento del robot.

Usage:
robot.stop()

Parámetros

Descripción

Este método no tiene parámetros.

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

Mutadores#

set_timeout#

set_timeout establece cuántos segundos intentará el robot terminar un movimiento. Si el robot no puede terminar en ese tiempo, dejará de intentarlo y pasará a la siguiente línea de código. Esto evita que el robot se atasque en un movimiento.

Usage:
robot.set_timeout(time, unit)

Parámetros

Descripción

time

La cantidad de tiempo para permitir un movimiento. Esto puede ser un número entero o decimal.

unit

La unidad de tiempo: MSEC o 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 cambia el encabezado actual del robot a un nuevo valor de encabezado.

Por ejemplo, si el robot ha girado hacia la derecha, establecer el rumbo en 0 grados hace que esa posición orientada hacia la derecha sea la nueva de 0 grados.

Usage:
robot.set_heading(heading)

Parámetros

Descripción

heading

El valor de rumbo, en grados, a establecer para el robot.

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

Getters#

is_stopped#

is_stopped devuelve un Boolean que informa si el robot ha dejado de moverse.

  • True : el robot está detenido.

  • False : el robot todavía se está moviendo.

Usage:
robot.is_stopped()

Parámetros

Descripción

Este método no tiene parámetros.

# 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 devuelve la dirección a la que se enfrenta actualmente el robot como un número entero de 0 a 359 grados.

El rumbo inicial del robot es de 0 grados.

Usage:
robot.get_heading()

Parámetros

Descripción

Este método no tiene parámetros.

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