Skip to main content

บทที่ 2: การใช้หลายขณะวนซ้ำ

เดินต่อผ่านเขาวงกตกำแพง

ตอนนี้เราได้ใช้ลูป ขณะที่ กับเซ็นเซอร์กันชนเพื่อทำให้หุ่นยนต์ VR หยุดขับรถเมื่อถึงกำแพง อย่างไรก็ตามในการดำเนินการต่อผ่าน Wall Maze หุ่นยนต์ VR จะต้อง หมุน เมื่อถึงกำแพงเพื่อให้สามารถเปลี่ยนทิศทางและดำเนินการต่อได้ 

  • ในการเริ่มต้น ให้ลบคำสั่ง stop ออกจากลูป while , และแทนที่ด้วยคำสั่ง turn_for  ตั้งค่าพารามิเตอร์ให้หุ่นยนต์ VR เลี้ยวซ้ายเป็นเวลา 90 องศาตอนนี้โปรเจกต์ของ คุณควรมีลักษณะดังนี้:

    def main ():
    	while not left_bumper.pressed (): drivetrain.drive (
    		FORWARD)
    		wait (5, msec) 	drivetrain.turn_for
    	(LEFT, 90, DEGREES)
  • เปิด Wall Maze Playground หากยังไม่ได้เปิดและดำเนินโครงการ
  • ดูการขับเคลื่อน VR Robot จากจุดเริ่มต้นของ Wall Maze หยุดเมื่อมีการกด Bumper Sensor ที่ผนังและเลี้ยวซ้าย 90 องศา

    มุมมองจากบนลงล่างของ Wall Maze Playground หุ่นยนต์ VR เคลื่อนที่ไปข้างหน้าจากลูกศรเริ่มต้นสีเขียวที่ด้านล่างของสนามเด็กเล่นจนกระทั่งชนกำแพงด้านหน้า ตอนนี้มันหันหน้าไปทางซ้าย 90 องศาดังนั้นมันจึงหันหน้าไปทางผนังทางซ้ายของมัน

หลายลูปและปัญหากำแพงเขาวงกต

ตอนนี้หุ่นยนต์ VR ได้มาถึงกำแพงแล้วและหมุนเพื่อให้มันสามารถขับผ่านเขาวงกตต่อไปได้ ข้อมูลเซ็นเซอร์กันชนถูกใช้ในลักษณะเดียวกับวงจร ขณะ สำหรับขั้นตอนแรกในเขาวงกต โครงสร้างเดียวกันสามารถใช้ได้หลายครั้งในโปรเจ็กต์เดียวกันเพื่อให้หุ่นยนต์ VR สามารถเคลื่อนที่ผ่านเขาวงกตต่อไปได้ วงจร ขณะ หลายวงจรสามารถใช้ได้ในโปรเจ็กต์เดียวกัน

  • เริ่มจากตำแหน่งปัจจุบันของหุ่นยนต์ VR ขั้นตอนต่อไปในการแก้ Wall Maze คือการขับไปข้างหน้าไปยังกำแพงถัดไปและเลี้ยวขวา 90 องศา คำสั่งที่มีอยู่สามารถคัดลอกและวางด้านล่างคำสั่งก่อนหน้า ในขณะที่ วน ซ้ำและ คำสั่ง TURN_FOR โปรดจำไว้ว่าต้องคำนึงถึงการเยื้อง และเปลี่ยนพารามิเตอร์คำสั่งใหม่ turn_for เป็นเลี้ยวขวา 90 องศา ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:

    def main ():
    	while not left_bumper.pressed (): drivetrain.drive (FORWARD
    		)
    		wait (		5, msec) drivetrain.turn_for 		 	(
    		
    	left, 90, DEGREES)
    	
    	while not left_bumper.pressed (): drivetrain.drive (
    		forward)
    		wait (5, msec) 		 	drivetrain.turn_for
    		
    	(RIGHT, 90, DEGREES)
  • รีเซ็ต Wall Maze Playground และรันโครงการอีกครั้ง
  • ดูหุ่นยนต์ VR ขับรถจากจุดเริ่มต้นของ Wall Maze หยุดเมื่อเซ็นเซอร์กันชนถูกกดโดยผนังเลี้ยวซ้าย 90 องศาขับไปข้างหน้าจนกว่าเซ็นเซอร์กันชนจะถูกกดอีกครั้งโดยผนังจากนั้นเลี้ยวขวา 90 องศาและหยุด

    มุมมองจากบนลงล่างของ Wall Maze Playground หุ่นยนต์ VR ได้เคลื่อนที่ไปข้างหน้าจากลูกศรเริ่มต้นสีเขียวจนกระทั่งมันเคลื่อนที่ไปข้างหน้าเลี้ยวซ้ายและเคลื่อนที่ไปข้างหน้าอีกครั้งจนกว่ามันจะชนกำแพงถัดไป ตอนนี้มันหันหน้าไปทางขวา 90 องศาหลังจากการเคลื่อนไหวซึ่งหันไปทางผนังด้านบน

