控制器#
介紹#
VEX AIM One 搖桿控制器有四個按鈕和一個搖桿。搖桿可以沿著兩個軸向移動,也可以像按鈕一樣按下。
控制器方法可用於檢查按鈕按下、讀取操縱桿移動、檢查連接和電池狀態,或在控制器事件發生時運行功能。
以下是所有方法的清單:
讀取按鈕、操縱桿、連接和電池狀態。
.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— 控制器未連接。
用法:
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 表示當指定的按鈕被按下時執行一個函數。一旦使用,每次按下該按鈕時,函數都會自動運行。
用法:
此方法可使用五種可用按鈕物件之一:
按鈕 |
命令 |
|---|---|
|
|
|
|
|
|
|
|
|
|
範圍 |
描述 |
|---|---|
|
預先定義的 函數,每次按下指定的按鈕時執行。 |
|
可選。包含要傳遞給回呼函數的參數的元組。有關更多信息,請參閱使用帶參數的事件。 |
# 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)