ตัวควบคุม#

การแนะนำ#

ตัวควบคุม VEX AIM One Stick Controller มีปุ่มสี่ปุ่มและจอยสติ๊ก จอยสติ๊กสามารถขยับได้สองแกนและยังสามารถกดได้เหมือนปุ่มอีกด้วย

สามารถใช้เมธอดควบคุมเพื่อตรวจสอบการกดปุ่ม อ่านการเคลื่อนไหวของจอยสติ๊ก ตรวจสอบการเชื่อมต่อและสถานะแบตเตอรี่ หรือเรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์ควบคุมขึ้น

ด้านล่างนี้คือรายการวิธีการทั้งหมด:

ตัวอ่านค่า — อ่านค่าปุ่มกด จอยสติ๊ก การเชื่อมต่อ และสถานะแบตเตอรี่

  • .pressing — คืนค่าว่าปุ่มที่ระบุถูกกดอยู่หรือไม่

  • .position — ส่งคืนตำแหน่งจอยสติ๊กตามแกนที่ระบุ

  • is_connected — คืนค่าว่าคอนโทรลเลอร์เชื่อมต่ออยู่หรือไม่

  • get_battery_level — ส่งคืนระดับแบตเตอรี่ของตัวควบคุม

ฟังก์ชันเรียกกลับ (Callbacks) — เรียกใช้ฟังก์ชันเมื่ออินพุตจากคอนโทรลเลอร์เปลี่ยนแปลง

  • .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 One Stick มีจอยสติ๊กอยู่ทางด้านซ้ายและปุ่มสี่ปุ่มอยู่ทางด้านขวา จอยสติ๊กและปุ่มทั้งสี่ปุ่มถูกไฮไลต์ไว้

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# 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 ส่งคืนระดับแบตเตอรี่ของคอนโทรลเลอร์เป็นตัวเลขตั้งแต่ 0 ถึง 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 One Stick มีจอยสติ๊กอยู่ทางด้านซ้ายและปุ่มสี่ปุ่มอยู่ทางด้านขวา จอยสติ๊กและปุ่มทั้งสี่ปุ่มถูกไฮไลต์ไว้

พารามิเตอร์

คำอธิบาย

callback

A previously defined function to run each time the specified button is pressed.

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 One Stick มีจอยสติ๊กอยู่ทางด้านซ้ายและปุ่มสี่ปุ่มอยู่ทางด้านขวา จอยสติ๊กและปุ่มทั้งสี่ปุ่มถูกไฮไลต์ไว้

พารามิเตอร์

คำอธิบาย

callback

A previously defined function to run each time the specified button is released.

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

A previously defined function to run each time the joystick’s position changes along the specified axis.

arg

ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม

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

controller.axis1.changed(move_joystick)