控制器#

介紹#

VEX AIM One 搖桿控制器有四個按鈕和一個搖桿。搖桿可以沿著兩個軸向移動,也可以像按鈕一樣按下。

控制器方法可用於檢查按鈕按下、讀取操縱桿移動、檢查連接和電池狀態,或在控制器事件發生時運行功能。

以下是所有方法的清單:

讀取按鈕、操縱桿、連接和電池狀態。

回調函數-當控制器輸入發生變化時執行的函數。

  • .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 — 控制器未連接。

用法:
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。

用法:
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

預先定義的 函數,每次按下指定的按鈕時執行。

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

預先定義的 函數,每次釋放指定的按鈕時都會執行。

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

預先定義的 函數,每次操縱桿的位置沿著指定軸變化時運行。

arg

可選。包含要傳遞給回呼函數的參數的元組。有關更多信息,請參閱使用帶參數的事件。

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

controller.axis1.changed(move_joystick)