Skip to main content

บทที่ 3: การใช้ข้อความหาก

การนำทางเขาวงกตดิสก์โดยใช้คำสั่ง If 

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

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

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

ถ้าเงื่อนไข: 
	ผ่าน

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

def main ():
    if front_eye.detect (GREEN): drivetrain.turn_for
        (RIGHT, 90, DEGREES
    ) drivetrain.stop ()
  • เริ่มโปรเจกต์ใหม่และเลือก Disk Maze Playground เมื่อได้รับแจ้ง แผ่นการเลือก Disk Maze Playground ใน VEXcode VR
  • ตั้งชื่อมัน ว่าUnit7Lesson3แถบเครื่องมือใน VEXcode VR พร้อมกล่องชื่อโครงการที่เรียกออกมา ชื่อโครงการอ่านหน่วยที่ 7 บทเรียนที่ 3

     

  • เพิ่มความคิดเห็นเพื่ออธิบายความ ตั้งใจสำหรับพฤติกรรมของหุ่นยนต์ VR ในแต่ละส่วนต่อไปนี้ของโครงการ 
def main ():
    # ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา

    # ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย
  • ลากเข้าหรือพิมพ์คำสั่ง ถ้า ใต้ความคิดเห็นแรก
def main ():
    # ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
    ถ้าเงื่อนไข: 
    	ผ่าน

    # ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย
  • ตั้งค่าเงื่อนไขของคำสั่ง if ให้เป็นคำสั่ง front_eye.detect และตั้งค่าพารามิเตอร์เป็น 'สีเขียว'
def main ():
    # ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
	ถ้า front_eye.detect (สีเขียว): 
    	ผ่าน
    	
    # ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย
  • ลากเข้าไปหรือพิมพ์คำสั่ง turn_for ภายในคำสั่ง if เพื่อแทนที่ 'pass' ตั้งค่าพารามิเตอร์เพื่อเลี้ยวขวา 90 องศา ตอนนี้หากเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบ 'สีเขียว' หุ่นยนต์ VR จะเลี้ยวขวา 90 องศา
def main ():
    # ถ้าตาด้านหน้าตรวจพบสีเขียวแล้วเลี้ยวขวา
	ถ้า front_eye.detect (สีเขียว):     	drivetrain.turn_for 
    	(ขวา, 90, องศา)
    	
    # ถ้าตาด้านหน้าตรวจพบสีน้ำเงินแล้วเลี้ยวซ้าย
  • เราจะทำตามขั้นตอนเดียวกันนี้เพื่อเพิ่มข้อมูลเพิ่มเติม หาก ข้อความสำหรับทั้งสามสีใน Disk Maze (สีเขียวสีน้ำเงินและสีแดง) แต่ละสีมีความสัมพันธ์กับพฤติกรรมที่แตกต่างกัน คำสั่งภายในคำสั่ง if จะต้องตรงกับลักษณะการทำงานที่ตั้งใจไว้ เพิ่มคำสั่งต่อไปนี้ไปยังโครงการใต้ความคิดเห็นที่สองเพื่อ ที่ว่าหากเซ็นเซอร์ดวงตาด้านหน้าตรวจพบสี 'น้ำเงิน' หุ่นยนต์ VR จะเลี้ยวซ้าย 90 องศา
	# If front eye detect blue then turn left
	if front_eye.detect (BLUE): 
    	drivetrain.turn_for (LEFT, 90, DEGREES)
  • เมื่อหุ่นยนต์ VR ไปถึงจุดสิ้นสุดของเขาวงกตเซ็นเซอร์ตรวจจับดวงตาด้านหน้าจะตรวจจับสี ‘สีแดง’

    ภาพระยะใกล้ของหุ่นยนต์ VR ที่มาถึงดิสก์สีแดงที่ส่วนท้ายของเขาวงกตดิสก์และหยุดอยู่ตรงหน้ามัน
  • ในการหยุดหุ่นยนต์ VR อีกวิธีหนึ่ง หาก ต้องเพิ่ม ข้อความพร้อมคำแนะนำว่าจะทำอย่างไรหากเซ็นเซอร์ตรวจจับดวงตาด้านหน้าตรวจพบ ‘สีแดง’ เพิ่มความคิดเห็นและคำสั่งต่อไปนี้ลงในโครงการเพื่อให้หุ่นยนต์ VR หยุดการขับขี่หากตรวจพบ 'สีแดง' 
	# If front eye detect red then stop
	if front_eye.detect (สีแดง 
    	):     	drivetrain.stop ()

หากไม่พบสีใดเลย

หุ่นยนต์ VR ยังสามารถตัดสินใจได้หากไม่เห็นสีโดยใช้ค่า ‘ไม่มี’ ตัวอย่างเช่นที่จุดเริ่มต้นของเขาวงกตดิสก์เซนเซอร์ตรวจจับดวงตาด้านหน้า ไม่พบสีใดๆ

มุมมองสนามเด็กเล่น VR ที่เปิดแดชบอร์ดและกล่องสีแดงที่เน้นค่าการตรวจจับดวงตาด้านหน้าของหุ่นยนต์ ค่า 'วัตถุ' ปัจจุบันเป็นเท็จและค่า 'สี' ปัจจุบันไม่มี

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

  • เพิ่มความคิดเห็นและคำสั่งต่อไปนี้ลงในโครงการเพื่อที่ว่าหาก เซ็นเซอร์ตรวจจับดวงตาด้านหน้าไม่พบสีใดๆหุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้า
	# If front eye detect none then drive forward
	if front_eye.detect (ไม่มี): drivetrain.drive     	( 
    	ไปข้างหน้า)
  • ตอนนี้หุ่นยนต์ VR มีคำแนะนำสำหรับแต่ละสีที่ตรวจพบโดยเซ็นเซอร์ตรวจจับดวงตาด้านหน้า
    • หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ 'สีเขียว' – เลี้ยวขวา 90 องศา
    • หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘สีน้ำเงิน' –  เลี้ยวซ้าย 90 องศา
    • หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘สีแดง’ – หยุดขับรถ
    • หากเซ็นเซอร์ตรวจจับดวงตา ด้านหน้าตรวจพบ ‘ไม่มี’ – ขับไปข้างหน้า
  • เปิดหน้าต่างสนามเด็กเล่นหากยังไม่ได้เปิด ตรวจสอบให้แน่ใจว่า Disk Maze Playground เปิดขึ้นและดำเนินโครงการ โครงการทั้งหมดควรมีลักษณะดังนี้: 
def main ():
    # If front eye detects green then turn right
    if front_eye.detect (GREEN): drivetrain.turn_for
        (RIGHT, 90, DEGREES)

    # If front eye detects blue then turn left
    if front_eye.detect (BLUE): drivetrain.turn_for
        (LEFT, 90, DEGREES)

    # If front eye detect red then stop
    if front_eye.detect (RED): 
        drivetrain.stop ()

    # If front eye detect none then drive forward
    if front_eye.detect (NONE): 
        drivetrain.drive (FORWARD)
  • หุ่นยนต์ VR ทำงานตามที่คุณตั้งใจหรือไม่? เหตุใดจึงรู้สึกเช่นนั้น? ในหน้าถัดไปของบทเรียนเราจะเรียนรู้เพิ่มเติมเกี่ยวกับโครงการนี้

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