Контролер#

Вступ#

Контролер VEX AIM One Stick має чотири кнопки та джойстик. Джойстик можна рухати вздовж двох осей, а також натискати як кнопку.

Методи контролера можна використовувати для перевірки натискань кнопок, зчитування руху джойстика, перевірки підключення та стану батареї або запуску функцій, коли відбуваються події контролера.

Нижче наведено список усіх методів:

Геттери — зчитування стану кнопки, джойстика, з’єднання та батареї.

  • .pressing — Повертає, чи натискається вказана кнопка.

  • .position — Повертає положення джойстика вздовж заданої осі.

  • is_connected — Повертає, чи підключено контролер.

  • get_battery_level — Повертає рівень заряду батареї контролера.

Зворотні виклики — Запускають функції, коли змінюється вхідний сигнал контролера.

  • .pressed — Виконує функцію при натисканні вказаної кнопки.

  • .released — Виконує функцію, коли відпускається вказана кнопка.

  • .changed — Виконує функцію, коли положення джойстика змінюється вздовж заданої осі.

Геттери#

.pressing#

.pressing повертає, чи натиснуто певну кнопку на контролері. Цей метод потрібно викликати для певного об’єкта кнопки, наприклад, controller.button_up.

  • True — Натискається зазначена кнопка.

  • False — Вказана кнопка не натискається.

Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:

Кнопка

Команда

button_up

controller.button_up.pressing() — Кнопка Вгору

button_down

controller.button_down.pressing() — Кнопка Вниз

button_left

controller.button_left.pressing() — Кнопка Ліва

button_right

controller.button_right.pressing() — Кнопка Права

button_stick

controller.button_stick.pressing() — Кнопка Джойстика

Одностіковий контролер VEX AIM з джойстиком ліворуч та чотирма кнопками праворуч. Джойстик та чотири кнопки виділені.

Параметри

Опис

Цей метод не має параметрів.

# 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.

Використання:
З цим методом можна використовувати один із двох доступних об’єктів осі:

Вісь

Команда

axis1

controller.axis1.position() — Вертикальна вісь

axis2

controller.axis2.position() — Горизонтальна вісь

Контролер VEX AIM з джойстиком ліворуч та чотирма кнопками праворуч. Осі 1 та 2 для джойстика виділені.

Параметри

Опис

Цей метод не має параметрів.

# 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 запускає функцію при натисканні вказаної кнопки. Після використання функція запускатиметься автоматично щоразу, коли натискатиметься ця кнопка.

Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:

Кнопка

Команда

button_up

controller.button_up.pressed(callback, arg) — Кнопка Вгору

button_down

controller.button_down.pressed(callback, arg) — Кнопка Вниз

button_left

controller.button_left.pressed(callback, arg) — Кнопка Ліва

button_right

controller.button_right.pressed(callback, arg) — Кнопка Праворуч

button_stick

controller.button_stick.pressed(callback, arg) — Кнопка Джойстик

Одностіковий контролер VEX AIM з джойстиком ліворуч та чотирма кнопками праворуч. Джойстик та чотири кнопки виділені.

Параметр

Опис

callback

Попередньо визначена function, яка запускатиметься щоразу, коли натискається вказана кнопка.

arg

Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released запускає функцію, коли зазначену кнопку відпускають. Після використання функція запускатиметься автоматично щоразу, коли цю кнопку відпускають.

Використання:
З цим методом можна використовувати один із п’яти доступних об’єктів кнопок:

Кнопка

Команда

button_up

controller.button_up.released(callback, arg) — Кнопка Вгору

button_down

controller.button_down.released(callback, arg) — Кнопка Вниз

button_left

controller.button_left.released(callback, arg) — Кнопка Ліва

button_right

controller.button_right.released(callback, arg) — Кнопка Праворуч

button_stick

controller.button_stick.released(callback, arg) — Кнопка Джойстик

Одностіковий контролер VEX AIM з джойстиком ліворуч та чотирма кнопками праворуч. Джойстик та чотири кнопки виділені.

Параметр

Опис

callback

Попередньо визначена function, яка запускатиметься щоразу, коли відпускається зазначена кнопка.

arg

Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації.

# 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 запускає функцію, коли положення джойстика змінюється вздовж заданої осі. Після використання функція запускатиметься автоматично щоразу, коли положення джойстика змінюється вздовж цієї осі.

Використання:
З цим методом можна використовувати один із двох доступних об’єктів осі:

Вісь

Команда

axis1

controller.axis1.changed(callback, arg) — Вертикальна вісь

axis2

controller.axis2.changed(callback, arg) — Горизонтальна вісь

Контролер VEX AIM з джойстиком ліворуч та чотирма кнопками праворуч. Осі 1 та 2 для джойстика виділені.

Параметр

Опис

callback

Попередньо визначена function, яка запускається щоразу, коли положення джойстика змінюється вздовж заданої осі.

arg

Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання подій з параметрами для отримання додаткової інформації.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)