ตัวควบคุม#
การแนะนำ#
ตัวควบคุม V5 ประกอบด้วยปุ่มกด จอยสติ๊กสองอัน มอเตอร์สั่น และหน้าจอ สามารถใช้เมธอดต่างๆ ของตัวควบคุมเพื่อตรวจสอบการกดปุ่ม อ่านการเคลื่อนไหวของจอยสติ๊ก สั่นตัวควบคุม เปิดหรือปิดการใช้งานการทำงานที่ตั้งค่าไว้ เรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์กับตัวควบคุม หรือแสดงข้อความบนหน้าจอของตัวควบคุม
การทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้ คือพฤติกรรมของคอนโทรลเลอร์ที่ตั้งค่าไว้ในเมนูอุปกรณ์ ใช้คำสั่ง remote_control_code_enabled เพื่อเปิดใช้งานหรือปิดใช้งานการทำงานที่กำหนดค่าไว้เหล่านั้นชั่วคราวในระหว่างโครงการ
หน้านี้ใช้ controller_1 เป็นตัวอย่างชื่อ Controller โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
ด้านล่างนี้คือรายการวิธีการทั้งหมดที่มีให้เลือกใช้:
การกระทำ — เขย่าตัวควบคุม หรือเปิด/ปิดการทำงานของตัวควบคุมที่ตั้งค่าไว้
rumble— เล่นรูปแบบการสั่นบนคอนโทรลเลอร์remote_control_code_enabled— เปิดใช้งานหรือปิดใช้งานการดำเนินการของคอนโทรลเลอร์ที่กำหนดค่าไว้ในเมนูอุปกรณ์
หน้าจอ — แสดงข้อความและตัวเลขบนหน้าจอควบคุม
print— แสดงข้อความ ตัวเลข หรือค่าตัวแปรบนหน้าจอ Controllerset_cursor— ย้ายเคอร์เซอร์ไปยังแถวและคอลัมน์ที่ระบุบนหน้าจอ Controllercolumn— ส่งคืนคอลัมน์เคอร์เซอร์ปัจจุบันบนหน้าจอ Controllerrow— ส่งคืนแถวเคอร์เซอร์ปัจจุบันบนหน้าจอ Controllerclear_screen— ล้างหน้าจอ Controllerclear_row— ล้างแถวหนึ่งแถวบนหน้าจอ Controllernext_row— ย้ายเคอร์เซอร์ไปยังแถวถัดไปบนหน้าจอ Controller
ตัวอ่านค่า — อ่านสถานะของปุ่มและตำแหน่งของจอยสติ๊ก
ฟังก์ชันเรียกกลับ — เรียกใช้ฟังก์ชันเมื่ออินพุตของคอนโทรลเลอร์เปลี่ยนแปลง
.pressed— เรียกใช้ฟังก์ชันเมื่อกดปุ่มที่ระบุ.released— เรียกใช้ฟังก์ชันเมื่อปล่อยปุ่มที่ระบุ.changed— เรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนไปตามแกนที่กำหนด
ตัวสร้าง — สร้างอ็อบเจ็กต์ Controller ด้วยตนเอง
Controller— สร้างวัตถุ Controller
การกระทำ#
rumble#
rumble เล่นรูปแบบเสียงสั่นบนตัวควบคุม ในสตริงรูปแบบ จุดคือเสียงสั่นสั้น เครื่องหมายขีดคือเสียงสั่นยาว และช่องว่างคือการหยุดชั่วคราว
Usage:
controller_1.rumble(pattern)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
สตริงที่ประกอบด้วยจุด เครื่องหมายขีด และช่องว่าง ซึ่งแสดงถึงรูปแบบเสียงคำราม |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
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_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
หน้าจอ#
หน้าจอของตัวควบคุม V5 มี 3 แถวและ 19 คอลัมน์ สำหรับแสดงข้อความและตัวเลข

