Контролер#
Вступ#
Контролер VEX EXP має кнопки та два джойстики. Методи контролера можна використовувати для перевірки натискань кнопок, зчитування руху джойстика, увімкнення або вимкнення налаштованих дій контролера або запуску функцій, коли відбуваються події контролера.
Налаштовані дії контролера – це поведінка контролера, встановлена в меню «Пристрої». Використовуйте 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
Значення |
Опис |
|---|---|
|
Вмикає дії, налаштовані контролером. |
|
Вимикає дії, налаштовані контролером. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use controller configured actions again
elif controller.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Геттери#
.pressing#
.pressing повертає, чи натиснуто певну кнопку на контролері. Цей метод потрібно викликати для певного об’єкта кнопки, наприклад, controller.buttonA.
True— Натискається зазначена кнопка.False— Вказана кнопка не натискається.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Turn right while L1 is pressed
while True:
if controller.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position повертає положення осі джойстика як число від -100 до 100.
Цей метод потрібно викликати для певного об’єкта осі, такого як controller.axis1.
Використання:
Один із доступних об’єктів осі можна використовувати з цим методом:
Вісь |
Команда |
|---|---|
|
|
|
|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
Зворотні виклики#
.pressed#
.pressed запускає функцію при натисканні вказаної кнопки. Після використання функція запускатиметься автоматично щоразу, коли натискатиметься ця кнопка.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли натискається вказана кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Drive forward when R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.pressed(drive_forward)
.released#
.released запускає функцію, коли зазначену кнопку відпускають. Після використання функція запускатиметься автоматично щоразу, коли цю кнопку відпускають.
Використання:
Один із доступних об’єктів кнопок можна використовувати з цим методом:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function для виконання кожного разу, коли відпускається зазначена кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.changed#
.changed запускає функцію, коли положення джойстика змінюється вздовж заданої осі. Після використання функція запускатиметься автоматично щоразу, коли положення джойстика змінюється вздовж цієї осі.
Використання:
Один із доступних об’єктів осі можна використовувати з цим методом:
Вісь |
Команда |
|---|---|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускається щоразу, коли положення джойстика змінюється вздовж заданої осі. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Play a sound when the left joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
Конструктори#
Controller#
Controller створює об’єкт Контролер. Ручне створення об’єкта Контролер потрібне лише під час налаштування контролера поза VEXcode.
Usage:
Controller()
Параметри |
Опис |
|---|---|
Цей конструктор не має параметрів. |
# Create a Controller object
my_controller = Controller()