Python เฉพาะสำหรับหุ่นยนต์#
การแนะนำ#
หุ่นยนต์ฮีโร่ Flex ประกอบด้วยมอเตอร์สำหรับกรงเล็บ มอเตอร์สำหรับแขน เซ็นเซอร์ตรวจจับภาพด้วย AI เซ็นเซอร์วัดระยะทาง และเซ็นเซอร์ระบบระบุตำแหน่งในเกม (GPS)
เมธอด VEXcode VR มาตรฐานทั้งหมดสามารถใช้งานได้ใน V5 26-27 Override 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
การรับรู้ – ใช้ประโยชน์จากเซ็นเซอร์ต่างๆ ของหุ่นยนต์
ระยะทาง
found_object– ส่งคืนว่าเซ็นเซอร์ระยะทางตรวจพบวัตถุภายในระยะหรือไม่object_distance– ส่งคืนระยะห่างระหว่างเซ็นเซอร์ระยะทางและวัตถุที่ตรวจพบที่ใกล้ที่สุด
GPS
x_position– ส่งคืนพิกัด x ปัจจุบันของเซ็นเซอร์ GPS ในสนามy_position– ส่งคืนพิกัด y ปัจจุบันของเซ็นเซอร์ GPS ในสนามheading– ส่งคืนทิศทางที่หุ่นยนต์กำลังหันหน้าไปทางใดทางหนึ่งตามเซ็นเซอร์ GPS
ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้น C จากรายการตรวจสอบก่อนการแข่งขันของ Playground
ระบบขับเคลื่อน#
ระบบขับเคลื่อนควบคุมการเคลื่อนที่และการเลี้ยวของหุ่นยนต์ VR ระบบขับเคลื่อนสามารถเคลื่อนที่ไปข้างหน้าหรือถอยหลัง เลี้ยวซ้ายหรือขวา เลี้ยวตามทิศทางต่างๆ และติดตามการหมุนของมันได้
การกระทำ#
ขับ#
คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด
Usage:
drivetrain.drive(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ไดรฟ์สำหรับ#
คำสั่ง drive_for จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
Usage:
drivetrain.drive_for(direction, distance, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
ระยะทางที่หุ่นยนต์ขับเคลื่อน ค่านี้อาจเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยวัดระยะทาง: |
|
ตัวเลือกเสริม |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
เปลี่ยน#
turn จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น ขับเคลื่อนหรือหยุด
Usage:
drivetrain.turn(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
เลี้ยวสำหรับ#
turn_for จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์ โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
Usage:
drivetrain.turn_for(direction, angle, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
จำนวนองศาที่หุ่นยนต์หมุน ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยของมุม: |
|
ตัวเลือกเสริม |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
เปลี่ยนหัว#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง turn_to_heading จะหมุนหุ่นยนต์ให้หันหน้าไปในทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย
ทิศทางเริ่มต้นคือ 0 องศา
Usage:
drivetrain.turn_to_heading(heading, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์ควรหันไปคือ ตั้งแต่ -359 ถึง 359 องศา |
|
เลือกได้ หน่วยของมุม: |
|
ตัวเลือกเสริม |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หมุนเพื่อการหมุน#
turn_to_rotation หมุนหุ่นยนต์ไปยังทิศทางการหมุนที่กำหนด
การหมุนคือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา การหมุนไปทางขวาจะเพิ่มการหมุน และการหมุนไปทางซ้ายจะลดการหมุน
ตัวอย่างเช่น ถ้าหุ่นยนต์เริ่มต้นที่ 0 องศาและหมุนไป 720 องศา มันจะเลี้ยวขวา 2 ครั้ง แต่ถ้าจากนั้นหมุนไป 360 องศา มันจะเลี้ยวซ้าย 1 ครั้ง เพราะ 360 น้อยกว่า 720
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศา) ที่หุ่นยนต์จะหมุนไป ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยของมุม: |
|
ตัวเลือกเสริม |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หยุด#
ปุ่ม stop stop จะหยุดการเคลื่อนที่ของหุ่นยนต์
Usage:
drivetrain.stop()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตัวกลายพันธุ์#
ตั้งค่าหัว#
ทิศทางที่หุ่นยนต์หันหน้าไป (Heading) คือทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยวัดเป็นองศา คำสั่ง set_heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นค่าทิศทางใหม่
ตัวอย่างเช่น หากหุ่นยนต์หันไปทางขวา การตั้งค่าทิศทางเป็น 0 องศา จะทำให้ตำแหน่งที่หันไปทางขวานั้นกลายเป็น 0 องศาใหม่ จากนั้นหุ่นยนต์สามารถหันไปตำแหน่งอื่น ๆ ได้โดยอิงจากทิศทางใหม่นั้น
Usage:
drivetrain.set_heading(heading, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าทิศทาง (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ |
|
เลือกได้ หน่วยของมุม: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าการหมุน#
การหมุน คือจำนวนรอบที่หุ่นยนต์หมุนไป โดยวัดเป็นองศา คำสั่ง set_rotation จะเปลี่ยนค่าการหมุนปัจจุบันของหุ่นยนต์เป็นค่าใหม่
Usage:
drivetrain.set_rotation(rotation, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยของมุม: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าหมดเวลา#
set_timeout กำหนดจำนวนวินาทีที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
Usage:
drivetrain.set_timeout(time, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
จำนวนวินาทีที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
ตัวเลือกเสริม หน่วยเวลา: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็วในการขับเคลื่อน#
set_drive_velocity จะบอกหุ่นยนต์ว่าควรขับเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_drive_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการขับขี่สามารถวัดได้ตั้งแต่ 0% ถึง 100% โดยค่านี้อาจเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยความเร็ว: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็วในการเลี้ยว#
set_turn_velocity จะบอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_turn_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยความเร็ว: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ผู้รับ#
หัวข้อ#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์จาก 0 เป็น 359.99 องศา
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา
Usage:
drivetrain.heading(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เลือกได้ตามต้องการ หน่วยวัดส่วนหัว: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, 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():
# Spin to find a Pin, then show rotation
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()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
กำลังเคลื่อนที่#
is_moving จะส่งคืนค่าบูลีนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์กำลังเคลื่อนที่False— หุ่นยนต์ไม่เคลื่อนที่
Usage:
drivetrain.is_moving()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ความเร็ว#
velocity จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์เป็นเปอร์เซ็นต์ ตั้งแต่ -100% ถึง 100%
Usage:
drivetrain.velocity(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เลือกได้ หน่วยความเร็ว: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
การเคลื่อนไหว#
Flex ใช้มอเตอร์แขนในการยกและลดระดับแขน และใช้มอเตอร์กรงเล็บในการเปิดและปิดกรงเล็บ
มอเตอร์แต่ละตัวมีทิศทางการทำงานเฉพาะตัว คำอธิบายทิศทางจะอธิบายว่าแต่ละทิศทางทำให้มอเตอร์นั้นเคลื่อนที่บน Flex อย่างไร
การกระทำ#
หมุน#
คำสั่ง spin จะหมุนมอเตอร์ไปในทิศทางใดทิศทางหนึ่งจากสองทิศทางอย่างไม่มีที่สิ้นสุด มอเตอร์จะหมุนต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น หมุนไปในทิศทางอื่นหรือหยุดหมุน
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของมอเตอร์:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
สปินฟอร์#
คำสั่ง spin_for จะหมุนมอเตอร์เป็นระยะทางที่กำหนด การหมุนนั้นสัมพันธ์กับตำแหน่งปัจจุบันของมอเตอร์ โปรเจ็กต์จะรอจนกว่ามอเตอร์จะหยุดหมุนก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการหมุนของมอเตอร์:
|
|
ระยะทางที่มอเตอร์หมุน |
|
เลือกได้ หน่วยระยะทาง: |
|
ตัวเลือกเสริม
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หมุนไปยังตำแหน่ง#
spin_to_position หมุนมอเตอร์ไปยังตำแหน่งที่กำหนด
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุน โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์แขนจะถูกตั้งไว้ที่ 0 องศา ยกเว้นมอเตอร์กรงเล็บ ซึ่งจะเริ่มต้นที่ 467 องศา (ปิดสนิท) ตำแหน่งของมอเตอร์ยังสามารถตั้งค่าได้โดยใช้เมธอด set_position
ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของมอเตอร์
ตัวอย่างเช่น หากมอเตอร์เริ่มหมุนที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ หากจากนั้นมันหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่มอเตอร์จะหมุนไป |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
|
ตัวเลือกเสริม
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หยุด#
stop หยุดมอเตอร์ไม่ให้หมุน
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
ตัวกลายพันธุ์#
ตั้งค่าตำแหน่ง#
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา set_position เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์เป็นค่าใหม่
ตัวอย่างเช่น หากมอเตอร์หมุนไปถึง 180 องศา การตั้งตำแหน่งเป็น 0 องศาจะรีเซ็ตตำแหน่งนั้นจาก 180 องศาเป็น 0 องศา จากนั้นมอเตอร์จะสามารถหมุนไปยังตำแหน่งต่างๆ ตามค่าใหม่นั้นได้
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าตำแหน่งที่จะตั้งค่าสำหรับมอเตอร์ |
|
เลือกได้ตามต้องการ หน่วยตำแหน่ง: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าความเร็ว#
คำสั่ง set_velocity จะบอกมอเตอร์ว่าควรหมุนเร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง
ทุกโปรเจกต์เริ่มต้นด้วยมอเตอร์แต่ละตัวหมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนสามารถมีค่าตั้งแต่ 0% ถึง 100% ค่านี้สามารถเป็นจำนวนเต็ม |
|
หน่วยความเร็ว: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตั้งค่าหมดเวลา#
set_timeout กำหนดเวลาที่มอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากมอเตอร์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้มอเตอร์ติดขัดในการเคลื่อนไหว
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่มอเตอร์สามารถพยายามทำการเคลื่อนที่ให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
หน่วยเวลา: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ผู้รับ#
เสร็จแล้ว#
is_done จะส่งคืนค่าบูลีนว่ามอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
True— มอเตอร์หยุดเคลื่อนที่แล้วFalse— มอเตอร์ยังคงหมุนอยู่
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
กำลังหมุน#
is_spinning จะส่งคืนค่าบูลีนว่ามอเตอร์กำลังหมุนอยู่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
True— มอเตอร์กำลังหมุนFalse— มอเตอร์ไม่หมุน
วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตำแหน่ง#
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา position จะแสดงตำแหน่งปัจจุบันของมอเตอร์
ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์แขนจะถูกตั้งไว้ที่ 0 องศา ยกเว้นมอเตอร์กรงเล็บ ซึ่งจะเริ่มต้นที่ 467 องศา (ปิดสนิท) หากมอเตอร์หมุนไปข้างหน้าหนึ่งรอบเต็ม ตำแหน่งจะเพิ่มขึ้น หากมอเตอร์หมุนไปในทิศทางตรงกันข้าม ตำแหน่งจะลดลง
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยสำหรับปรับตำแหน่งมอเตอร์กลับไปที่: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ความเร็ว#
ค่า velocity จะแสดงความเร็วในการหมุนของมอเตอร์
ค่าบวกหมายความว่ามอเตอร์หมุนไปข้างหน้า ค่าลบหมายความว่ามอเตอร์หมุนย้อนกลับ
วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:
มอเตอร์ |
สั่งการ |
|---|---|
|
|
|
|
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยความเร็วที่จะส่งคืน: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# 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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
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():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.ความสูง#
.height จะส่งคืนค่าความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 1 ถึง 240
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX ของวัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 320
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY ที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 240
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX วัตถุที่ตรวจพบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 320
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.originY#
.originY พบในหน่วยพิกเซล ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 240
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.id#
.id ส่งคืน ID ของการจำแนกประเภท AI ที่ตรวจพบเป็นจำนวนเต็ม
การจำแนกประเภท AI |
รหัส |
ลายเซ็น |
|---|---|---|
เรดบลูพิน |
0 |
|
พินสีน้ำเงินเหลือง |
1 |
|
พินสีแดงเหลือง |
2 |
|
เยลโลว์พิน |
3 |
|
ถ้วย |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
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 number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# 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)
การรับรู้#
ระยะทาง#
พบวัตถุ#
found_object จะส่งคืนค่าว่าเซ็นเซอร์ระยะทางตรวจพบวัตถุภายในระยะ 2000 มม. หรือไม่
True— เซ็นเซอร์วัดระยะทางตรวจจับวัตถุได้False— เซ็นเซอร์วัดระยะทางตรวจไม่พบวัตถุ
Usage:
distance.found_object()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ระยะห่างของวัตถุ#
object_distance ส่งคืนระยะห่างระหว่างเซ็นเซอร์วัดระยะทางและวัตถุที่ตรวจพบใกล้ที่สุด
Usage:
distance.object_distance(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
หน่วยวัดระยะทาง: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
จีเอส#
ตำแหน่ง x#
x_position จะส่งคืนค่าพิกัด x ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.x_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ตำแหน่ง y#
y_position จะส่งคืนค่าพิกัด y ปัจจุบันของเซ็นเซอร์ GPS (Game Positioning System™) ในสนาม
Usage:
gps.y_position(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
หน่วย |
หน่วยของค่าชดเชย: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
หัวข้อ#
คำสั่ง heading จะส่งคืนค่าทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยอิงจากค่าที่อ่านได้จากเซ็นเซอร์ GPS (Game Positioning System™) ตั้งแต่ 0 ถึง 359 องศา
Usage:
gps.heading()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)