Python เฉพาะสำหรับหุ่นยนต์#
การแนะนำ#
หุ่นยนต์ Hero Bot ชื่อ Dex มีตัวเลือกมอเตอร์สองแบบ เซ็นเซอร์ตรวจจับภาพด้วย AI เซ็นเซอร์แบบออปติคอล และเซ็นเซอร์ระบบระบุตำแหน่งในเกม (GPS)
เมธอด VR มาตรฐานทั้งหมดของ VEXcode สามารถใช้งานได้ใน V5 25-26 Push Back 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— ส่งคืนความเร็วในการหมุนของมอเตอร์
AI Vision - จับภาพและวิเคราะห์วัตถุโดยใช้เซ็นเซอร์ AI Vision
ผู้รับ
take_snapshot– ส่งคืนทูเปิลของวัตถุที่ตรวจพบสำหรับลายเซ็นเฉพาะ
คุณสมบัติ
width– ความกว้างของวัตถุที่ตรวจพบในหน่วยพิกเซลheight– ความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซลcenterX– ตำแหน่ง X ของจุดศูนย์กลางของวัตถุในหน่วยพิกเซลcenterY– ตำแหน่ง Y ของจุดศูนย์กลางของวัตถุในหน่วยพิกเซลoriginX– ตำแหน่ง X ของมุมบนซ้ายของวัตถุในหน่วยพิกเซลoriginY– ตำแหน่ง Y ของมุมบนซ้ายของวัตถุในหน่วยพิกเซลid– รหัสการจำแนกหรือแท็กของวัตถุ
คอนโซล – แสดงค่าต่างๆ บนคอนโซลและตรวจสอบค่าเหล่านั้น
พิมพ์
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 องศา
ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้นเริ่มต้นของ 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))
การเคลื่อนไหว#
Dex ใช้มอเตอร์ดูดเพื่อดึงบล็อกเข้าไปในหุ่นยนต์ มอเตอร์สายพานลำเลียงจะเคลื่อนย้ายบล็อกจากช่องดูดไปยังด้านบนของหุ่นยนต์ เพื่อให้สามารถผลักบล็อกเข้าไปในเป้าหมายได้
มอเตอร์แต่ละตัวมีพฤติกรรมการเคลื่อนที่ในทิศทางเฉพาะตัว คำอธิบายทิศทางจะอธิบายว่าแต่ละทิศทางทำให้มอเตอร์นั้นเคลื่อนที่บน Dex อย่างไร
การกระทำ#
หมุน#
คำสั่ง spin จะหมุนมอเตอร์ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด มอเตอร์จะหมุนต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น หมุนไปในทิศทางอื่นหรือหยุด
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของมอเตอร์:
|
def main():
# Pick up a second Block
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 350, MM)
# VR threads — Do not delete
vr_thread(main)
สปินฟอร์#
คำสั่ง spin_for จะหมุนมอเตอร์เป็นระยะทางที่กำหนด การหมุนนั้นสัมพันธ์กับตำแหน่งปัจจุบันของมอเตอร์ โปรเจ็กต์จะรอจนกว่ามอเตอร์จะหยุดหมุนก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของมอเตอร์:
|
|
ระยะทางที่มอเตอร์หมุน |
|
เลือกได้ หน่วยระยะทาง: |
|
ตัวเลือกเสริม
|
def main():
# Pick up a second Block
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 350, MM)
# VR threads — Do not delete
vr_thread(main)
หมุนไปยังตำแหน่ง#
spin_to_position หมุนมอเตอร์ไปยังตำแหน่งที่กำหนด
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุน โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์จะถูกตั้งค่าเป็น 0 องศา นอกจากนี้ยังสามารถตั้งค่าตำแหน่งของมอเตอร์ได้โดยใช้เมธอด set_position
ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของมอเตอร์
ตัวอย่างเช่น หากมอเตอร์เริ่มหมุนที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ หากจากนั้นมันหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่มอเตอร์จะหมุนไป |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
|
ตัวเลือกเสริม
|
def main():
# Pick up a second Block
conveyor_motor.spin_to_position(150, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 350, MM)
# VR threads — Do not delete
vr_thread(main)
หยุด#
stop หยุดมอเตอร์ไม่ให้หมุน
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Pick up a second Block
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 350, MM)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
ตัวกลายพันธุ์#
ตั้งค่าตำแหน่ง#
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา set_position เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์เป็นค่าใหม่
ตัวอย่างเช่น หากมอเตอร์หมุนไปถึง 180 องศา การตั้งตำแหน่งเป็น 0 องศาจะรีเซ็ตตำแหน่งนั้นจาก 180 องศาเป็น 0 องศา จากนั้นมอเตอร์จะสามารถหมุนไปยังตำแหน่งต่างๆ ตามค่าใหม่นั้นได้
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่จะตั้งค่าสำหรับมอเตอร์ |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
def main():
# Pick up a second Block
conveyor_motor.set_position(-150, DEGREES)
conveyor_motor.spin_to_position(0, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 350, MM)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็ว#
คำสั่ง set_velocity จะบอกมอเตอร์ว่าควรหมุนเร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง
ทุกโปรเจกต์เริ่มต้นด้วยมอเตอร์แต่ละตัวหมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% โดยสามารถเป็นจำนวนเต็ม |
|
หน่วยความเร็ว: |
def main():
# Pick up a second Block
conveyor_motor.set_velocity(90, PERCENT)
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 400, MM)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าหมดเวลา#
set_timeout กำหนดเวลาที่มอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากมอเตอร์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้มอเตอร์ติดขัดในการเคลื่อนไหว
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่มอเตอร์สามารถพยายามทำการเคลื่อนที่ให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
หน่วยเวลา: |
def main():
# Pick up a second Block
conveyor_motor.set_timeout(0.5, SECONDS)
conveyor_motor.spin_to_position(1000, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 400, MM)
# VR threads — Do not delete
vr_thread(main)
ผู้รับ#
เสร็จแล้ว#
is_done จะส่งคืนค่าบูลีนว่ามอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
True— มอเตอร์หยุดเคลื่อนที่แล้วFalse— มอเตอร์ยังคงหมุนอยู่
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Pick up a second Block
conveyor_motor.spin_to_position(300, DEGREES, wait=False)
wait(0.1, SECONDS)
while not conveyor_motor.is_done():
drivetrain.drive(FORWARD)
intake_motor.spin(FORWARD)
wait(5, MSEC)
drivetrain.stop()
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
กำลังหมุน#
is_spinning จะส่งคืนค่าบูลีนว่ามอเตอร์กำลังหมุนอยู่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
True— มอเตอร์กำลังหมุนFalse— มอเตอร์ไม่หมุน
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Pick up a second Block
conveyor_motor.spin_to_position(300, DEGREES, wait=False)
wait(0.1, SECONDS)
while conveyor_motor.is_spinning():
drivetrain.drive_for(FORWARD, 200, MM)
intake_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
ตำแหน่ง#
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา position จะแสดงตำแหน่งปัจจุบันของมอเตอร์
ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์จะถูกตั้งไว้ที่ 0 องศา หากมอเตอร์หมุนไปข้างหน้าครบหนึ่งรอบ ตำแหน่งจะเปลี่ยนเป็น 360 องศา หรือ 1 รอบ หากมอเตอร์หมุนไปในทิศทางตรงกันข้าม ตำแหน่งจะเปลี่ยนเป็นค่าลบ
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยสำหรับปรับตำแหน่งมอเตอร์กลับไปที่: |
def main():
# Pick up a second Block
while conveyor_motor.position(DEGREES) < 150:
conveyor_motor.spin(FORWARD)
wait(2, MSEC)
conveyor_motor.stop()
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 400, MM)
# VR threads — Do not delete
vr_thread(main)
ความเร็ว#
ค่า velocity จะแสดงความเร็วในการหมุนของมอเตอร์
ค่าบวกหมายความว่ามอเตอร์หมุนไปข้างหน้า ค่าลบหมายความว่ามอเตอร์หมุนย้อนกลับ
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยความเร็วที่จะส่งคืน: |
def main():
# Pick up a second block
conveyor_motor.set_velocity(100, PERCENT)
conveyor_motor.spin_to_position(300, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(conveyor_motor.velocity(PERCENT))
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 400, MM)
# VR threads — Do not delete
vr_thread(main)
AI Vision#
ผู้รับ#
ถ่ายภาพสแนปช็อต#
take_snapshot กรองข้อมูลจากเฟรมของ AI Vision Sensor ให้เหลือเพียงลายเซ็นเดียว ซึ่งเป็นคำอธิบายที่บันทึกไว้ของสิ่งที่เซนเซอร์สามารถจดจำได้ เช่น องค์ประกอบในสนาม และส่งคืนค่าเป็นทูเปิล
The tuple stores objects ordered from largest to smallest by width, starting at index 0. Each object’s properties can be accessed using its index. An empty tuple is returned if no matching objects are detected.
Usage:
ai_vision.take_snapshot(signature)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
กรองชุดข้อมูลเพื่อให้มีเฉพาะข้อมูลที่มีลายเซ็นที่กำหนดเท่านั้น ลายเซ็นที่ใช้ได้คือ:
|
def main():
# If an object is detected, pick it up
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
while not bumper.pressing():
wait(2, MSEC)
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
คุณสมบัติ#
มีคุณสมบัติเจ็ดประการที่รวมอยู่ในแต่ละวัตถุที่จัดเก็บในทูเปิลหลังจากใช้ take_snapshot
ค่าคุณสมบัติทั้งหมด ยกเว้น .id อธิบายตำแหน่งและขนาดของวัตถุที่ตรวจพบในมุมมองของเซ็นเซอร์ AI Vision ในขณะที่ take_snapshot ถูกใช้งาน ค่าเหล่านี้วัดเป็นพิกเซล โดยอิงจากความละเอียด 320 x 240 พิกเซลของเซ็นเซอร์
.ความกว้าง#
.width ส่งคืนความกว้างของวัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 1 ถึง 320
def main():
# If an object is detected, approach and pick it up
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 65:
drivetrain.stop()
break
else:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.ความสูง#
.height จะส่งคืนค่าความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 1 ถึง 240
def main():
# If an object is detected, approach and pick it up
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 55:
drivetrain.stop()
break
else:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX ของวัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 320
def main():
# Pick up a Block from the top left group
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
drivetrain.turn_for(LEFT, 80, DEGREES)
drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn(LEFT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if 140 < ai_objects[0].centerX < 180:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
while not bumper.pressing():
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY ที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 240
def main():
# If an object is detected, approach and pick it up
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 140:
drivetrain.stop()
break
else:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX วัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 320
def main():
# Pick up a Block from the top left group
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
drivetrain.turn_for(LEFT, 80, DEGREES)
drivetrain.drive_for(FORWARD, 300, MM)
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn(RIGHT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if 100 < ai_objects[0].originX < 140:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
while not bumper.pressing():
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
.originY#
.originY พบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 240
def main():
# If an object is detected, approach and pick it up
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 120:
drivetrain.stop()
break
else:
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.id#
.id ส่งคืน ID ของการจำแนกประเภท AI ที่ตรวจพบเป็นจำนวนเต็ม
การจำแนกประเภท AI |
รหัส |
ลายเซ็น |
|---|---|---|
บลูบล็อก |
1 |
|
เรดบล็อก |
2 |
|
def main():
# Pick up a Red Block from the top left group
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
drivetrain.turn_for(LEFT, 80, DEGREES)
drivetrain.drive_for(FORWARD, 300, MM)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
drivetrain.drive(FORWARD)
if (ai_objects[0].id) == 2:
intake_motor.spin(FORWARD)
while not bumper.pressing():
wait(2, MSEC)
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
คอนโซล#
หน้าต่างคอนโซลจะแสดงข้อความ ตัวเลข และค่าตัวแปรขณะที่โปรเจกต์กำลังทำงาน นอกจากนี้ เมธอดของคอนโซลยังสามารถย้ายเคอร์เซอร์ไปยังแถวใหม่ ล้างคอนโซล และเพิ่มตัวแปรหรือค่าเซ็นเซอร์ลงในแท็บมอนิเตอร์ได้อีกด้วย
พิมพ์#
การพิมพ์หน้าจอสมอง#
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”)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าเซ็นเซอร์ที่ต้องการตรวจสอบ ระบุเป็นสตริง หากต้องการตรวจสอบค่าเซ็นเซอร์มากกว่าหนึ่งค่า ให้คั่นแต่ละค่าด้วยเครื่องหมายจุลภาค ตัวระบุเซ็นเซอร์ที่รองรับ ได้แก่:
|
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:
optical.is_near_object()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Move the preloaded Block to the top of the Conveyor
conveyor_motor.spin(FORWARD)
while not optical.is_near_object():
wait(2, MSEC)
conveyor_motor.stop()
# VR threads — Do not delete
vr_thread(main)
สี#
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:
optical.color()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Pick up and move a Blue Block to the top of the Conveyor
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 360, MM)
conveyor_motor.spin(FORWARD)
while not optical.color() == BLUE:
wait(2, MSEC)
conveyor_motor.stop()
# VR threads — Do not delete
vr_thread(main)
ความสว่าง#
ความสว่าง brightness ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุเป็นทศนิยม (float) ซึ่งแสดงถึงเปอร์เซ็นต์
เปอร์เซ็นต์ที่สูงขึ้นหมายความว่ามีแสงสะท้อนกลับไปยังเซ็นเซอร์แสงมากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่ามีแสงสะท้อนกลับน้อยลง
Usage:
optical.brightness()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Move the preloaded Block to the top of the Conveyor
conveyor_motor.spin(FORWARD)
while not 0 < optical.brightness():
wait(2, MSEC)
conveyor_motor.stop()
# VR threads — Do not delete
vr_thread(main)
เฉดสี#
hue ส่งคืนค่าเฉดสีของสีที่ตรวจพบเป็นค่าทศนิยม (float) ตั้งแต่ 0 ถึง 359
เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

