Python, разработанный специально для роботов#

Введение#

Робот-герой Swish поставляется с одним вариантом двигателя, одним вариантом группы двигателей и оптическим датчиком.

Все стандартные методы VEXcode VR доступны для использования в игровой зоне IQ 24-25 Rapid Relay.

Ниже приведён список всех доступных методов, специфичных для роботов:

Трансмиссия – перемещение и поворот робота.

  • Действия

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

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

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

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

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

    • turn_to_rotation — Поворачивает робота на заданное направление.

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

  • Мутаторы

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

    • set_rotation — Изменяет текущее вращение робота на новое вращение.

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

    • set_drive_velocity — Указывает роботу, с какой скоростью двигаться.

    • set_turn_velocity — Указывает роботу, с какой скоростью нужно поворачивать.

  • Геттеры

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

    • rotation — Возвращает текущее вращение робота.

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

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

    • velocity — Возвращает скорость движения робота.

Движение - Перемещение и отслеживание двигателя и группы двигателей робота.

  • Действия

    • spin — Вращает двигатель или группу двигателей вперед или назад бесконечно.

    • spin_for — Раскручивает двигатель или группу двигателей на определенное расстояние.

    • spin_to_position — Раскручивает двигатель или группу двигателей до определенного положения.

    • stop — Останавливает вращение двигателя или группы двигателей.

  • Мутаторы

    • set_position — Изменяет текущее положение двигателя или группы двигателей на новое значение.

    • set_velocity — Указывает двигателю или группе двигателей, с какой скоростью вращаться.

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

  • Геттеры

    • is_done — Возвращает значение логического значения, указывающее, завершил ли двигатель или группа двигателей движение.

    • is_spinning — Возвращает значение логического типа, указывающее, вращается ли двигатель или группа двигателей.

    • position — Возвращает текущее положение двигателя или группы двигателей.

    • velocity — Возвращает скорость вращения двигателя или группы двигателей.

Консоль – Вывод значений в консоль и их мониторинг.

  • Печать

    • brain.screen.print — Отображает текст, числа или значения переменных в консоли.

    • brain.screen.next_row — Перемещает курсор консоли в начало следующей строки.

    • brain.screen.clear_screen — Очищает все строки из консоли.

  • Монитор

    • monitor_variable — Добавляет одну или несколько предопределенных переменных на вкладку «Монитор».

    • monitor_sensor — Добавляет одно или несколько значений датчика на вкладку «Монитор».

Использование датчиков — Задействуйте различные датчики робота.

  • Оптический

    • is_near_object – Возвращает значение, указывающее, обнаружил ли оптический датчик объект в пределах досягаемости.

    • color – Возвращает цвет, обнаруженный оптическим датчиком.

    • brightness – Возвращает количество света, отраженного от объекта.

    • hue – Возвращает оттенок, обнаруженный оптическим датчиком.

    • object_detected – Регистрирует функцию, которая будет вызываться, когда оптический датчик обнаружит объект.

    • object_lost – Регистрирует функцию, которая будет вызываться, когда оптический датчик потеряет объект.

В примерах на этой странице используется начальная позиция по умолчанию в игровой зоне.

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

Силовая установка управляет движением и поворотами VR-робота. Она позволяет ему двигаться вперед или назад, поворачивать влево или вправо, менять направление движения и отслеживать вращение.

Действия#

водить машину#

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

Usage:
drivetrain.drive(direction)

Параметры

Описание

direction

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

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

drive_for#

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

Usage:
drivetrain.drive_for(direction, distance, units, wait)

Параметры

Описание

direction

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

distance

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

units

Единица измерения расстояния: INCHES или MM (миллиметра).

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит движение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

повернуть#

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

Usage:
drivetrain.turn(direction)

Параметры

Описание

direction

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

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

turn_for#

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

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Параметры

Описание

direction

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

angle

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

units

Единица вращения: DEGREES.

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_heading#

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

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

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

Usage:
drivetrain.turn_to_heading(angle, units, wait)

Параметры

Описание

angle

Направление, в котором должен быть повернут робот, в градусах. Это может быть целое число integer или десятичное число (float) от -359 до 359.

