Skip to main content

บทเรียนที่ 2: การใช้เซนเซอร์ตรวจจับดวงตาด้านหน้ากับขณะลูป

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

มุมมองด้านข้างของหุ่นยนต์ VR บน Disk Maze Playground พร้อมลูกศรสีดำในพื้นหลังที่ระบุเส้นทางที่หุ่นยนต์เดินทางเพื่อย้ายจากดิสก์ไปยังดิสก์ หุ่นยนต์อยู่ที่ส่วนท้ายของเขาวงกตด้านหน้าของดิสก์สีแดง

ผลการเรียนรู้

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

การนำทางไปยังดิสก์สี่ตัวแรก

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

ในการเริ่มต้นเรามาดูเส้นทางที่หุ่นยนต์ VR จะเดินทางไปยังส่วนแรกของเขาวงกตดิสก์ มุมมองด้านบนของสนามเด็กเล่นดิสก์เขาวงกต หุ่นยนต์อยู่ในตำแหน่งเริ่มต้น ลูกศรระบุเส้นทางที่หุ่นยนต์ Vr จะใช้แสดงไดรฟ์ไปข้างหน้าไปยังดิสก์สีเขียวที่หนึ่งเลี้ยวขวาขับไปยังดิสก์สีน้ำเงินเลี้ยวซ้ายขับไปยังดิสก์สีน้ำเงินที่สองเลี้ยวซ้ายและหยุดที่ดิสก์สีน้ำเงินที่สาม

สำหรับข้อมูลของคุณ

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

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

ใช้การ ลูปขณะ ที่มีข้อมูลเซ็นเซอร์ตา

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

 มุมมองด้านบนของหุ่นยนต์ VR บน Disk Maze Playground ด้วยลูกศรสีดำที่ระบุว่าหุ่นยนต์จะขับไปยังดิสก์สีเขียวโดยตรงจากตำแหน่งเริ่มต้นแล้วเลี้ยวขวา

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

ตั้งชื่อและบันทึกโครงการ

มาเริ่มสร้างโปรเจ็กต์ โดยใช้คำสั่ง while loop เพื่อสั่งให้ VR Robot หมุนเมื่อ Front Eye Sensor ตรวจพบดิสก์สีแรก (สีเขียว) บน Disk Maze Playground

  • เริ่มโปรเจกต์ใหม่และเลือก Disk Maze Playground เมื่อได้รับแจ้ง แผ่นการเลือก Disk Maze Playground จาก VEXcode VR
  • ตั้งชื่อ โครงการ Unit7Lesson2แถบเครื่องมือ VEXcode VR พร้อมกล่องชื่อโปรเจกต์ที่เรียกออกมา ชื่อโครงการอ่านหน่วยที่ 7 บทเรียนที่ 2

     

  • ในการเริ่มต้นให้เพิ่มความคิดเห็นเพื่ออธิบายพฤติกรรมของหุ่นยนต์ VR โครงการ นี้จะใช้ความคิดเห็นเพื่อเตือนผู้ใช้ว่าเจตนาสำหรับพฤติกรรมของหุ่นยนต์ VR คืออะไรในส่วนต่อไปนี้ของโครงการ โปรดจำไว้ว่าความคิดเห็นใน VEXcode VR Python เริ่มต้นด้วยสัญลักษณ์ # (ปอนด์) 
def main ():
    # Drive to 1st disk (green), turn right
  • หุ่นยนต์ VR จะต้องขับไปยังดิสก์แรกบน Disk MazePlayground ลากหรือพิมพ์ลูปขณะ  ที่ ไม่มี เงื่อนไขในพื้นที่ทำงาน อย่าลืมรวมคำสั่ง wait ไว้เป็นส่วนหนึ่งของลูป while  เพื่อให้แน่ใจว่าหุ่นยนต์ VR ดำเนินการโครงการได้อย่างถูกต้อง
def main ():
    # Drive to 1st disk (green), turn right
    while not condition:
        wait (5, MSEC)
  • ตั้งค่าเงื่อนไขของลูปให้เป็นคำสั่ง ตรวจจับ ของเซ็นเซอร์ตาด้านหน้า และตั้งค่าพารามิเตอร์เป็น "สีเขียว"
def main ():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect (GREEN):
        wait (5, MSEC)
  • ภายในลูป while ให้ลากหรือพิมพ์คำสั่ง drive แบบไม่รอ เพื่อให้โปรเจ็กต์ของคุณมีลักษณะดังนี้:
def main ():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect (GREEN): drivetrain.drive
        (FORWARD)
        wait (5, MSEC)
  • นอกวงจร while ให้ลากหรือพิมพ์คำสั่ง turn_for  เพื่อสั่งให้ VR Robot เลี้ยวขวา 90 องศาเมื่อตรวจพบดิสก์สีเขียว โปรเจกต์ของคุณควรมีลักษณะดังนี้:
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)
  • เปิดหน้าต่างสนามเด็กเล่น หากยังไม่ได้เปิด ตรวจสอบให้แน่ใจว่า Disk Maze Playground เปิดอยู่และรันโครงการ
  • ดูหุ่นยนต์ VR ขับไปข้างหน้าไปยังดิสก์สีเขียวอันแรกแล้วเลี้ยวขวา

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

เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป