Контролер#
Вступ#
Контролер VEX AIM One Stick має чотири кнопки та джойстик. Джойстик можна рухати вздовж двох осей, а також натискати як кнопку.
Методи контролера можна використовувати для перевірки натискань кнопок, зчитування руху джойстика, перевірки підключення та стану батареї або запуску функцій, коли відбуваються події контролера.
Нижче наведено список усіх методів:
Геттери — зчитування стану кнопки, джойстика, з’єднання та батареї.
.pressing— Повертає, чи натискається вказана кнопка..position— Повертає положення джойстика вздовж заданої осі.is_connected— Повертає, чи підключено контролер.get_battery_level— Повертає рівень заряду батареї контролера.
Зворотні виклики — Запускають функції, коли змінюється вхідний сигнал контролера.
Геттери#
.pressing#
.pressing повертає, чи натиснуто певну кнопку на контролері. Цей метод потрібно викликати для певного об’єкта кнопки, наприклад, controller.button_up.
True— Натискається зазначена кнопка.False— Вказана кнопка не натискається.
Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Move forward while the Up button is being pressed
while True:
if controller.button_up.pressing():
robot.move_at(0)
else:
robot.stop_all_movement()
wait(20, MSEC)
.position#
.position повертає положення осі джойстика як число від -100 до 100.
Цей метод потрібно викликати для певного об’єкта осі, такого як controller.axis1.
Використання:
З цим методом можна використовувати один із двох доступних об’єктів осі:
Вісь |
Команда |
|---|---|
|
|
|
|
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Move forward when the joystick is moved up
while True:
if controller.axis1.position() > 0:
robot.move_at(0)
else:
robot.stop_all_movement()
wait(20, MSEC)
is_connected#
is_connected повертає, чи підключено контролер.
True— Контролер підключено.False— Контролер не підключено.
Usage:
controller.is_connected()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Stop the robot if the controller disconnects
robot.move_at(0)
while True:
if not controller.is_connected():
robot.stop_all_movement()
wait(100, MSEC)
get_battery_level#
get_battery_level returns the controller’s battery level as a number from 0 to 100.
Usage:
controller.get_battery_level()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Display the controller's battery level
robot.screen.print(controller.get_battery_level())
Зворотні виклики#
.pressed#
.pressed запускає функцію при натисканні вказаної кнопки. Після використання функція запускатиметься автоматично щоразу, коли натискатиметься ця кнопка.
Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли натискається вказана кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released запускає функцію, коли зазначену кнопку відпускають. Після використання функція запускатиметься автоматично щоразу, коли цю кнопку відпускають.
Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:
Кнопка |
Команда |
|---|---|
|
|
|
|
|
|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускатиметься щоразу, коли відпускається зазначена кнопка. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Clear the screen after the Up button is released
def clear_screen():
robot.screen.clear_screen()
controller.button_up.released(clear_screen)
robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")
.changed#
.changed запускає функцію, коли положення джойстика змінюється вздовж заданої осі. Після використання функція запускатиметься автоматично щоразу, коли положення джойстика змінюється вздовж цієї осі.
Використання:
З цим методом можна використовувати один із двох доступних об’єктів осі:
Вісь |
Команда |
|---|---|
|
|
|
|
Параметр |
Опис |
|---|---|
|
Попередньо визначена function, яка запускається щоразу, коли положення джойстика змінюється вздовж заданої осі. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)