units

Единица вращения: DEGREES.

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_rotation#

turn_to_rotation поворачивает робота на определенное расстояние.

Вращение — это величина поворота робота, измеряемая в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Вращение также можно установить с помощью метода set_rotation.

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

Например, если робот начинает движение с 0 градусов, а затем вы поворачиваетесь на 720 градусов, он дважды повернется вправо. Если же вы повернетесь на 360 градусов, он один раз повернется влево, потому что 360 меньше 720.

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

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Параметры

Описание

angle

Величина поворота в градусах, на которую будет поворачиваться робот. Это может быть целое число integer или десятичное число (float).

units

Единица вращения: DEGREES.

wait

Необязательно. wait=True (по умолчанию) заставляет проект ждать, пока робот не закончит вращение, прежде чем выполнить следующую строку кода. wait=False заставляет следующую строку кода выполниться немедленно.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

останавливаться#

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

Usage:
drivetrain.stop()

Параметры

Описание

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

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

Мутаторы#

set_heading#

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

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

Usage:
drivetrain.set_heading(heading, units)

Параметры

Описание

heading

Значение направления в градусах, которое нужно задать для робота. Это может быть целое число integer или десятичное число (float).

units

Единица измерения заголовка: DEGREES.

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_rotation#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. Параметр set_rotation изменяет текущее значение вращения робота на новое значение.

Например, если робот совершил два полных оборота вправо, значение его вращения составит 720 градусов. Установка значения вращения на 0 градусов сбросит это значение с 720 до 0 градусов. Затем робот сможет совершать повороты, исходя из этого нового значения.

Usage:
drivetrain.set_rotation(rotation, units)

Параметры

Описание

rotation

Значение поворота в градусах, которое нужно установить для робота. Это может быть целое число integer или десятичное число (float).

units

Единица вращения: DEGREES.

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_timeout#

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

Usage:
drivetrain.set_timeout(value, units)

Параметры

Описание

value

Время, в течение которого робот может попытаться завершить движение. Это может быть положительное число integer или десятичное число (float).

units

Единица измерения времени: SECONDS или MSEC).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

set_drive_velocity#

Параметр set_drive_velocity указывает роботу, с какой скоростью двигаться. Более высокое значение в процентах увеличивает скорость движения робота, а более низкое — уменьшает.

Каждый проект начинается с того, что робот по умолчанию движется со скоростью, составляющей 50% от максимальной.

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

Usage:
drivetrain.set_drive_velocity(velocity, units)

Параметры

Описание

velocity

Скорость движения от 0% до 100%. Это может быть целое число integer или десятичное число (float).

units

Единица измерения скорости: PERCENT.

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

set_turn_velocity#

Параметр set_turn_velocity указывает роботу, с какой скоростью он должен поворачиваться. Более высокое значение в процентах приводит к более быстрому повороту робота, а более низкое — к более медленному.

Каждый проект начинается с того, что робот по умолчанию вращается со скоростью, составляющей 50% от его обычной скорости.

Примечание: Более высокая скорость приводит к более быстрому повороту робота, но может быть менее точной. Более низкая скорость приводит к более медленному повороту робота, но может быть более точной.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Параметры

Описание

velocity

Скорость поворота от 0% до 100%. Это может быть целое число integer или десятичное число (float).

units

Единица измерения скорости: PERCENT.

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Геттеры#

заголовок#

Направление движения — это то, в каком направлении смотрит робот, измеряемое в градусах. heading возвращает текущее направление движения робота от 0 до 359,99 градусов.

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

Usage:
drivetrain.heading(units)

Параметры

Описание

units

Единица измерения заголовка: DEGREES.

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

вращение#

Вращение — это угол поворота робота, измеряемый в градусах. В начале проекта значение вращения устанавливается равным 0 градусам. rotation возвращает текущее вращение робота.

Поворот вправо увеличивает угол поворота, а поворот влево уменьшает его. Например, два полных оборота вправо вернут 720 градусов.

Usage:
drivetrain.rotation(units)

Параметры

Описание

units

Единица вращения: DEGREES.

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

готово#

