บทเรียนที่ 2: ขับรถไปยังดิสก์ถัดไป
ขับรถไปที่บลูดิสก์ส
โครงการก่อนหน้านี้มีหุ่นยนต์ VR เลี้ยวขวาเมื่อเซ็นเซอร์ดวงตาด้านหน้าตรวจพบดิสก์สีเขียวซึ่งนำหุ่นยนต์ VR ผ่านขั้นตอนแรกในเขาวงกต ตอนนี้เราจะสร้างโครงการต่อไปเพื่อให้ VR Robot ขับเคลื่อนไปยังดิสก์สี่ตัวแรกบน Disk MazePlayground
เมื่อมองไปที่ตำแหน่งที่หุ่นยนต์ VR หันหน้าไปหลังจากเลี้ยวขวาที่ดิสก์สีเขียวเราจะเห็นว่าเพื่อไปยังดิสก์สีน้ำเงินสามแผ่นถัดไปหุ่นยนต์ VR ควรขับไปข้างหน้าและเลี้ยวซ้ายที่ดิสก์สีน้ำเงินแต่ละแผ่น เราสามารถใช้ตรรกะเดียวกันกับลูป while กับเงื่อนไข ไม่ใช่ เพื่อให้หุ่นยนต์ VR ขับต่อไปในเขาวงกต และเลี้ยวซ้ายเมื่อตรวจพบแผ่นดิสก์สีน้ำเงิน
- เพิ่มความคิดเห็นอื่นใต้ TURN_FOR ในโครงการที่มีอยู่เพื่ออธิบายพฤติกรรมถัดไปของหุ่นยนต์ VR โปรเจกต์ของคุณควรมีลักษณะดังนี้:
def main ():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
forward)
wait (5, msec) drivetrain.turn_for
(RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left- ใต้ความคิดเห็นใหม่ ให้เพิ่มอีก while loop ด้วยเงื่อนไข not. ตั้งเงื่อนไขเป็นคำสั่ง detect และตั้งค่าพารามิเตอร์เป็น "BLUE" เนื่องจากดิสก์ถัดไปที่ VR Robot จะพบคือสีน้ำเงิน
# Drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE):
เดี๋ยวก่อน (5, MSEC)- ภายในลูป while ให้ลากหรือพิมพ์คำสั่ง drive แบบไม่รอ
# Drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait (5, MSEC)- ลากเข้าหรือพิมพ์คำสั่ง turn_for และตั้งค่าพารามิเตอร์ให้เลี้ยวซ้าย 90 องศา
# Drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait (5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)- เรียกใช้โครงการเพื่อดูว่าหุ่นยนต์ VR เคลื่อนที่ผ่าน Disk Maze Playgroundอย่างไร
- สังเกตว่าหุ่นยนต์ VR จะเลี้ยวขวาเมื่อเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบดิสก์สีเขียวและเลี้ยวซ้ายเมื่อเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบดิสก์สีน้ำเงิน
- สร้างโครงการนี้ต่อไปเพื่อขับเคลื่อนหุ่นยนต์ VR ไปยังดิสก์สีน้ำเงินอีกสองตัวบน Disk Maze Playground โดยใช้เซ็นเซอร์ดวงตาด้านหน้า เพิ่มคำสั่งไปยังโครงการนำทางหุ่นยนต์ VR ไปยังดิสก์สองแผ่นถัดไปแล้วหยุด ตอนนี้โปรเจกต์เต็มรูปแบบของคุณควรมีลักษณะดังนี้:
def main ():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
FORWARD)
wait (5, msec) drivetrain.turn_for (
RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive (
FORWARD)
wait (5, msec) drivetrain.turn_for
(LEFT, 90, DEGREES)
# Drive to 3rd disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive (
FORWARD)
wait (5, msec) drivetrain.turn_for
(LEFT, 90, DEGREES)
# Drive to 4th disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait (5, msec) drivetrain.turn_for
(LEFT, 90, DEGREES)การระบุรูปแบบในการเคลื่อนไหวของหุ่นยนต์ VR
เป้าหมายของการประสบความสำเร็จในการนำทางเขาวงกตดิสก์ด้วยเซนเซอร์ตรวจจับดวงตาด้านหน้า คือการสร้างรูปแบบที่สอดคล้องกันที่หุ่นยนต์ VR หันไปทางขวาเมื่อเซนเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบดิสก์สีเขียวและซ้ายเมื่อเซนเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบดิสก์สีน้ำเงิน การระบุรูปแบบเช่นนี้จะช่วยให้คุณลดความซับซ้อนของโปรเจกต์ได้เมื่อโปรเจกต์เติบโตขึ้น

สำหรับข้อมูลของคุณ
สังเกตว่ามีรูปแบบลำดับคำสั่งในโปรเจคด้วยนะคะ มีชุดคำสั่ง (สำหรับดิสก์สีน้ำเงิน) ที่ทำซ้ำสามครั้งในโครงการ ส่วนของรหัสนี้สามารถควบแน่นได้โดยการใช้ for loop โปรเจกต์ที่แสดงที่นี่จะรวม ทั้งสาม ลูปที่เกี่ยวข้องกับดิสก์สีน้ำเงิน ไว้ใน ลูปเดียว
def main ():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
forward)
wait (5, msec) drivetrain.turn_for
(RIGHT, 90, DEGREES)
# Drive to the next 3 disks (blue), turn left
for value in range (3):
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait (5, msec) drivetrain.turn_for
(LEFT, 90, DEGREES)การใช้ for loop สามารถทำให้โปรเจกต์ของคุณง่ายขึ้นและอ่านง่ายขึ้นแต่มีคำสั่งซ้ำๆอยู่ภายในลูปเดียว
- เปิด Disk Maze Playground หากยังไม่ได้เปิดและเรียกใช้โครงการ
-
ดู VR Robot นำทางไปยังดิสก์สี่ตัวบน Disk MazePlayground

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