Python เฉพาะสำหรับหุ่นยนต์#
การแนะนำ#
หุ่นยนต์ฮีโร่ Disco ประกอบด้วยชุดมอเตอร์, ตัวติดตามเส้น, เซ็นเซอร์แสง และเซ็นเซอร์ระบบระบุตำแหน่งในเกม (GPS)
เมธอด VEXcode VR มาตรฐานทั้งหมดสามารถใช้งานได้ใน V5 22-23 Spin Up Playground
ด้านล่างนี้คือรายการวิธีการเฉพาะสำหรับหุ่นยนต์ที่มีอยู่ทั้งหมด:
ระบบขับเคลื่อน – ทำให้หุ่นยนต์เคลื่อนที่และหมุนได้
การกระทำ
drive— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตลอดไปdrive_for— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตามระยะทางที่กำหนดturn— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตลอดไปturn_for— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตามจำนวนองศาที่กำหนดturn_to_heading— หมุนหุ่นยนต์ให้หันหน้าไปยังทิศทางที่กำหนดตั้งแต่ -359 ถึง 359 องศาturn_to_rotation— หมุนหุ่นยนต์ไปที่มุมการหมุนที่กำหนดstop— หยุดการเคลื่อนที่ของหุ่นยนต์
ตัวปรับแต่ง
set_heading— เปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นทิศทางใหม่set_rotation— เปลี่ยนการหมุนปัจจุบันของหุ่นยนต์เป็นการหมุนใหม่set_timeout— กำหนดเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้นset_drive_velocity— บอกหุ่นยนต์ว่าจะขับด้วยความเร็วเท่าใดset_turn_velocity— บอกหุ่นยนต์ว่าจะเลี้ยวเร็วแค่ไหน
ผู้รับ
การเคลื่อนไหว – เคลื่อนย้ายและติดตามกลุ่มมอเตอร์ของหุ่นยนต์
การกระทำ
spin— หมุนกลุ่มมอเตอร์ไปข้างหน้าหรือถอยหลังตลอดไปspin_for— หมุนกลุ่มมอเตอร์เป็นระยะทางที่กำหนดspin_to_position— หมุนกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนดstop— หยุดกลุ่มมอเตอร์ไม่ให้หมุน
ตัวปรับแต่ง
set_position— เปลี่ยนตำแหน่งปัจจุบันของกลุ่มมอเตอร์เป็นค่าใหม่set_velocity— บอกกลุ่มมอเตอร์ว่าจะหมุนเร็วแค่ไหนset_timeout— ตั้งค่าระยะเวลาที่กลุ่มมอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น
ผู้รับ
is_done— ส่งคืนว่ากลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ ในรูปแบบค่าบูลีนis_spinning— ส่งคืนว่ากลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่ ในรูปแบบค่าบูลีนposition— ส่งคืนตำแหน่งปัจจุบันของกลุ่มมอเตอร์velocity— ส่งคืนความเร็วในการหมุนของกลุ่มมอเตอร์
คอนโซล – แสดงค่าต่างๆ บนคอนโซลและตรวจสอบค่าเหล่านั้น
พิมพ์
brain.screen.print— แสดงข้อความ ตัวเลข หรือค่าตัวแปรในคอนโซลbrain.screen.next_row— ย้ายเคอร์เซอร์คอนโซลไปที่ต้นแถวถัดไปbrain.screen.clear_screen— ล้างแถวทั้งหมดออกจากคอนโซล
เฝ้าสังเกต
monitor_variable— เพิ่มตัวแปรที่กำหนดไว้ล่วงหน้าอย่างน้อยหนึ่งตัวลงในแท็บ Monitormonitor_sensor— เพิ่มค่าเซ็นเซอร์อย่างน้อยหนึ่งค่าลงในแท็บ Monitor
การรับรู้ - ใช้ประโยชน์จากเซ็นเซอร์ต่างๆ ของหุ่นยนต์
ออปติก
is_near_object– ส่งคืนว่าเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ในระยะหรือไม่color– ส่งคืนสีที่ตรวจพบโดยเซ็นเซอร์แสงbrightness– ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุhue– ส่งคืนค่าสีที่ตรวจพบโดยเซ็นเซอร์แสงobject_detected– ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงตรวจพบวัตถุobject_lost– ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงสูญเสียวัตถุ
GPS
x_position– ส่งคืนพิกัด x ปัจจุบันของเซ็นเซอร์ GPS ในสนามy_position– ส่งคืนพิกัด y ปัจจุบันของเซ็นเซอร์ GPS ในสนามheading– ส่งคืนทิศทางที่หุ่นยนต์กำลังหันหน้าไปทางนั้นตามการอ่านค่าของเซ็นเซอร์ GPS ตั้งแต่ 0 ถึง 359 องศา
ตัวติดตามเส้น
reflectivity– ส่งคืนปริมาณแสงที่สะท้อนจากพื้นผิว
ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้นเริ่มต้นของ Playground ตามค่าเริ่มต้น
ระบบขับเคลื่อน#
ระบบขับเคลื่อนควบคุมการเคลื่อนที่และการเลี้ยวของหุ่นยนต์ VR ระบบขับเคลื่อนสามารถเคลื่อนที่ไปข้างหน้าหรือถอยหลัง เลี้ยวซ้ายหรือขวา เลี้ยวตามทิศทางต่างๆ และติดตามการหมุนของมันได้
การกระทำ#
ขับ#
คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด
Usage:
drivetrain.drive(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
ไดรฟ์สำหรับ#
คำสั่ง drive_for จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
Usage:
drivetrain.drive_for(direction, distance, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
ระยะทางที่หุ่นยนต์ขับเคลื่อน ค่านี้อาจเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยวัดระยะทาง: |
|
ตัวเลือกเสริม |
def main():
# Drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)
# VR threads — Do not delete
vr_thread(main)
เปลี่ยน#
turn จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น ขับเคลื่อนหรือหยุด
Usage:
drivetrain.turn(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
เลี้ยวสำหรับ#
turn_for จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์ โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
Usage:
drivetrain.turn_for(direction, angle, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
จำนวนองศาที่หุ่นยนต์หมุน ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยการหมุน: |
|
ตัวเลือกเสริม |
def main():
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
เปลี่ยนหัว#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง turn_to_heading จะหมุนหุ่นยนต์ให้หันหน้าไปในทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา
โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่จะรันโค้ดบรรทัดถัดไป
Usage:
drivetrain.turn_to_heading(angle, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์ควรหันหน้าไป (หน่วยเป็นองศา) ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยการหมุน: |
|
ตัวเลือกเสริม |
def main():
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หมุนเพื่อการหมุน#
turn_to_rotation หมุนหุ่นยนต์ไปยังทิศทางการหมุนที่กำหนด
การหมุนคือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา นอกจากนี้ยังสามารถตั้งค่าการหมุนได้โดยใช้เมธอด set_rotation
ค่าการหมุนเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการเลี้ยวขึ้นอยู่กับการหมุนปัจจุบันของหุ่นยนต์ การเลี้ยวขวาจะเพิ่มการหมุน และการเลี้ยวซ้ายจะลดการหมุน
ตัวอย่างเช่น ถ้าหุ่นยนต์เริ่มต้นที่ 0 องศา และคุณหมุนเป็น 720 องศา มันจะเลี้ยวขวา 2 ครั้ง จากนั้นถ้าคุณหมุนเป็น 360 องศา มันจะเลี้ยวซ้าย 1 ครั้ง เพราะ 360 น้อยกว่า 720
โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่จะรันโค้ดบรรทัดถัดไป
Usage:
drivetrain.turn_to_rotation(angle, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศา) ที่หุ่นยนต์จะหมุนไป ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยการหมุน: |
|
ตัวเลือกเสริม |
def main():
# Turn left, then spin in a circle
# clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หยุด#
ปุ่ม stop stop จะหยุดการเคลื่อนที่ของหุ่นยนต์
Usage:
drivetrain.stop()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
ตัวกลายพันธุ์#
ตั้งค่าหัว#
ทิศทางที่หุ่นยนต์หันหน้าไป (Heading) คือทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยวัดเป็นองศา คำสั่ง set_heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นค่าทิศทางใหม่
ตัวอย่างเช่น หากหุ่นยนต์หันไปทางขวา การตั้งค่าทิศทางเป็น 0 องศา จะทำให้ตำแหน่งที่หันไปทางขวานั้นกลายเป็น 0 องศาใหม่ จากนั้นหุ่นยนต์สามารถหันไปตำแหน่งอื่น ๆ ได้โดยอิงจากทิศทางใหม่นั้น
Usage:
drivetrain.set_heading(heading, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าทิศทาง (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยวัดส่วนหัว: |
def main():
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าการหมุน#
การหมุน คือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง set_rotation จะเปลี่ยนค่าการหมุนปัจจุบันของหุ่นยนต์เป็นค่าใหม่
ตัวอย่างเช่น หากหุ่นยนต์หมุนไปทางขวาครบสองรอบ ค่าการหมุนของมันจะเป็น 720 องศา การตั้งค่าการหมุนเป็น 0 องศาจะรีเซ็ตค่าการหมุนจาก 720 เป็น 0 องศา จากนั้นหุ่นยนต์สามารถหมุนได้ตามค่าการหมุนใหม่นั้น
Usage:
drivetrain.set_rotation(rotation, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยการหมุน: |
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าหมดเวลา#
set_timeout กำหนดเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
Usage:
drivetrain.set_timeout(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
หน่วยเวลา: |
def main():
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็วในการขับเคลื่อน#
set_drive_velocity จะบอกหุ่นยนต์ว่าควรขับเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_drive_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการขับขี่สามารถวัดได้ตั้งแต่ 0% ถึง 100% โดยค่านี้อาจเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยความเร็ว: |
def main():
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็วในการเลี้ยว#
set_turn_velocity จะบอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_turn_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยความเร็ว: |
def main():
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ผู้รับ#
หัวข้อ#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์จาก 0 เป็น 359.99 องศา
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา
Usage:
drivetrain.heading(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เลือกได้ตามต้องการ หน่วยวัดส่วนหัว: |
def main():
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
การหมุน#
การหมุน คือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง rotation จะส่งคืนค่าการหมุนปัจจุบันของหุ่นยนต์
การเลี้ยวขวาจะเพิ่มมุมการหมุน และการเลี้ยวซ้ายจะลดมุมการหมุน ตัวอย่างเช่น การเลี้ยวขวาครบสองรอบจะทำให้ได้มุมการหมุน 720 องศา
Usage:
drivetrain.rotation(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เลือกได้ หน่วยการหมุน: |
def main():
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
เสร็จแล้ว#
is_done จะส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์เคลื่อนที่เสร็จแล้วFalse— หุ่นยนต์ยังคงเคลื่อนที่อยู่
วิธีการนี้ทำงานร่วมกับวิธีการ Drivetrain ต่อไปนี้ที่มีพารามิเตอร์ wait : drive_for, turn_for, turn_to_heading, และ turn_to_rotation
Usage:
drivetrain.is_done()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
กำลังเคลื่อนที่#
is_moving จะส่งคืนค่าบูลีนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์กำลังเคลื่อนที่False— หุ่นยนต์ไม่เคลื่อนที่
Usage:
drivetrain.is_moving()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ความเร็ว#
velocity จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์เป็นเปอร์เซ็นต์ ตั้งแต่ -100% ถึง 100%
Usage:
drivetrain.velocity(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เลือกได้ หน่วยความเร็ว: |
ตัวอย่าง
def main():
# Display the velocity after driving
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
การเคลื่อนไหว#
ดิสโก้ใช้ชุดมอเตอร์ดูดเพื่อหมุนล้อดูดเพื่อให้สามารถเก็บและบันทึกคะแนนแผ่นดิสก์ได้ ล้อเดียวกันนี้ยังสามารถหมุนลูกกลิ้งสนามได้เมื่อสัมผัสกับลูกกลิ้งเหล่านั้น
คำอธิบายทิศทางจะอธิบายว่าแต่ละทิศทางเคลื่อนที่กลุ่มมอเตอร์ดูดอากาศในรถดิสโกอย่างไร
การกระทำ#
หมุน#
คำสั่ง spin จะหมุนกลุ่มมอเตอร์ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด กลุ่มมอเตอร์จะหมุนต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การหมุนไปในทิศทางอื่นหรือหยุด
Usage:
intake_motor_group.spin(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของกลุ่มมอเตอร์:
|
def main():
# Spin the intake forward then stop
intake_motor_group.spin(FORWARD)
wait(0.5, SECONDS)
intake_motor_group.stop()
# VR threads — Do not delete
vr_thread(main)
สปินฟอร์#
คำสั่ง spin_for จะหมุนกลุ่มมอเตอร์เป็นระยะทางที่กำหนด การหมุนนั้นสัมพันธ์กับตำแหน่งปัจจุบันของกลุ่มมอเตอร์ โครงการจะรอจนกว่ากลุ่มมอเตอร์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
Usage:
intake_motor_group.spin_for(direction, distance, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของกลุ่มมอเตอร์:
|
|
ระยะทางที่กลุ่มมอเตอร์หมุน |
|
เลือกได้ หน่วยระยะทาง: |
|
ตัวเลือกเสริม
|
def main():
# Spin the intake forward then stop
intake_motor_group.spin_for(FORWARD, 360, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หมุนไปยังตำแหน่ง#
spin_to_position หมุนกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนด
ตำแหน่งของกลุ่มมอเตอร์คือระยะที่หมุน โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา ในตอนเริ่มต้นโครงการ ตำแหน่งของกลุ่มมอเตอร์จะถูกตั้งค่าเป็น 0 องศา ตำแหน่งของกลุ่มมอเตอร์ยังสามารถตั้งค่าได้โดยใช้เมธอด set_position
ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของกลุ่มมอเตอร์
ตัวอย่างเช่น ถ้ากลุ่มมอเตอร์เริ่มต้นที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ ถ้ามันหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720
Usage:
intake_motor_group.spin_to_position(angle, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่กลุ่มมอเตอร์จะหมุนไป |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
|
ตัวเลือกเสริม
|
def main():
# Spin the intake forward then stop
intake_motor_group.spin_to_position(55, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หยุด#
stop หยุดการหมุนของกลุ่มมอเตอร์
Usage:
intake_motor_group.stop()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Spin the intake forward then stop
intake_motor_group.spin(FORWARD)
wait(0.5, SECONDS)
intake_motor_group.stop()
# VR threads — Do not delete
vr_thread(main)
ตัวกลายพันธุ์#
ตั้งค่าตำแหน่ง#
ตำแหน่งของกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา set_position เปลี่ยนตำแหน่งปัจจุบันของกลุ่มมอเตอร์เป็นค่าใหม่
ตัวอย่างเช่น หากกลุ่มมอเตอร์หมุนไปที่ 180 องศา การตั้งตำแหน่งเป็น 0 องศาจะรีเซ็ตตำแหน่งนั้นจาก 180 องศาเป็น 0 องศา จากนั้นกลุ่มมอเตอร์จะสามารถหมุนไปยังตำแหน่งต่างๆ ตามค่าใหม่นั้นได้
Usage:
intake_motor_group.set_position(position, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่จะตั้งสำหรับกลุ่มมอเตอร์ |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
def main():
# Spin the intake forward then stop
intake_motor_group.set_position(90, DEGREES)
intake_motor_group.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็ว#
คำสั่ง set_velocity จะบอกกลุ่มมอเตอร์ว่าควรหมุนเร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้กลุ่มมอเตอร์หมุนเร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้กลุ่มมอเตอร์หมุนช้าลง
ทุกโปรเจกต์เริ่มต้นด้วยการที่กลุ่มมอเตอร์แต่ละกลุ่มหมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้กลุ่มมอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้กลุ่มมอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
intake_motor_group.set_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนสามารถมีค่าตั้งแต่ 0% ถึง 100% ค่านี้สามารถเป็นจำนวนเต็ม |
|
หน่วยความเร็ว: |
def main():
# Spin the intake forward then stop
intake_motor_group.set_velocity(75, PERCENT)
intake_motor_group.spin_to_position(180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าหมดเวลา#
set_timeout กำหนดเวลาที่กลุ่มมอเตอร์จะพยายามเคลื่อนไหวให้เสร็จสิ้น หากกลุ่มมอเตอร์ไม่สามารถเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด ระบบจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้กลุ่มมอเตอร์ติดขัดในการเคลื่อนไหว
Usage:
intake_motor_group.set_timeout(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่กลุ่มมอเตอร์สามารถพยายามทำการเคลื่อนไหวให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
หน่วยเวลา: |
def main():
# Spin the intake forward then stop
intake_motor_group.set_timeout(2, SECONDS)
intake_motor_group.spin_to_position(270, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ผู้รับ#
เสร็จแล้ว#
is_done จะส่งคืนค่าบูลีนว่ากลุ่มมอเตอร์เคลื่อนไหวเสร็จสิ้นแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนไหวของกลุ่มมอเตอร์ได้
True— กลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วFalse— กลุ่มมอเตอร์ยังคงเคลื่อนไหวอยู่
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
Usage:
intake_motor_group.is_done()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
กำลังหมุน#
is_spinning จะส่งคืนค่าบูลีนว่ากลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนไหวของกลุ่มมอเตอร์ได้
True— กลุ่มมอเตอร์กำลังหมุนFalse— กลุ่มมอเตอร์ไม่หมุน
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
Usage:
intake_motor_group.is_spinning()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ตำแหน่ง#
ตำแหน่งของกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา position จะแสดงตำแหน่งปัจจุบันของกลุ่มมอเตอร์
ในตอนเริ่มต้นโครงการ ตำแหน่งของกลุ่มมอเตอร์จะถูกตั้งไว้ที่ 0 องศา หากกลุ่มมอเตอร์หมุนไปข้างหน้าครบหนึ่งรอบ ตำแหน่งจะเปลี่ยนเป็น 360 องศา หรือ 1 รอบ หากกลุ่มมอเตอร์หมุนไปในทิศทางตรงกันข้าม ตำแหน่งจะเปลี่ยนเป็นค่าลบ
Usage:
intake_motor_group.position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยสำหรับปรับตำแหน่งกลุ่มมอเตอร์กลับไปที่: |
ความเร็ว#
ค่า velocity แสดงความเร็วในการหมุนของกลุ่มมอเตอร์
ค่าบวกหมายความว่ากลุ่มมอเตอร์กำลังหมุนไปข้างหน้า ค่าลบหมายความว่ากลุ่มมอเตอร์กำลังหมุนถอยหลัง
Usage:
intake_motor_group.velocity(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยความเร็วที่จะส่งคืน: |
คอนโซล#
หน้าต่างคอนโซลจะแสดงข้อความ ตัวเลข และค่าตัวแปรขณะที่โปรเจกต์กำลังทำงาน นอกจากนี้ เมธอดของคอนโซลยังสามารถย้ายเคอร์เซอร์ไปยังแถวใหม่ ล้างคอนโซล และเพิ่มตัวแปรหรือค่าเซ็นเซอร์ลงในแท็บมอนิเตอร์ได้อีกด้วย
พิมพ์#
การพิมพ์หน้าจอสมอง#
brain.screen.print แสดงข้อความ ตัวเลข หรือค่าตัวแปรในคอนโซลโดยใช้ตำแหน่งเคอร์เซอร์ปัจจุบัน
ใช้ brain.screen.next_row เมื่อคุณต้องการให้ค่าที่พิมพ์ถัดไปเริ่มต้นในแถวใหม่
Usage:
brain.screen.print(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ข้อความ ตัวเลข หรือค่าตัวแปรที่จะแสดงในคอนโซล |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)

สมอง.หน้าจอ.แถวถัดไป#
brain.screen.next_row จะย้ายเคอร์เซอร์ไปยังคอลัมน์ที่ 1 ในแถวถัดไปในคอนโซล ค่าถัดไปที่พิมพ์จะปรากฏในแถวนั้น
Usage:
brain.screen.next_row()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)

สมอง.หน้าจอ.เคลียร์หน้าจอ#
brain.screen.clear_screen จะล้างแถวทั้งหมดออกจากคอนโซลและย้ายเคอร์เซอร์กลับไปที่แถวที่ 1
Usage:
brain.screen.clear_screen()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
เฝ้าสังเกต#
ตัวแปรมอนิเตอร์#
monitor_variable เพิ่มตัวแปรที่กำหนดไว้ล่วงหน้าอย่างน้อยหนึ่งตัวลงในแท็บ Monitor ใน VEXcode ซึ่งช่วยให้คุณสามารถตรวจสอบการเปลี่ยนแปลงค่าของตัวแปรขณะที่โปรเจกต์กำลังทำงานอยู่
ตัวแปรต้องเป็น monitor_variable เพื่อให้สามารถตรวจสอบตัวแปรเหล่านั้นได้อย่างสำเร็จ ระบุชื่อตัวแปรแต่ละตัวเป็นสตริง
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ชื่อของตัวแปรส่วนกลางที่กำหนดไว้ล่วงหน้าซึ่งต้องการตรวจสอบ โดยระบุเป็นสตริง หากต้องการตรวจสอบตัวแปรมากกว่าหนึ่งตัว ให้คั่นชื่อตัวแปรแต่ละตัวด้วยเครื่องหมายจุลภาค |
def main():
# Monitor the amount of loops
global loops
monitor_variable("loops")
# Drive in a square 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
มอนิเตอร์เซนเซอร์#
monitor_sensor เพิ่มค่าเซ็นเซอร์อย่างน้อยหนึ่งค่าลงในแท็บ Monitor ใน VEXcode ซึ่งช่วยให้คุณสามารถดูการเปลี่ยนแปลงของค่าเซ็นเซอร์ขณะที่โปรเจ็กต์กำลังทำงานอยู่
ระบุค่าเซ็นเซอร์แต่ละค่าเป็นสตริง
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
การรับรู้#
ออปติคอล#
อยู่ใกล้วัตถุ#
is_near_object ส่งคืนค่าบูลีนที่ระบุว่าเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ในระยะหรือไม่
True– เซ็นเซอร์แสงตรวจจับวัตถุได้False– เซ็นเซอร์แสงไม่ตรวจพบวัตถุ
Usage:
roller_optical.is_near_object()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
สี#
color ส่งคืนอินสแตนซ์ของคลาส Color โดยอิงตามค่าเฉดสีที่ตรวจพบ ซึ่งสามารถนำไปเปรียบเทียบกับออบเจ็กต์ Color ที่กำหนดไว้ล่วงหน้าเพื่อสร้างคำสั่งเงื่อนไขได้
สีที่เป็นไปได้ ได้แก่:
NONERED- ค่าเฉดสีระหว่าง 340° - 20°GREEN- ค่าเฉดสีระหว่าง 80° - 140°BLUE- ค่าเฉดสีระหว่าง 200° - 240°YELLOW- ค่าเฉดสีระหว่าง 40° - 60°ORANGE- ค่าเฉดสีระหว่าง 20° - 40°PURPLE- ค่าเฉดสีระหว่าง 240° - 280°CYAN- ค่าเฉดสีระหว่าง 140° - 200°
หมายเหตุ: เซ็นเซอร์แสงจะมองหาช่วงเฉดสีที่ตรงกับสีที่ระบุ สำหรับการตรวจจับช่วงเฉดสีที่เฉพาะเจาะจง โปรดดู hue
Usage:
roller_optical.color()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ความสว่าง#
ความสว่าง brightness ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุเป็นทศนิยม (float) ซึ่งแสดงถึงเปอร์เซ็นต์
เปอร์เซ็นต์ที่สูงขึ้นหมายความว่ามีแสงสะท้อนกลับไปยังเซ็นเซอร์แสงมากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่ามีแสงสะท้อนกลับน้อยลง
Usage:
roller_optical.brightness()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
เฉดสี#
hue ส่งคืนค่าเฉดสีของสีที่ตรวจพบเป็นค่าทศนิยม (float) ตั้งแต่ 0 ถึง 359
เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

Usage:
roller_optical.hue()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ตรวจพบวัตถุ#
object_detected ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจพบวัตถุใหม่
Usage:
roller_optical.object_detected(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function that executes when the Optical Sensor detects a new object. |
|
ตัวเลือกเสริม ทูเปิล ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
วัตถุหายไป#
object_lost ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจไม่พบวัตถุ
Usage:
roller_optical.object_lost(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function that executes when the Optical Sensor loses a detected object. |
|
ตัวเลือกเสริม ทูเปิล ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
จีเอส#
ตำแหน่ง x#
x_position จะส่งคืนค่าพิกัด x ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.x_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
ตำแหน่ง y#
y_position จะส่งคืนค่าพิกัด y ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.y_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
หัวข้อ#
คำสั่ง heading จะส่งคืนค่าทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยอิงจากค่าที่อ่านได้จากเซ็นเซอร์ GPS (Game Positioning System™) ตั้งแต่ 0 ถึง 359 องศา
Usage:
gps.heading()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ตัวติดตามเส้น#
การสะท้อนแสง#
ค่าการสะท้อนแสง reflectivity จะส่งคืนค่าจำนวนเต็มที่แสดงถึงปริมาณแสงที่สะท้อนจากพื้นผิวเป็นเปอร์เซ็นต์
ค่าการสะท้อนแสง 0% หมายความว่าวัตถุนั้นมืดมาก
ค่าการสะท้อนแสง 100% หมายความว่าวัตถุนั้นสว่างมาก
วิธีใช้:
สามารถใช้หนึ่งในสามออบเจ็กต์ line_tracker ที่มีอยู่กับเมธอดนี้ได้ ดังแสดงด้านล่าง:
ตัวติดตามเส้น |
สั่งการ |
|---|---|
|
|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
ตัวเลือกเสริม หน่วยที่จะใช้ในการวัดค่าการสะท้อนแสง:
|