is_done возвращает значение логического типа (Boolean), указывающее, завершил ли робот движение. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.

  • True — Робот завершил движение.

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

Этот метод работает совместно со следующими методами Drivetrain, имеющими параметр wait : drive_for, turn_for, turn_to_heading и turn_to_rotation.

Usage:
drivetrain.is_done()

Параметры

Описание

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

is_moving#

is_moving` возвращает значение логического типа (Boolean), указывающее, движется ли робот. Это можно использовать для управления временем выполнения других действий в зависимости от движения робота.

  • True — Робот движется.

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

Usage:
drivetrain.is_moving()

Параметры

Описание

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

скорость#

Значение velocity возвращает скорость движения робота в процентах от -100% до 100%.

Usage:
drivetrain.velocity(units)

Параметры

Описание

units

Единица измерения скорости: PERCENT.

Пример

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Движение#

Swish использует двигатель подачи мячей для сбора шаров и перемещения их на катапульту. Группа двигателей катапульты опускает и отпускает рычаг катапульты для запуска шаров.

Каждый двигатель и группа двигателей имеют собственное поведение в зависимости от направления движения. Описания направлений объясняют, как каждое направление перемещает данный двигатель или группу двигателей на Swish.

Действия#

вращаться#

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

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.spin(direction) — Впускной двигатель

catapult_group

catapult_group.spin(direction) — Группа катапульты

Параметры

Описание

direction

Направление вращения двигателя или группы двигателей:

  • FORWARD — Вращает впускной двигатель в направлении впуска или опускает группу катапульты.
  • REVERSE — Вращает впускной двигатель в направлении выпуска или отпускает группу катапульты.

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

спин_фор#

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

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.spin_for(direction, distance, units, wait=True) — Впускной двигатель

catapult_group

catapult_group.spin_for(direction, distance, units, wait=True) — Catapult Group

Параметры

Описание

direction

Направление вращения двигателя или группы двигателей:

  • FORWARD — Вращает впускной двигатель в направлении впуска или опускает группу катапульты.
  • REVERSE — Вращает впускной двигатель в направлении выпуска или отпускает группу катапульты.

distance

Расстояние, на которое вращается двигатель или группа двигателей. DEGREES используйте целые числа. TURNS можете использовать целые числа или десятичные дроби.

units

Дополнительно. Единица измерения расстояния: DEGREES (по умолчанию) или TURNS.

wait

Необязательно.

  • wait=True (по умолчанию) — Заставляет проект ждать, пока двигатель или группа двигателей не закончат вращение, прежде чем будет выполнена следующая строка кода.
  • wait=False — Заставляет следующую строку кода выполниться немедленно.

def main():
    # Release the preloaded Ball
    catapult_group.spin_for(REVERSE, 5, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_for(FORWARD, 1350, DEGREES)

# VR threads — Do not delete
vr_thread(main)

spin_to_position#

spin_to_position вращает двигатель или группу двигателей в определенное положение.

Положение двигателя или группы двигателей — это угол их вращения, измеряемый в DEGREES или TURNSОдин оборот равен 360 градусам. В начале проекта положение двигателя или группы двигателей устанавливается на 0 градусов. Положение двигателя или группы двигателей также можно установить с помощью метода set_position.

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

Например, если двигатель или группа двигателей начинают движение с 0 градусов и вращаются до положения 720 градусов, они совершат два оборота вперед. Если же они затем вращаются до положения 360 градусов, они совершат один оборот в обратном направлении, поскольку 360 меньше 720.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — Впускной двигатель

catapult_group

catapult_group.spin_to_position(angle, units, wait=True) — Catapult Group

Параметры

Описание

angle

Значение положения, до которого будет вращаться двигатель или группа двигателей. DEGREES — использовать целые числа. TURNS — использовать целые числа или десятичные дроби.

units

Дополнительно. Единица измерения положения: DEGREES (по умолчанию) или TURNS.

wait

Необязательно.

  • wait=True (по умолчанию) — Заставляет проект ждать, пока двигатель или группа двигателей не закончат вращение, прежде чем будет выполнена следующая строка кода.
  • wait=False — Заставляет следующую строку кода выполниться немедленно.

def main():
    # Release the preloaded Ball
    catapult_group.spin_to_position(-90, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)

# VR threads — Do not delete
vr_thread(main)

остановить двигатель#

stop останавливает вращение двигателя или группы двигателей.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.stop() — Впускной двигатель

catapult_group

catapult_group.stop() — Группа катапульты

Параметры

Описание

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

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

Мутаторы#

set_position#

Положение двигателя или группы двигателей — это угол их вращения, измеряемый в DEGREES или TURNSОдин оборот равен 360 градусам. set_position изменяет текущее положение двигателя или группы двигателей на новое значение.

Например, если двигатель или группа двигателей повернулись на 180 градусов, установка положения на 0 градусов сбросит это положение со 180 до 0 градусов. Затем двигатель или группа двигателей смогут вращаться в положениях, соответствующих этому новому значению.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.set_position(position, units) — Впускной двигатель

catapult_group

catapult_group.set_position(position, units) — Группа катапульт

Параметры

Описание

position

Значение положения, которое необходимо установить для двигателя или группы двигателей. DEGREES — использовать целые числа. TURNS — использовать целые числа или десятичные дроби.

units

Дополнительно. Единица измерения положения: DEGREES (по умолчанию) или TURNS.

def main():
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)
    # Set the new Catapult position to be 0 degrees
    catapult_group.set_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_velocity#

Параметр set_velocity указывает двигателю или группе двигателей, с какой скоростью вращаться. Более высокое значение в процентах заставляет двигатель или группу двигателей вращаться быстрее, а более низкое — медленнее.

Каждый проект начинается с того, что каждый двигатель или группа двигателей по умолчанию вращаются со скоростью 50% от обычной.

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

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.set_velocity(velocity, units) — Впускной двигатель

catapult_group

catapult_group.set_velocity(velocity, units) — Группа катапульт

Параметры

Описание

velocity

Скорость вращения от -100% до 100%. Это может быть целое число integer или десятичное число (float).

units

Единица измерения скорости: PERCENT.

def main():
    # Start spinning the Intake Motor to prepare for picking up a Ball
    intake_motor.set_velocity(100, PERCENT)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

set_timeout#

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

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.set_timeout(value, units) — Впускной двигатель

catapult_group

catapult_group.set_timeout(value, units) — Группа катапульты

Параметры

Описание

value

Время, в течение которого двигатель или группа двигателей могут попытаться завершить движение. Это может быть положительное число integer или десятичное число (float).

units

Единица измерения времени: SECONDS или MSEC).

def main():
    # Limit how long the Catapult waits to reach its target
    catapult_group.set_timeout(2, SECONDS)
    catapult_group.spin_for(FORWARD, 2160, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Геттеры#

готово#

is_done возвращает значение логического типа (Boolean), указывающее, завершилось ли движение двигателя или группы двигателей. Это можно использовать для управления временем выполнения других действий в зависимости от движения двигателя или группы двигателей.

  • True — Двигатель или группа двигателей завершили движение.

  • False — Двигатель или группа двигателей все еще находятся в движении.

Этот метод работает совместно со следующими методами Motion, имеющими параметр wait : spin_for и spin_to_position.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.is_done() — Впускной двигатель

catapult_group

catapult_group.is_done() — Группа катапульты

Параметры

Описание

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

is_spinning#

is_spinning` возвращает значение логического типа (Boolean), указывающее, вращается ли двигатель или группа двигателей. Это можно использовать для управления синхронизацией других действий в зависимости от движения двигателя или группы двигателей.

  • True — Двигатель или группа двигателей вращаются.

  • False — Двигатель или группа двигателей не вращаются.

