Контролер#
Вступ#
Контролер V5 має кнопки, два джойстики, двигун гудіння та екран. Методи контролера можна використовувати для перевірки натискань кнопок, зчитування руху джойстика, гудіння контролера, увімкнення або вимкнення налаштованих дій контролера, запуску функцій, коли відбуваються події контролера, або відображення тексту на екрані контролера.
Налаштовані дії контролера – це поведінка контролера, встановлена в меню «Пристрої». Використовуйте remote_control_code_enabled , щоб тимчасово ввімкнути або вимкнути ці налаштовані дії під час проекту.
На цій сторінці як приклад назви контролера використовується controller_1 За потреби замініть її власною налаштованою назвою.
Нижче наведено список усіх доступних методів:
Дії — Увімкнути/вимкнути налаштовані дії контролера.
rumble— Відтворює візерунок гудіння на контролері.remote_control_code_enabled— Вмикає або вимикає дії контролера, налаштовані в меню «Пристрої».
Екран — Відображення тексту та чисел на екрані контролера.
print— Відображає текст, числа або значення змінних на екрані контролера.set_cursor— Переміщує курсор до вказаного рядка та стовпця на екрані контролера.column— Повертає поточний стовпець курсора на екрані контролера.row— Повертає поточний рядок курсора на екрані контролера.clear_screen— Очищає екран контролера.clear_row— Очищає один рядок на екрані контролера.next_row— Переміщує курсор до наступного рядка на екрані контролера.
Геттери — Зчитують стани кнопок та положення джойстика.
.pressing— Повертає, чи натискається вказана кнопка..position— Повертає положення вказаної осі джойстика.
Зворотні виклики — Запускають функції, коли змінюється вхідний сигнал контролера.
.pressed— Виконує функцію при натисканні вказаної кнопки..released— Виконує функцію, коли відпускається вказана кнопка..changed— Виконує функцію, коли положення джойстика змінюється вздовж заданої осі.
Конструктор — вручну створіть об’єкт контролера.
Controller— Створює об’єкт Контролер.
Дії#
rumble#
rumble відтворює візерунок гулу на контролері. У рядку патерну крапки – це короткі гулі, дефіси – довгі, а пробіли – паузи.
Usage:
controller_1.rumble(pattern)
Параметр |
Опис |
|---|---|
|
Рядок, що складається з крапок, дефісів та пробілів, що представляють шаблон гриму. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled – це змінна, яка вмикає або вимикає дії контролера, налаштовані в меню «Пристрої». Дії, налаштовані контролером, увімкнені за замовчуванням.
Usage:
remote_control_code_enabled = state
Значення |
Опис |
|---|---|
|
Вмикає дії, налаштовані контролером. |
|
Вимикає дії, налаштовані контролером. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Екран#
Екран контролера V5 має 3 рядки та 19 стовпців для відображення тексту та чисел.

print#
controller_1.screen.print відображає текст, числа або значення змінних на екрані контролера, використовуючи поточну позицію курсора.
Usage:
controller_1.screen.print(value, sep, precision)
Параметр |
Опис |
|---|---|
|
Текст, число або значення змінної, яке відображатиметься на екрані контролера. Можна вивести більше одного значення, розділяючи їх комами. |
|
Необов’язково. Рядок, який потрібно розмістити між значеннями. Його потрібно записати як ключовий аргумент, наприклад, |
|
Необов’язково. Кількість знаків після коми, які відображатимуться під час друку простих чисел. Це має бути записано як ключовий аргумент, наприклад, |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor переміщує курсор до вказаного рядка та стовпця на екрані контролера. Наступне надруковане значення з’явиться в цій позиції.
Usage:
controller_1.screen.set_cursor(row, col)
Параметр |
Опис |
|---|---|
|
Рядок курсора, від |
|
Стовпець курсора, від |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column повертає поточний стовпець, у якому текст буде надруковано на екрані контролера.
Usage:
controller_1.screen.column()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row повертає поточний рядок, де текст буде надруковано на екрані контролера.
Usage:
controller_1.screen.row()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen очищає екран контролера та переміщує курсор назад у початкову позицію.
Usage:
controller_1.screen.clear_screen()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row очищає один рядок на екрані контролера.
Usage:
controller_1.screen.clear_row(row)
Параметр |
Опис |
|---|---|
|
Необов’язково. Рядок, який потрібно очистити, від |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row переміщує курсор до стовпця 1 у наступному рядку екрана контролера. Наступне надруковане значення з’явиться в цьому рядку.
Usage:
controller_1.screen.next_row()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Геттери#
.pressing#
.pressing повертає, чи натиснуто певну кнопку на контролері. Цей метод потрібно викликати для певного об’єкта кнопки, наприклад, controller_1.buttonA.
True— Натискається зазначена кнопка.False— Вказана кнопка не натискається.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:

Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position повертає положення осі джойстика як число від -100 до 100.
Цей метод потрібно викликати для певного об’єкта осі, такого як controller_1.axis1.
Використання:
Один із доступних об’єктів осі можна використовувати з цим методом:

Вісь |
Команда |
|---|---|
|
|
|
|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
Зворотні виклики#
.pressed#
.pressed запускає функцію при натисканні вказаної кнопки. Після використання функція запускатиметься автоматично щоразу, коли натискатиметься ця кнопка.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:

Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли натискається вказана кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released запускає функцію, коли зазначену кнопку відпускають. Після використання функція запускатиметься автоматично щоразу, коли цю кнопку відпускають.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:

Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли відпускається зазначена кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed запускає функцію, коли положення джойстика змінюється вздовж заданої осі. Після використання функція запускатиметься автоматично щоразу, коли положення джойстика змінюється вздовж цієї осі.
Використання:
Один із доступних об’єктів осі можна використовувати з цим методом:

Вісь |
Команда |
|---|---|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускається щоразу, коли положення джойстика змінюється вздовж заданої осі. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
Конструктори#
Controller#
Controller створює об’єкт Контролер. Ручне створення об’єкта Контролер потрібне лише під час налаштування контролера поза VEXcode.
Usage:
Controller(controller_type)
Параметр |
Опис |
|---|---|
|
Необов’язково. Тип контролера для створення: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)