ตัวควบคุม#
การแนะนำ#
ตัวควบคุม VEX AIM One Stick Controller มีปุ่มสี่ปุ่มและจอยสติ๊ก จอยสติ๊กสามารถขยับได้สองแกนและยังสามารถกดได้เหมือนปุ่มอีกด้วย
สามารถใช้เมธอดควบคุมเพื่อตรวจสอบการกดปุ่ม อ่านการเคลื่อนไหวของจอยสติ๊ก ตรวจสอบการเชื่อมต่อและสถานะแบตเตอรี่ หรือเรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์ควบคุมขึ้น
ด้านล่างนี้คือรายการวิธีการทั้งหมด:
ตัวอ่านค่า — อ่านค่าปุ่มกด จอยสติ๊ก การเชื่อมต่อ และสถานะแบตเตอรี่
.pressing— คืนค่าว่าปุ่มที่ระบุถูกกดอยู่หรือไม่.position— ส่งคืนตำแหน่งจอยสติ๊กตามแกนที่ระบุis_connected— คืนค่าว่าคอนโทรลเลอร์เชื่อมต่ออยู่หรือไม่get_battery_level— ส่งคืนระดับแบตเตอรี่ของตัวควบคุม
ฟังก์ชันเรียกกลับ (Callbacks) — เรียกใช้ฟังก์ชันเมื่ออินพุตจากคอนโทรลเลอร์เปลี่ยนแปลง
ผู้รับ#
.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 กดปุ่มนั้น
วิธีใช้:
สามารถใช้ปุ่มหนึ่งในห้าแบบที่มีอยู่กับวิธีการนี้ได้:
ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the specified button is pressed. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released จะเรียกใช้ฟังก์ชันเมื่อปล่อยปุ่มที่ระบุ เมื่อใช้งานแล้ว ฟังก์ชันจะทำงานโดยอัตโนมัติทุกครั้งที่ปล่อยปุ่มนั้น
วิธีใช้:
สามารถใช้ปุ่มหนึ่งในห้าแบบที่มีอยู่กับวิธีการนี้ได้:
ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the specified button is 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 จะเรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนที่ระบุ เมื่อใช้งานแล้ว ฟังก์ชันจะทำงานโดยอัตโนมัติทุกครั้งที่ตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนนั้น
วิธีใช้:
สามารถใช้แกนวัตถุหนึ่งในสองแบบที่มีอยู่กับวิธีนี้ได้:
แกน |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the joystick’s position changes along the specified axis. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)