Трансмиссия#

Введение#

Робот 123 имеет двухколесную трансмиссию, которая позволяет ему двигаться и поворачивать. Методы трансмиссии управляют движением робота.

Система привода может измерять расстояние двумя способами: шагами и мм (миллиметрами). Один шаг — это один квадрат на 123-дюймовом поле.

Существует множество способов программирования трансмиссии. Ниже приведён список всех методов программирования трансмиссии:

Действия — Перемещение и поворот робота.

  • drive — Двигает робота вперед или назад бесконечно.

  • drive_for — Перемещает робота вперед или назад на определенное расстояние.

  • drive_until — Перемещает робота вперед или назад до тех пор, пока он не обнаружит объект, столкновение или линию.

  • turn — Поворачивает робота влево или вправо навсегда.

  • turn_for — Поворачивает робота влево или вправо на определенное количество градусов.

  • turn_to_heading — Поворачивает робота, чтобы тот смотрел в определенном направлении от -359 до 359 градусов.

  • stop — Останавливает движение робота.

Мутаторы — Настройка параметров трансмиссии.

  • set_timeout — Устанавливает, как долго робот будет пытаться завершить движение.

  • set_heading — Изменяет текущее направление движения робота на новое.

Геттеры — Проверка статуса движения.

  • is_stopped — Возвращает значение логического значения, указывающее, остановился ли робот.

  • get_heading — Возвращает текущий курс робота от 0 до 359 градусов.

Действия#

drive#

Привод drive перемещает робота вперед или назад бесконечно. Робот будет продолжать движение, пока ему не будет дано другое действие, например, поворот или остановка.

Usage:
robot.drive(direction)

Параметры

Описание

direction

Направление движения робота: FORWARD или REVERSE.

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

drive_for#

drive_for перемещает робота вперед или назад на определенное расстояние. Проект будет ждать, пока робот не завершит движение, прежде чем будет выполнена следующая строка кода.

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

Параметры

Описание

direction

Направление движения робота: FORWARD или REVERSE.

distance

Расстояние, которое проезжает робот. Это может быть целое число или десятичная дробь.

unit

Единица измерения расстояния: MM (миллиметры) или STEPS (один квадрат на поле размером 123).

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

drive_until#

drive_until перемещает робота вперед или назад до тех пор, пока он не обнаружит объект, столкновение или линию.

Usage:
robot.drive_until(direction)

Параметры

Описание

direction

Направление движения робота: FORWARD или REVERSE.

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

turn#

turn поворачивает робота влево или вправо бесконечно. Робот будет продолжать поворачивать, пока ему не будет дано другое действие, например, движение или остановка.

Usage:
robot.turn(direction)

Параметры

Описание

direction

Направление поворота робота: LEFT или RIGHT.

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

turn_for#

turn_for поворачивает робота влево или вправо на определенное количество градусов. Проект будет ждать, пока робот не завершит поворот, прежде чем будет выполнена следующая строка кода.

Usage:
robot.turn_for(direction, degrees)

Параметры

Описание

direction

Направление поворота робота: LEFT или RIGHT.

degrees

Количество градусов поворота. Это может быть целое число или десятичная дробь.

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

turn_to_heading#

turn_to_heading поворачивает робота в заданном направлении от -359 до 359 градусов. Робот повернется по кратчайшему направлению, чтобы достичь целевого курса.

Начальный курс — 0 градусов.

Проект будет ждать, пока робот не завершит вращение, прежде чем запустится следующая строка кода.

Usage:
robot.turn_to_heading(heading)

Параметры

Описание

heading

Направление движения робота должно составлять от -359 до 359 градусов.

# 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 останавливает движение робота.

Usage:
robot.stop()

Параметры

Описание

Этот метод не имеет параметров.

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

Мутаторы#

set_timeout#

Параметр set_timeout задает время, в течение которого робот будет пытаться завершить движение. Если робот не сможет завершить движение за это время, он прекратит попытки и перейдет к следующей строке кода. Это предотвращает застревание робота на определенном этапе движения.

Usage:
robot.set_timeout(time, unit)

Параметры

Описание

time

Время, необходимое для перемещения груза. Может быть целым числом или десятичной дробью.

unit

Единица времени: MSEC или 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 изменяет текущее направление движения робота на новое значение направления.

Например, если робот повернулся вправо, установка курса на 0 градусов делает это положение, в котором робот повернулся вправо, новым значением 0 градусов.

Usage:
robot.set_heading(heading)

Параметры

Описание

heading

Значение направления в градусах, которое необходимо задать для робота.

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

Геттеры#

is_stopped#

is_stopped возвращает Boolean, который сообщает, остановился ли робот.

  • True — Робот остановлен.

  • False — Робот всё ещё движется.

Usage:
robot.is_stopped()

Параметры

Описание

Этот метод не имеет параметров.

# 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 возвращает направление, в котором в данный момент смотрит робот, в виде целого числа от 0 до 359 градусов.

Начальный курс робота составляет 0 градусов.

Usage:
robot.get_heading()

Параметры

Описание

Этот метод не имеет параметров.

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