ตัวควบคุม#
การแนะนำ#
ตัวควบคุม VEX EXP มีปุ่มกดและจอยสติ๊กสองอัน สามารถใช้เมธอดของตัวควบคุมเพื่อตรวจสอบการกดปุ่ม อ่านการเคลื่อนไหวของจอยสติ๊ก เปิดหรือปิดการใช้งานการทำงานของตัวควบคุมที่กำหนดค่าไว้ หรือเรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์ของตัวควบคุม
การทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้ คือพฤติกรรมของคอนโทรลเลอร์ที่ตั้งไว้ในเมนูอุปกรณ์ ใช้คำสั่ง remote_control_code_enabled เพื่อเปิดใช้งานหรือปิดใช้งานการทำงานที่กำหนดค่าไว้เหล่านั้นชั่วคราวในระหว่างโครงการ
หน้านี้ใช้ชื่อคอนโทรลเลอร์ controller เป็นตัวอย่าง กรุณาแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
ด้านล่างนี้คือรายการวิธีการทั้งหมดที่มีให้เลือกใช้:
การดำเนินการ — เปิดหรือปิดการทำงานของตัวควบคุมที่กำหนดค่าไว้
remote_control_code_enabled— เปิดใช้งานหรือปิดใช้งานการดำเนินการควบคุมที่กำหนดค่าไว้ในเมนูอุปกรณ์
ตัวอ่านค่า — อ่านสถานะของปุ่มและตำแหน่งของจอยสติ๊ก
ฟังก์ชันเรียกกลับ (Callbacks) — เรียกใช้ฟังก์ชันเมื่ออินพุตจากคอนโทรลเลอร์เปลี่ยนแปลง
.pressed— เรียกใช้ฟังก์ชันเมื่อกดปุ่มที่ระบุ.released— เรียกใช้ฟังก์ชันเมื่อปล่อยปุ่มที่ระบุ.changed— เรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนไปตามแกนที่กำหนด
ตัวสร้าง — สร้างอ็อบเจ็กต์ Controller ด้วยตนเอง
Controller— สร้างอ็อบเจ็กต์ Controller
การกระทำ#
remote_control_code_enabled#
remote_control_code_enabled เป็นตัวแปรที่ใช้เปิดหรือปิดการใช้งานการทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้ในเมนูอุปกรณ์ โดยค่าเริ่มต้น การทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้จะถูกเปิดใช้งาน
Usage:
remote_control_code_enabled = state
ค่า |
คำอธิบาย |
|---|---|
|
เปิดใช้งานการดำเนินการที่กำหนดค่าไว้ในคอนโทรลเลอร์ |
|
ปิดใช้งานการทำงานที่กำหนดค่าไว้ในคอนโทรลเลอร์ |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use controller configured actions again
elif controller.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
ผู้รับ#
.pressing#
.pressing จะส่งคืนค่าว่าปุ่มใดปุ่มหนึ่งบนคอนโทรลเลอร์กำลังถูกกดอยู่หรือไม่ ต้องเรียกใช้เมธอดนี้กับออบเจ็กต์ปุ่มที่ระบุ เช่น controller.buttonA.
True— กำลังกดปุ่มที่ระบุอยู่False— ไม่ได้กดปุ่มที่ระบุ
วิธีใช้:
สามารถใช้วัตถุปุ่มที่มีอยู่หนึ่งรายการกับวิธีการนี้ได้:
ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn right while L1 is pressed
while True:
if controller.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position ส่งคืนตำแหน่งของแกนจอยสติ๊กเป็นตัวเลขตั้งแต่ -100 ถึง 100
ต้องเรียกใช้เมธอดนี้กับออบเจ็กต์แกนเฉพาะ เช่น controller.axis1
วิธีใช้:
สามารถใช้วัตถุแกนใดก็ได้ที่มีอยู่กับวิธีการนี้:
แกน |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
การเรียกกลับ#
.pressed#
.pressed กดปุ่มนั้น
วิธีใช้:
สามารถใช้วัตถุปุ่มที่มีอยู่หนึ่งรายการกับวิธีการนี้ได้:
ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the specified button is pressed. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Drive forward when R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.pressed(drive_forward)
.released#
.released จะเรียกใช้ฟังก์ชันเมื่อปล่อยปุ่มที่ระบุ เมื่อใช้งานแล้ว ฟังก์ชันจะทำงานโดยอัตโนมัติทุกครั้งที่ปล่อยปุ่มนั้น
วิธีใช้:
สามารถใช้วัตถุปุ่มที่มีอยู่หนึ่งรายการกับวิธีการนี้ได้:
ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the specified button is released. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.changed#
.changed จะเรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนที่ระบุ เมื่อใช้งานแล้ว ฟังก์ชันจะทำงานโดยอัตโนมัติทุกครั้งที่ตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนนั้น
วิธีใช้:
สามารถใช้วัตถุแกนใดก็ได้ที่มีอยู่กับวิธีการนี้:
แกน |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the joystick’s position changes along the specified axis. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Play a sound when the left joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
ผู้สร้าง#
Controller#
Controller สร้างอ็อบเจ็กต์ Controller การสร้างอ็อบเจ็กต์ Controller ด้วยตนเองนั้นจำเป็นเฉพาะเมื่อกำหนดค่าคอนโทรลเลอร์นอก VEXcode เท่านั้น
Usage:
Controller()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
คอนสตรัคเตอร์นี้ไม่มีพารามิเตอร์ |
# Create a Controller object
my_controller = Controller()