บทเรียนที่ 2: ขับรถไปยังหมายเลข '5'
ในบทเรียนนี้หุ่นยนต์ VR จะขับไปที่หมายเลข ‘5’ และกลับไปที่หมายเลข ‘1’ บน Number Grid Map Playground!

สังเกตว่าหุ่นยนต์ VR จะเคลื่อนที่ไปตามแกน X โดยมีค่า X เพิ่มขึ้นเพื่อย้ายไปยังหมายเลข ‘5’ บน Number Grid MapPlayground

หุ่นยนต์ VR จะขับไปยังตำแหน่งของหมายเลข ‘5’ บน Number Grid MapPlayground อย่างไรก็ตามก่อนที่หุ่นยนต์ VR จะไปยังหมายเลขนั้นได้หุ่นยนต์ VR จะต้องบอกตำแหน่งของหมายเลขนั้นว่าอยู่ที่ไหน เริ่มต้นที่ศูนย์กลางของสนามเด็กเล่นพิกัดของหมายเลข ‘5’ คือ (-100, -900)

- ในการเริ่มต้นหุ่นยนต์ VR จะต้องหันหน้าไปทางหมายเลข ‘5’ ลากเข้าหรือพิมพ์คำสั่ง turn_for
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(ขวา, 90, องศา)- ลากในลูป while ใต้คำสั่ง turn_for โปรเจกต์ของคุณควรมีลักษณะดังนี้:
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(RIGHT, 90, DEGREES)
while condition:
wait (5, MSEC)- เช่นเดียวกับหน่วยเซ็นเซอร์ระยะทางโครงการนี้จะใช้เงื่อนไขของตำแหน่งเซ็นเซอร์ตำแหน่งพร้อมตัวดำเนินการเปรียบเทียบเพื่อนำทางไปยังสนามเด็กเล่น Number GridMap ตั้งค่าเงื่อนไขสำหรับลูป while ไปยังคำสั่ง ในแกน X น้อยกว่า -100 ในหน่วยมิลลิเมตร (มม.) โปรเจกต์ของคุณควรมีลักษณะดังนี้:
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(RIGHT, 90, DEGREES)
while location.position (X, MM )-100 < :
wait (5, MSEC)- ลากหรือพิมพ์คำสั่งที่ไม่รอ drive ภายในลูป while โปรเจกต์ของคุณควรมีลักษณะดังนี้:
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(RIGHT, 90, DEGREES)
while location.position (X, MM )-100 < : drivetrain.drive
(FORWARD)
wait (5, MSEC)- โปรดทราบว่ามีการใช้ตัวดำเนินการน้อยกว่าแทนตัวดำเนินการมากกว่าเนื่องจากหุ่นยนต์ VR กำลังขับไปทางขวาจากด้านซ้ายของสนามเด็กเล่น หุ่นยนต์ VR เริ่มต้นที่ค่า X -900 มิลลิเมตร (มม.) เมื่อหุ่นยนต์ VR ขับเคลื่อนไปข้างหน้าค่า X จะเพิ่มขึ้นและหุ่นยนต์จะขับเคลื่อนไปข้างหน้าต่อไปในขณะที่ค่า X น้อยกว่า -100

