Контролер#
Вступ#
Контролер VEX IQ (2-го покоління) має кнопки та два джойстики. Методи контролера можна використовувати для перевірки натискань кнопок, зчитування руху джойстика, увімкнення або вимкнення налаштованих дій контролера або запуску функцій, коли відбуваються події контролера.
IQ Brain (2-го покоління) може підключатися до контролера IQ (2-го покоління) або IQ (1-го покоління). На контролері IQ (1-го покоління) має бути встановлено синій Smart Radio.
Налаштовані дії контролера – це поведінка контролера, встановлена в меню «Пристрої». Використовуйте remote_control_code_enabled , щоб тимчасово ввімкнути або вимкнути ці налаштовані дії під час проекту.
На цій сторінці як приклад назви контролера використовується controller За потреби замініть її власною налаштованою назвою.
Нижче наведено список усіх доступних методів:
Дія — Увімкнути або вимкнути налаштовані дії контролера.
remote_control_code_enabled— Вмикає або вимикає дії контролера, налаштовані в меню «Пристрої».
Геттери — Зчитують стани кнопок та положення джойстика.
.pressing— Повертає, чи натискається вказана кнопка..position— Повертає положення вказаної осі джойстика.
Зворотні виклики — Запускають функції, коли змінюється вхідний сигнал контролера.
.pressed— Виконує функцію при натисканні вказаної кнопки..released— Виконує функцію, коли відпускається вказана кнопка..changed— Виконує функцію, коли положення джойстика змінюється вздовж заданої осі.
Конструктор — вручну створіть об’єкт контролера.
Controller— Створює об’єкт Контролер.
Дія#
remote_control_code_enabled#
remote_control_code_enabled – це змінна, яка вмикає або вимикає дії контролера, налаштовані в меню «Пристрої». Дії, налаштовані контролером, увімкнені за замовчуванням.
Usage:
remote_control_code_enabled = state
Значення |
Опис |
|---|---|
|
Вмикає дії, налаштовані контролером. |
|
Вимикає дії, налаштовані контролером. |
# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False
while True:
if controller.axisA.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axisA.position() < 0:
drivetrain.drive(REVERSE)
elif controller.buttonEUp.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Геттери#
.pressing#
.pressing повертає, чи натиснуто певну кнопку на контролері. Цей метод потрібно викликати для певного об’єкта кнопки, наприклад, controller.buttonEUp.
True— Натискається зазначена кнопка.False— Вказана кнопка не натискається.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:

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

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

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

Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли відпускається зазначена кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.changed#
.changed запускає функцію, коли положення джойстика змінюється вздовж заданої осі. Після використання функція запускатиметься автоматично щоразу, коли положення джойстика змінюється вздовж цієї осі.
Використання:
Один із доступних об’єктів осі можна використовувати з цим методом:

Вісь |
Команда |
|---|---|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускається щоразу, коли положення джойстика змінюється вздовж заданої осі. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Play a sound when the right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axisD.changed(beep)
Конструктори#
Controller#
Controller створює об’єкт Контролер. Ручне створення об’єкта Контролер потрібне лише під час налаштування контролера поза VEXcode.
Usage:
Controller()
Параметри |
Опис |
|---|---|
Цей конструктор не має параметрів. |
# Create a Controller object
my_controller = Controller()