Этот метод работает совместно со следующими методами Motion, имеющими параметр wait : spin_for и spin_to_position.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.is_spinning() — Впускной двигатель

catapult_group

catapult_group.is_spinning() — Группа катапульт

Параметры

Описание

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

позиция#

Положение двигателя или группы двигателей — это угол их вращения, измеряемый в DEGREES или TURNSОдин оборот равен 360 градусам. position возвращает текущее положение двигателя или группы двигателей.

В начале проекта положение двигателя или группы двигателей устанавливается на 0 градусов. Если двигатель или группа двигателей вращается на один полный оборот вперед, положение будет равно 360 градусам или 1 обороту. Если двигатель или группа двигателей вращается в другом направлении, положение будет отрицательным.

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.position(units) — Впускной двигатель

catapult_group

catapult_group.position(units) — Группа катапульт

Параметры

Описание

units

Устройство для возврата двигателя или группы двигателей в исходное положение: DEGREES или TURNS оборота.

def main():
    # Lower the Catapult to prepare to load another Ball
    while not catapult_group.position(DEGREES) == 1260:
        catapult_group.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

скорость#

Значение velocity (скорость вращения) возвращает значение скорости вращения двигателя или группы двигателей.

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

Использование:
Для этого метода можно использовать один из двух доступных объектов двигателя или группы двигателей, как показано ниже:

