Контроллер#
Введение#
Контроллер 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 возвращает уровень заряда батареи контроллера в виде числа от 0 до 100.
Usage:
controller.get_battery_level()
Параметры |
Описание |
|---|---|
Этот метод не имеет параметров. |
# Display the controller's battery level
robot.screen.print(controller.get_battery_level())
Обратные звонки#
.pressed#
.pressed запускает функцию при нажатии указанной кнопки. После использования функция будет запускаться автоматически каждый раз при нажатии этой кнопки.
Использование:
С этим методом можно использовать один из пяти доступных объектов кнопок:
Кнопка |
Командование |
|---|---|
|
|
|
|
|
|
|
|
|
|
Параметр |
Описание |
|---|---|
|
Предварительно определенная функция, которая будет выполняться каждый раз при нажатии указанной кнопки. |
|
Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Использование событий с параметрами для получения дополнительной информации. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released запускает функцию при отпускании указанной кнопки. После использования функция будет запускаться автоматически каждый раз при отпускании этой кнопки.
Использование:
С этим методом можно использовать один из пяти доступных объектов кнопок:
Кнопка |
Командование |
|---|---|
|
|
|
|
|
|
|
|
|
|
Параметр |
Описание |
|---|---|
|
Предварительно определенная функция, которая будет выполняться каждый раз, когда указанная кнопка отпускается. |
|
Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Использование событий с параметрами для получения дополнительной информации. |
# 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 запускает функцию при изменении положения джойстика вдоль указанной оси. После использования функция будет запускаться автоматически каждый раз при изменении положения джойстика вдоль этой оси.
Использование:
С этим методом можно использовать один из двух доступных объектов оси:
Ось |
Командование |
|---|---|
|
|
|
|
Параметр |
Описание |
|---|---|
|
Предварительно определенная функция, которая запускается каждый раз, когда положение джойстика изменяется вдоль указанной оси. |
|
Необязательно. Кортеж, содержащий аргументы для передачи в функцию обратного вызова. См. Использование событий с параметрами для получения дополнительной информации. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)