สำหรับข้อมูลของคุณ
คุณจะต้องเลือกตัวดำเนินการเปรียบเทียบที่จะใช้ในโครงการของคุณขึ้นอยู่กับทิศทางที่คุณต้องการให้หุ่นยนต์ VR เดินทางไปตามแกน X หรือ Y เมื่อหุ่นยนต์ VR เคลื่อนที่ไปทางค่าที่มากขึ้น ตัวดำเนินการน้อยกว่า (<) จะถูกใช้กับลูป ในขณะที่ และเมื่อหุ่นยนต์ VR เคลื่อนที่ไปทางค่าที่เล็กลง ตัวดำเนินการมากกว่า (>) จะถูกใช้กับลูป ในขณะที่
สิ่งนี้สอดคล้องกับการเคลื่อนไหวซ้ายและขวาเมื่อมองไปที่สนามเด็กเล่น หากหุ่นยนต์ VR เคลื่อนที่จากซ้ายไปขวาหรือล่างขึ้นบน (ค่าที่ใหญ่กว่า) จะมีการใช้ตัวดำเนินการน้อยกว่าเพื่อขับเคลื่อนในขณะที่ตำแหน่ง น้อย กว่าค่าเป้าหมาย
หากหุ่นยนต์ VR เคลื่อนที่จากขวาไปซ้ายหรือจากบนลงล่าง (ค่าน้อยกว่า) ผู้ปฏิบัติงานจะถูกใช้เพื่อขับเคลื่อนในขณะที่ตำแหน่ง มาก กว่าค่าเป้าหมาย
การใช้ตัวดำเนินการเปรียบเทียบหุ่นยนต์ VR จะเคลื่อนที่ในขณะที่ค่าที่รายงานโดยเซ็นเซอร์ตำแหน่งมากกว่า>() หรือน้อยกว่า<() ค่าเกณฑ์ ในตัวอย่างนี้หุ่นยนต์ VR จะนำทางไปยังบวก 500 มิลลิเมตร (มม.) บนแกน X หุ่นยนต์ VR จะขับเคลื่อนในขณะที่ ตำแหน่ง บนแกน X อยู่ที่ใดก็ได้ตั้งแต่ 0 ถึงบวก 499 เมื่อเซนเซอร์ตรวจจับตำแหน่งรายงานว่า ตำแหน่ง เป็น 501 หรือสูงกว่าหุ่นยนต์ VR จะหยุดการขับขี่
# เพิ่มรหัสโครงการใน "main"
def main ():
monitor_sensor (location.position) drivetrain.turn_for
(RIGHT, 90, DEGREES)
while location.position (X, MM) < 500:
drivetrain.drive (FORWARD)
wait (5, msec
) drivetrain.stop ()สังเกตว่าค่าที่รายงานโดยเซ็นเซอร์ตำแหน่งไม่ ใช่ 500 มิลลิเมตร (มม.) เช่นเดียวกับเซ็นเซอร์ระยะทางผู้ปฏิบัติงานเปรียบเทียบจะถูกใช้เนื่องจากใช้เวลานานกว่าที่หุ่นยนต์ VR จะทำซ้ำผ่านโครงการและรายงานค่า
- ลากหรือพิมพ์คำสั่ง หยุด นอกลูป ขณะ โปรเจกต์ของคุณควรมีลักษณะดังนี้:
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(RIGHT, 90, DEGREES)
while location.position (X, MM < )-100:
drivetrain.drive (FORWARD)
wait (5, msec
) drivetrain.stop ()- เปิดหน้าต่างสนามเด็กเล่น หากยังไม่ได้เปิด ตรวจสอบให้แน่ใจว่า Number Grid Map Playground เปิดขึ้นและดำเนินโครงการ
- ดู VR Robot ขับไปที่หมายเลข ‘5’ บน Number Grid MapPlayground

- ในโครงการนี้หุ่นยนต์ VR จะขับไปที่หมายเลข ‘5’ บน Number Grid MapPlayground ในขณะที่ ลูปถูกใช้เพื่อให้หุ่นยนต์ VR ยังคงขับเคลื่อนไปข้างหน้าในขณะที่ ค่า X น้อย กว่าค่า X ของพิกัดที่ตัวเลขที่ระบุเปิดอยู่
- เมื่อค่า X มากกว่า -100 โปรเจ็กต์จะย้ายไปยังคำสั่งถัดไปนอกลูป ซึ่งคือคำสั่ง หยุด เนื่องจากค่า X ของตัวเลข ‘5’ คือ -100 หุ่นยนต์ VR จะหยุดการขับขี่เมื่อค่า X มากกว่า -100

สำหรับข้อมูลของคุณ
โปรดสังเกตว่าค่าที่รายงานโดยเซ็นเซอร์ตำแหน่งอาจไม่ ตรง -100 มิลลิเมตร (มม.) เช่นเดียวกับเซ็นเซอร์ระยะทางผู้ปฏิบัติงานเปรียบเทียบจะถูกใช้เนื่องจากใช้เวลานานกว่าที่หุ่นยนต์ VR จะทำซ้ำผ่านโครงการและรายงานค่า
ใน VEXcode VR Python คุณสามารถใช้ตัวดำเนินการเปรียบเทียบมากกว่า หรือเท่ากับ >(=) หรือน้อยกว่า หรือเท่ากับ <(=) ในโครงการของคุณเพื่อให้มีความแม่นยำเพิ่มเติมในการเคลื่อนไหวของคุณ
# เพิ่มรหัสโครงการใน "main"
def main (): drivetrain.turn_for
(RIGHT, 90, DEGREES)
while location.position (X, MM) <= -100:
drivetrain.drive (FORWARD)
wait (5, msec
) drivetrain.stop ()ขึ้นอยู่กับความเร็วของหุ่นยนต์ VR และความรวดเร็วในการวนซ้ำของโครงการผ่านลูป คุณอาจเห็นว่าหุ่นยนต์ VR สามารถหยุดได้ใกล้ค่าเกณฑ์มากขึ้นเมื่อเพิ่มหรือเท่ากับ (<= หรือ >=) เข้าไปในตัวดำเนินการ
เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป