Трансмиссия#
Введение#
Робот 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)
Параметры |
Описание |
|---|---|
|
Направление движения робота: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for перемещает робота вперед или назад на определенное расстояние. Проект будет ждать, пока робот не завершит движение, прежде чем будет выполнена следующая строка кода.
Usage:
robot.drive_for(direction, distance, unit)
Параметры |
Описание |
|---|---|
|
Направление движения робота: |
|
Расстояние, которое проезжает робот. Это может быть целое число или десятичная дробь. |
|
Единица измерения расстояния: |
# 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)
Параметры |
Описание |
|---|---|
|
Направление движения робота: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn поворачивает робота влево или вправо бесконечно. Робот будет продолжать поворачивать, пока ему не будет дано другое действие, например, движение или остановка.
Usage:
robot.turn(direction)
Параметры |
Описание |
|---|---|
|
Направление поворота робота: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for поворачивает робота влево или вправо на определенное количество градусов. Проект будет ждать, пока робот не завершит поворот, прежде чем будет выполнена следующая строка кода.
Usage:
robot.turn_for(direction, 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)
Параметры |
Описание |
|---|---|
|
Направление движения робота должно составлять от -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)
Параметры |
Описание |
|---|---|
|
Время, необходимое для перемещения груза. Может быть целым числом или десятичной дробью. |
|
Единица времени: |
# 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)
Параметры |
Описание |
|---|---|
|
Значение направления в градусах, которое необходимо задать для робота. |
# 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())