мотор

Командование

intake_motor

intake_motor.velocity(units) — Впускной двигатель

catapult_group

catapult_group.velocity(units) — Группа катапульт

Параметры

Описание

units

Единица измерения скорости для возврата: PERCENT.

def main():
    # Print the current Catapult velocity
    brain.screen.print(catapult_group.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

Консоль#

В консоли отображаются текст, числа и значения переменных во время выполнения проекта. Методы консоли также позволяют перемещать курсор на новую строку, очищать консоль и добавлять переменные или значения датчиков на вкладку «Монитор».

Печать#

мозг.экран.печать#

brain.screen.print отображает текст, числа или значения переменных в консоли, используя текущую позицию курсора. Ведет себя аналогично print на странице API консоли.

Используйте brain.screen.next_row, если вы хотите, чтобы следующее выводимое значение начиналось с новой строки.

Usage:
brain.screen.print(value)

Параметры

Описание

value

Текст, число или значение переменной для отображения в консоли.

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

Консоль VEXcode, отображающая консоль и текст «Привет, робот!».

brain.screen.next_row#

brain.screen.next_row перемещает курсор в столбец 1 следующей строки в консоли. Следующее выводимое значение появится в этой строке.

Usage:
brain.screen.next_row()

Параметры

Описание

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

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

Консоль VEXcode, отображающая консоль и текст «Строка 1» на первой строке и «Строка 2» на второй строке.

brain.screen.clear_screen#

brain.screen.clear_screen очищает все строки в консоли и перемещает курсор обратно в строку 1.

Usage:
brain.screen.clear_screen()

Параметры

Описание

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

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

Монитор#

переменная монитора#

Параметр monitor_variable добавляет одну или несколько предопределенных переменных на вкладку «Монитор» в VEXcode. Это позволяет отслеживать изменение значения переменной во время выполнения проекта.

Для успешного мониторинга переменных monitor_variable они должны быть глобальными. Укажите имя каждой переменной в виде строки.

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

Параметры

Описание

variable

Имя предопределенной глобальной переменной для отслеживания, заданное в виде строки. Чтобы отслеживать несколько переменных, разделяйте имена переменных запятой.

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

монитор_датчик#

Параметр monitor_sensor добавляет одно или несколько значений датчиков на вкладку «Монитор» в VEXcode. Это позволяет отслеживать изменение значений датчиков во время выполнения проекта.

Укажите значение каждого датчика в виде строки.

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

Параметры

Описание

sensor

The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:

  • Brain
    • brain.timer.time
  • Drivetrain
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Arm Motor
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position_degrees
    • arm_motor.position_turns
    • arm_motor.velocity_rpm
    • arm_motor.velocity_percent
  • Arm Motor Group
    • arm_motor_group.is_done
    • arm_motor_group.is_spinning
    • arm_motor_group.position_degrees
    • arm_motor_group.position_turns
    • arm_motor_group.velocity_rpm
    • arm_motor_group.velocity_percent
  • Intake Motor
    • intake_motor.is_done
    • intake_motor.is_spinning
    • intake_motor.position_degrees
    • intake_motor.position_turns
    • intake_motor.velocity_rpm
    • intake_motor.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Catapult Motor
    • catapult_motor.is_done
    • catapult_motor.is_spinning
    • catapult_motor.position_degrees
    • catapult_motor.position_turns
    • catapult_motor.velocity_rpm
    • catapult_motor.velocity_percent
  • Catapult Tension Motor
    • catapult_tension_motor.is_done
    • catapult_tension_motor.is_spinning
    • catapult_tension_motor.position_degrees
    • catapult_tension_motor.position_turns
    • catapult_tension_motor.velocity_rpm
    • catapult_tension_motor.velocity_percent
  • Bumpers
    • intake_bumper.pressing
    • bumper.pressing
  • Front Distance Sensor
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Front Optical Sensor
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • Color Sensor
    • color.is_near_object
    • color.color
    • color.brightness
    • color.hue

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Ощущение#

Оптический#

is_near_object#

is_near_object` возвращает логическое значение, указывающее, обнаружил ли оптический датчик объект в пределах досягаемости.

  • True – Оптический датчик обнаруживает объект.

  • False – Оптический датчик не обнаруживает объект.

Usage:
intake_optical.is_near_object()

Параметры

Описание

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor detects a Ball
    if intake_optical.is_near_object():
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

цвет#

Функция color возвращает экземпляр класса ` Color , основанный на обнаруженном значении оттенка. Эти значения можно сравнивать с предопределенными объектами Color для создания условных операторов.

Возможные цвета:

  • NONE

  • RED - Оттенок в диапазоне от 340° до 20°

  • GREEN - Оттенок от 80° до 140°

  • BLUE - Оттенок от 200° до 240°

  • YELLOW - Оттенок от 40° до 60°

  • ORANGE - Оттенок от 20° до 40°

  • PURPLE - Оттенок в диапазоне от 240° до 280°

  • CYAN - Оттенок в диапазоне от 140° до 200°

Примечание: Оптический датчик ищет диапазоны оттенков, соответствующие указанному цвету. Для определения конкретных диапазонов оттенков см. hue.

Usage:
intake_optical.color()

Параметры

Описание

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

def main():
    # Launch a loaded Ball once yellow is detected in the Intake
    if intake_optical.color() == YELLOW:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

яркость#

brightness возвращает количество света, отраженного от объекта, в виде десятичной дроби (float в процентах.

Более высокий процент означает, что больше света отражается обратно к оптическому датчику. Более низкий процент означает, что отражается меньше света.

Usage:
intake_optical.brightness()

Параметры

Описание

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor sees a Ball
    if intake_optical.brightness() > 0:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

оттенок#

hue возвращает значение оттенка обнаруженного цвета в виде десятичного числа (float) от 0 до 359.

Оттенок — это способ описания цвета с помощью чисел на цветовом круге.

Круговой цветовой круг, отображающий полный спектр оттенков, обозначенных значениями градусов по периметру, увеличивающимися с шагом в 30 градусов от 0 градусов вверху до 360 градусов.

Usage:
intake_optical.hue()

Параметры

Описание

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor reports a hue value
    if intake_optical.hue() > 100:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

объект_обнаружен#

object_detected регистрирует функцию, которая будет вызываться всякий раз, когда оптический датчик обнаружит новый объект.

Usage:
intake_optical.object_detected(callback, arg)

Параметры

Описание

callback

Ранее определенная функция, которая выполняется, когда оптический датчик обнаруживает новый объект.

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def launch_ball():
    catapult_group.spin_for(REVERSE, 5, DEGREES)

def main():
    # Launch the Ball when the Intake Optical Sensor detects an object
    intake_optical.object_detected(launch_ball)

# VR threads — Do not delete
vr_thread(main)

объект_потерян#

object_lost регистрирует функцию, которая будет вызываться всякий раз, когда оптический датчик теряет обнаруженный объект.

Usage:
intake_optical.object_lost(callback, arg)

Параметры

Описание

callback

Ранее определенная функция, которая выполняется, когда оптический датчик теряет обнаруженный объект.

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def lower_catapult():
    catapult_group.spin_to_position(1260, DEGREES)

def main():
    # Lower the Catapult when the Intake Optical Sensor no longer detects an object
    intake_optical.object_lost(lower_catapult)

# VR threads — Do not delete
vr_thread(main)