Контроллер#

Введение#

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

Настроенные действия контроллера — это параметры поведения контроллера, заданные в меню «Устройства». Используйте блок Включение/отключение контроллера, чтобы временно включить или отключить эти настроенные действия в рамках проекта.

Ниже приведён список доступных блоков:

Значения — Проверьте состояние кнопок контроллера или положение джойстика.

Действия — Вибрация контроллера, включение/отключение настроенных действий контроллера или выполнение блоков при изменении ввода с контроллера.

Экран — Отображение текста и цифр на экране контроллера.

Ценности#

Нажата ли кнопка контроллера?#

Логический блок Controller pressed? возвращает информацию о том, нажата ли выбранная кнопка контроллера.

Передняя и задняя стороны контроллера V5 с кнопками, выделенными желтым цветом. На поверхности контроллера слева расположены кнопки со стрелками вверх, вниз, влево и вправо, а справа — кнопки X, A, B, Y по часовой стрелке, начиная с положения «12 часов». На задней стороне контроллера слева и справа расположены кнопки L1, L2, R1 и R2 соответственно.

Нажата ли кнопка контроллера? Логический блок#
<[Controller1 v] кнопка [▲ v] нажата?>

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

кнопка

Кнопка для проверки:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

Пример

При запуске двигатель движется вперед, пока нажата кнопка X.#
при запуске
[Drive forward while X is pressed.]
вечно
если <[Controller1 v] кнопка [X v] нажата?> то
движение [вперёд v]
иначе
остановить движение
конец
конец

Позиция контроллера#

Блок отчета о положении контроллера возвращает положение джойстика вдоль выбранной оси в виде числа от -100 до 100.

Контроллер VEX V5 с обозначенными осями вокруг джойстиков. Ось 1 и 2 расположены вокруг правого джойстика, а ось 3 и 4 — вокруг левого.

Блок отчета о положении контроллера#
([Controller1 v] [1 v] position :: sensing)

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

ось

Ось джойстика для отображения:

  • 1 — горизонтальная ось правого джойстика
  • 2 — вертикальная ось правого джойстика
  • 3 — вертикальная ось левого джойстика
  • 4 — горизонтальная ось левого джойстика

Пример

При запуске двигатель движется вперед, пока левый джойстик поднят вверх.#
при запуске
[Drive forward while the left joystick is pushed up.]
вечно
если <([Controller1 v] [3 v] position :: sensing) [math_greater_than v] [0]> то
движение [вперёд v]
иначе
остановить движение
конец
конец

Действия#

играть в Rumble на контроллере#

Блок воспроизведение вибрации на контроллере воспроизводит вибрационный сигнал на контроллере.

играть вибрацию на контроллере стековый блок#
воспроизвести вибрацию [Длинная v] на [Controller1 v]

Параметр

Описание

шаблон

Режим вибрации на контроллере:

  • Длинная — одна длинная вибрация
  • Короткая — одна короткая вибрация
  • Пульсовая — чередование вибраций

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При нажатии кнопки R1 на контроллере раздается короткая вибрация.#
когда[Controller1 v] кнопка [R1 v] [нажат v] :: hat events
воспроизвести вибрацию [Короткая v] на [Controller1 v]

Включение/отключение контроллера#

Блок включение/отключение контроллера включает или отключает действия, настроенные контроллером из меню «Устройства», для всех подключенных контроллеров.

Блок включения/отключения контроллера#
Контроллер [Отключить v]

Параметр

Описание

состояние

Состояние действия, заданное контроллером: Отключить или Включить.

Пример

При запуске отключает настроенные действия контроллера, пока робот движется вперед.#
при запуске
[Disable Controller configured actions until the drive movement is done.]
Контроллер [Отключить v]
движение [вперёд v] на (6) [дюймы v] ▶
Контроллер [Включить v]

при нажатии кнопки контроллера#

Блок Hat, отвечающий за активацию выбранной кнопки контроллера при нажатии или отпускании, запускает соответствующий стек.

Передняя и задняя стороны контроллера V5 с кнопками, выделенными желтым цветом. На поверхности контроллера слева расположены кнопки со стрелками вверх, вниз, влево и вправо, а справа — кнопки X, A, B, Y по часовой стрелке, начиная с положения «12 часов». На задней стороне контроллера слева и справа расположены кнопки L1, L2, R1 и R2 соответственно.

при нажатии кнопки контроллера Блок шляпы#
когда[Controller1 v] кнопка [▲ v] [нажат v] :: hat events

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

кнопка

Кнопка для проверки:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

статус кнопки

Событие нажатия кнопки, запускающее соответствующий стек: нажатие или отпускание.

Пример

При нажатии кнопки R1 устройство перемещается вперед на 200 миллиметров.#
когда[Controller1 v] кнопка [R1 v] [нажат v] :: hat events
[Drive forward when R1 is pressed.]
движение [вперёд v] на (200) [мм v] ▶

