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 |
|---|---|
|
La dirección en la que se mueve el robot: |
# 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 |
|---|---|
|
La dirección en la que se mueve el robot: |
|
La distancia que recorre el robot. Esto puede ser un número entero o decimal. |
|
La unidad de distancia: |
# 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 |
|---|---|
|
La dirección en la que se mueve el robot: |
# 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 |
|---|---|
|
La dirección en la que gira el robot: |
# 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 |
|---|---|
|
La dirección en la que gira el robot: |
|
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 |
|---|---|
|
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 |
|---|---|
|
La cantidad de tiempo para permitir un movimiento. Esto puede ser un número entero o decimal. |
|
La unidad de tiempo: |
# 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 |
|---|---|
|
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())