มินิชาเลนจ์

สำหรับความท้าทายเล็กๆ น้อยๆ นี้ ให้สร้างโปรเจ็กต์โดยให้หุ่นยนต์ VR ขับจากจุดเริ่มต้นไปยังตัวอักษร 'A' บนเขาวงกตบนผนัง สนามเด็กเล่น โดยใช้ลูป หลายอันในขณะที่  และเซ็นเซอร์กันชน!

มุมมองจากบนลงล่างของสนามเด็กเล่น Wall Maze กับหุ่นยนต์ VR ในตำแหน่งเริ่มต้นที่ด้านล่างตรงกลางของสนามเด็กเล่น ตัวอักษร A อยู่ทางซ้ายของหุ่นยนต์โดยตรงคั่นด้วยกำแพงสั้นๆ

ทำตามขั้นตอนต่อไปนี้เพื่อทำมินิชาเลนจ์:

  • ดูวิดีโอโซลูชันด้านล่างเพื่อดูว่าหุ่นยนต์ VR ควรขับรถอย่างไรเพื่อทำมินิชาเลนจ์ ในคลิปวิดีโอนี้หุ่นยนต์ VR จะเริ่มต้นที่จุดเริ่มต้นที่กึ่งกลางด้านล่างของสนามเด็กเล่น มันขับไปข้างหน้าจนกว่าจะมีการกดเซ็นเซอร์กันชนโดยผนังด้านตรงข้ามจากนั้นเลี้ยวซ้ายและขับไปยังผนังถัดไปที่อยู่ด้านหน้า เมื่อกดกันชนที่ผนังนั้นหุ่นยนต์จะเลี้ยวซ้ายอีกครั้งและขับไปข้างหน้าจนกว่าจะถึงผนังสุดท้ายและตัวอักษร A

  • สร้างโครงการโดยเพิ่มหรือลบคำสั่งที่จำเป็น ใน โครงการ Unit4Lesson2
  • เริ่มโครงการเพื่อทดสอบ
  • หากโปรเจกต์ไม่สำเร็จให้แก้ไขแล้วลองอีกครั้ง ดำเนินการแก้ไขและเรียกใช้โครงการต่อไปจนกว่าหุ่นยนต์ VR จะขับเคลื่อนจากจุดเริ่มต้นไปยังตัวอักษร ‘A‘ ได้สำเร็จ
  • บันทึกโครงการเมื่อ VR Robot ประสบความสำเร็จในการขับเคลื่อนจากจุดเริ่มต้นไปยังตัวอักษร ‘A’

ขอแสดงความยินดี! คุณเอาชนะมินิชาเลนจ์!

คำถาม

โปรดเลือกลิงก์ด้านล่างเพื่อเข้าถึงแบบทดสอบบทเรียน

Google Doc /.docx /.pdf