print#
controller_1.screen.print แสดงข้อความ ตัวเลข หรือค่าตัวแปรบนหน้าจอ Controller โดยใช้ตำแหน่งเคอร์เซอร์ปัจจุบัน
Usage:
controller_1.screen.print(value, sep, precision)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ข้อความ ตัวเลข หรือค่าตัวแปรที่จะแสดงบนหน้าจอควบคุม สามารถแสดงค่าได้มากกว่าหนึ่งค่าโดยคั่นด้วยเครื่องหมายจุลภาค |
|
ตัวเลือกเสริม สตริงที่จะวางคั่นระหว่างค่าต่างๆ ต้องเขียนเป็นอาร์กิวเมนต์แบบคีย์เวิร์ด เช่น |
|
ตัวเลือกเสริม จำนวนตำแหน่งทศนิยมที่จะแสดงเมื่อพิมพ์ตัวเลขธรรมดา ต้องเขียนเป็นอาร์กิวเมนต์แบบคีย์เวิร์ด เช่น precision= |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
คำสั่ง set_cursor จะย้ายเคอร์เซอร์ไปยังแถวและคอลัมน์ที่ระบุบนหน้าจอ Controller ค่าที่พิมพ์ถัดไปจะปรากฏที่ตำแหน่งนั้น
Usage:
controller_1.screen.set_cursor(row, col)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
แถวของเคอร์เซอร์ ตั้งแต่ |
|
คอลัมน์ของเคอร์เซอร์ ตั้งแต่ |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column ส่งคืนคอลัมน์ปัจจุบันที่ข้อความจะถูกพิมพ์บนหน้าจอ Controller
Usage:
controller_1.screen.column()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row ส่งคืนแถวปัจจุบันที่ข้อความจะถูกพิมพ์บนหน้าจอ Controller
Usage:
controller_1.screen.row()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen จะล้างหน้าจอ Controller และย้ายเคอร์เซอร์กลับไปยังตำแหน่งเริ่มต้น
Usage:
controller_1.screen.clear_screen()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row ล้างแถวหนึ่งแถวบนหน้าจอ Controller
Usage:
controller_1.screen.clear_row(row)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
(ไม่บังคับ) ระบุแถวที่จะล้าง ตั้งแต่ |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
คำสั่ง next_row จะย้ายเคอร์เซอร์ไปยังคอลัมน์ที่ 1 ในแถวถัดไปของหน้าจอ Controller ค่าที่พิมพ์ถัดไปจะปรากฏในแถวนั้น
Usage:
controller_1.screen.next_row()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
ผู้รับ#
.pressing#
.pressing จะส่งคืนค่าว่าปุ่มใดปุ่มหนึ่งบนคอนโทรลเลอร์กำลังถูกกดอยู่หรือไม่ ต้องเรียกใช้เมธอดนี้กับออบเจ็กต์ปุ่มที่ระบุ เช่น controller_1.buttonA.
True— กำลังกดปุ่มที่ระบุอยู่False— ไม่ได้กดปุ่มที่ระบุ
วิธีใช้:
สามารถใช้วัตถุปุ่มที่มีอยู่หนึ่งรายการกับวิธีการนี้ได้:

ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position ส่งคืนตำแหน่งของแกนจอยสติ๊กเป็นตัวเลขตั้งแต่ -100 ถึง 100
เมธอดนี้จะต้องเรียกใช้กับออบเจ็กต์แกนเฉพาะ เช่น controller_1.axis1
วิธีใช้:
สามารถใช้วัตถุแกนใดก็ได้ที่มีอยู่กับวิธีการนี้:

แกน |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.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 A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released จะเรียกใช้ฟังก์ชันเมื่อปล่อยปุ่มที่ระบุ เมื่อใช้งานแล้ว ฟังก์ชันจะทำงานโดยอัตโนมัติทุกครั้งที่ปล่อยปุ่มนั้น
วิธีใช้:
สามารถใช้วัตถุปุ่มที่มีอยู่หนึ่งรายการกับวิธีการนี้ได้:

ปุ่ม |
สั่งการ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function to run each time the specified button is released. |
|
ไม่บังคับ ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้เหตุการณ์กับพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.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 tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
ผู้สร้าง#
Controller#
Controller สร้างอ็อบเจ็กต์ Controller การสร้างอ็อบเจ็กต์ Controller ด้วยตนเองนั้นจำเป็นเฉพาะเมื่อกำหนดค่าคอนโทรลเลอร์นอก VEXcode เท่านั้น
Usage:
Controller(controller_type)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม ประเภทคอนโทรลเลอร์ที่จะสร้าง: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)