при изменении оси контроллера#

Блок Hat, отвечающий за вызов функции when Controller axis is changed, запускает прикрепленный стек при изменении положения джойстика вдоль выбранной оси.

Контроллер VEX V5 с обозначенными осями вокруг джойстиков. Ось 1 и 2 расположены вокруг правого джойстика, а ось 3 и 4 — вокруг левого.

при изменении оси контроллера блок «Шляпа»#
when [Controller1 v] axis [1 v] is changed :: hat events

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

ось

Ось джойстика для проверки:

  • 1 — горизонтальная ось правого джойстика
  • 2 — вертикальная ось правого джойстика
  • 3 — вертикальная ось левого джойстика
  • 4 — горизонтальная ось левого джойстика

Пример

При изменении положения джойстика вдоль оси 3 контроллера происходит перемещение вперед на 200 миллиметров.#
when [Controller1 v] axis [3 v] is changed :: hat events
[Drive forward when the joystick's position changes along axis 3.]
движение [вперёд v] на (200) [мм v] ▶

Экран#

установить курсор на строку/столбец на контроллере#

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

установить курсор на строку/столбец в блоке стека контроллера#
установить курсор на строку [1] столбец [1] на [Controller1 v] :: custom-controller-inertial-timer

Параметр

Описание

ряд

Строка, в которую нужно переместить курсор на экране контроллера.

столбец

Столбец, в который нужно переместить курсор на экране контроллера.

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При запуске программа выводит текст во 2-й строке, 1-м столбце на экране контроллера.#
при запуске
[Display a message on row 2.]
установить курсор на строку [2] столбец [1] на [Controller1 v] :: custom-controller-inertial-timer
вывести [Ready] на [Controller1 v] ▶ :: custom-controller-inertial-timer

установить курсор на следующую строку на контроллере#

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

установить курсор на следующую строку в блоке стека контроллера#
перенести курсор на следующую строку на [Controller1 v] :: custom-controller-inertial-timer

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При запуске выводит две строки на экран контроллера.#
при запуске
[Display two rows of text.]
вывести [Row 1] на [Controller1 v] ▶ :: custom-controller-inertial-timer
перенести курсор на следующую строку на [Controller1 v] :: custom-controller-inertial-timer
вывести [Row 2] на [Controller1 v] ▶ :: custom-controller-inertial-timer

установить точность печати на контроллере#

Блок Установка точности печати на контроллере задает количество десятичных знаков, отображаемых при выводе чисел на экран контроллера. Этот параметр применяется к числам, выводимым после использования этого блока.

установить точность печати в блоке стека контроллера#
установить точность печати [0.1 v] на [Controller1 v] :: custom-controller-inertial-timer

Параметр

Описание

точность

Точность печати:

  • 1 — без десятичных знаков
  • 0.1 — 1 десятичный знак
  • 0.01 — 2 десятичных знака
  • 0.001 — 3 десятичных знака
  • Все цифры — все доступные десятичные знаки

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При запуске на экране контроллера отображается 1/3 с двумя знаками после запятой.#
при запуске
[Display 1/3 with two decimals.]
установить точность печати [0.01 v] на [Controller1 v] :: custom-controller-inertial-timer
вывести ([1] [math_division v] [3]) на [Controller1 v] ▶ :: custom-controller-inertial-timer

чистый контроллер#

Блок clear controller очищает все строки на экране контроллера и перемещает курсор обратно в первую строку.

очистить блок стека контроллера#
очистить [Controller1 v] :: custom-controller-inertial-timer

Параметр

Описание

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При запуске программа выводит текст, ожидает, а затем очищает экран контроллера.#
при запуске
[Clear the Controller screen after printing.]
вывести [This will disappear...] на [Controller1 v] ▶ :: custom-controller-inertial-timer
ждать [2] секунд
очистить [Controller1 v] :: custom-controller-inertial-timer

очистить строку на контроллере#

Блок стека clear row on controller очищает одну строку на экране контроллера.

очистить строку в блоке стека контроллера#
очистить строку [1] на [Controller1 v] :: custom-controller-inertial-timer

Параметр

Описание

ряд

Строка, которую необходимо очистить на экране контроллера.

устройство

Контроллер для использования, настраиваемый в окне «Устройства».

Пример

При запуске очищает строку 1 на экране контроллера.#
при запуске
[Clear one row on the Controller screen.]
вывести [Row 1] на [Controller1 v] ▶ :: custom-controller-inertial-timer
перенести курсор на следующую строку на [Controller1 v] :: custom-controller-inertial-timer
вывести [Row 2] на [Controller1 v] ▶ :: custom-controller-inertial-timer
ждать [2] секунд
очистить строку [1] на [Controller1 v] :: custom-controller-inertial-timer