Usage:
optical.hue()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Pick up and move a Blue Block to the top of the Conveyor
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive_for(FORWARD, 360, MM)
conveyor_motor.spin(FORWARD)
while not 220 < optical.hue() < 260:
wait(2, MSEC)
conveyor_motor.stop()
# VR threads — Do not delete
vr_thread(main)
ตรวจพบวัตถุ#
object_detected ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจพบวัตถุใหม่
Usage:
optical.object_detected(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function that executes when the Optical Sensor detects a new object. |
|
ตัวเลือกเสริม ทูเปิล ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
def ready_block():
# Stop the conveyor when Block is at the Sensor
conveyor_motor.stop()
def main():
# Move the preloaded Block near the top of the Conveyor
conveyor_motor.spin(FORWARD)
optical.object_detected(ready_block)
# VR threads — Do not delete
vr_thread(main)
วัตถุหายไป#
object_lost ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจไม่พบวัตถุ
Usage:
optical.object_lost(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
A previously defined function that executes when the Optical Sensor loses a detected object. |
|
ตัวเลือกเสริม ทูเปิล ที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม |
def ready_block():
# Stop the conveyor when Block is at the top
conveyor_motor.stop()
def main():
# Move the preloaded Block to the top of the Conveyor
conveyor_motor.spin(FORWARD)
optical.object_lost(ready_block)
# VR threads — Do not delete
vr_thread(main)
จีเอส#
ตำแหน่ง x#
x_position จะส่งคืนค่าพิกัด x ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.x_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
def main():
# Pick up a second Block
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -795:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
ตำแหน่ง y#
y_position จะส่งคืนค่าพิกัด y ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.y_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
def main():
# Pick up a second Block
conveyor_motor.spin_for(FORWARD, 200, DEGREES)
intake_motor.spin(FORWARD)
drivetrain.drive(FORWARD)
while not -450 > gps.y_position(MM):
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
หัวข้อ#
คำสั่ง heading จะส่งคืนค่าทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยอิงจากค่าที่อ่านได้จากเซ็นเซอร์ GPS (Game Positioning System™) ตั้งแต่ 0 ถึง 359 องศา
Usage:
gps.heading()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Score the preloaded Block into a Center Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not 40 > gps.heading():
wait(2, MSEC)
drivetrain.drive_for(FORWARD, 1000, MM)
drivetrain.turn(RIGHT)
while not gps.heading() > 310:
wait(2, MSEC)
drivetrain.drive_for(REVERSE, 400, MM)
conveyor_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)