บทที่ 2: การใช้ตัวดำเนินการเปรียบเทียบ
ในบทเรียนนี้คุณจะเอนเอียงเกี่ยวกับตัวดำเนินการเปรียบเทียบและใช้ในโครงการที่มีข้อมูลจากเซ็นเซอร์ระยะทาง จากนั้นคุณจะสร้างโครงการที่นำทางหุ่นยนต์ VR ไปยังตัวอักษร ‘A’ โดยใช้เซ็นเซอร์ระยะทางที่มี ขณะ วนซ้ำและตัวดำเนินการมากกว่า>() ในการประลองมินิคุณจะใช้ทักษะเหล่านี้เพื่อนำทางจากจุดเริ่มต้นของเขาวงกตกำแพงไปยังหมายเลข '1'

ผลการเรียนรู้
- ระบุว่ามากกว่า>() น้อยกว่า<() และเท่ากับ(==) เป็นตัวดำเนินการเปรียบเทียบที่เปรียบเทียบสองค่าหรือที่เรียกว่าตัวดำเนินการ
- ระบุว่า โอเปอเรเตอร์มากกว่า>() เปรียบเทียบสองค่าและรายงาน TRUE หากค่าซ้ายมากกว่าค่าขวา
- ระบุว่าตัวดำเนินการน้อยกว่า<() เปรียบเทียบสองค่าและ รายงาน TRUE หาก ค่าซ้ายน้อยกว่าค่าขวา
- ระบุว่าผู้ปฏิบัติงานมากกว่า >() หรือน้อยกว่า <() รายงาน ค่าจริง หรือเท็จเมื่อใช้เป็นเงื่อนไข ในการ วนซ้ำ
- อธิบายวิธีสร้างโครงการที่มี VR Robot ขับเคลื่อนไปข้างหน้าจนกว่าค่าของเซ็นเซอร์ระยะทางจะน้อยกว่าจำนวนที่กำหนด
ตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการน้อยกว่า<() มากกว่า>() และเท่ากับ(==) เปรียบเทียบสองค่าหรือที่เรียกว่าตัวดำเนินการ ค่าทางด้านซ้ายของโอเปอเรเตอร์คือโอเปอเรเตอร์ตัวแรกและค่าทางด้านขวาคือโอเปอเรเตอร์ตัวที่สอง ผู้ปฏิบัติงานรายงานค่าบูลีนและส่งกลับค่าที่ แท้จริงเมื่อการเปรียบเทียบถูกต้องและผิดพลาด เมื่อการเปรียบเทียบ ไม่ ถูกต้อง
- ในตัวอย่างเหล่านี้โดยใช้ตัวดำเนินการน้อยกว่า<() เมื่อข้อความถูกต้องเป็นตัวเลขมันจะรายงาน True

- ในทำนองเดียวกันในตัวอย่างเหล่านี้โดยใช้ตัวดำเนินการที่มากกว่า>() ข้อความที่ถูกต้องตามตัวเลขจะรายงาน True

- เท่ากับ(==) โอเปอเรเตอร์รายงาน True เมื่อค่าทั้งสองเหมือนกันทุกประการและ False เมื่อไม่เหมือนกัน
- โปรดทราบว่าเครื่องหมายเท่ากับสองเท่าหมายถึง "เท่ากับ" และเปรียบเทียบค่าทั้งสอง เครื่องหมายเท่ากับหนึ่งตัวคือตัวดำเนินการกำหนดที่กำหนดค่าให้กับตัวแปร
ตัวดำเนินการเปรียบเทียบสามารถเปรียบเทียบทศนิยมจำนวนเต็มหรือคำสั่งการรายงานตัวเลขได้
การใช้ตัวดำเนินการเปรียบเทียบกับข้อมูลเซ็นเซอร์ระยะทาง
ผู้ปฏิบัติงานเปรียบเทียบมีประโยชน์อย่างยิ่งเมื่อคุณใช้ข้อมูลตัวเลขจากเซ็นเซอร์เช่นเซ็นเซอร์ระยะทางเพื่อให้หุ่นยนต์ VR ตัดสินใจ ในหน่วยก่อนหน้านี้ข้อมูลจากเซ็นเซอร์กันชนถูกใช้เพื่อทำให้หุ่นยนต์ VR หมุนเมื่อกดเซ็นเซอร์กันชน อย่างไรก็ตามด้วยตัวดำเนินการเปรียบเทียบเราสามารถใช้ข้อมูลจากเซ็นเซอร์ระยะทางเพื่อทำให้หุ่นยนต์ VR หมุนในตำแหน่งที่แม่นยำยิ่งขึ้น สิ่งนี้มีประโยชน์ในการหลีกเลี่ยงการขับรถเข้าไปในกำแพงหรือทำให้หุ่นยนต์ VR นำทางไปยังสถานที่เฉพาะบนสนามเด็กเล่น
ข้อมูลจากเซ็นเซอร์ระยะทางสามารถถูกใช้เป็นหนึ่งในค่าในตัวดำเนินการเปรียบเทียบ
front_distance.get_distance (MM) > 50ตัวอย่างเช่น หากเราต้องการให้หุ่นยนต์ VR ขับไปหาวัตถุ เช่น กำแพง จากนั้นหยุดเมื่อเข้าใกล้วัตถุแล้ว เราสามารถทำได้โดยใช้ตัวดำเนินการเปรียบเทียบและฟังก์ชัน get _distance โดยพื้นฐานแล้วเราขอให้หุ่นยนต์ VR ขับรถในขณะที่ระยะห่างระหว่างหุ่นยนต์กับวัตถุมากกว่าค่าเกณฑ์เช่น 50 มิลลิเมตร (มม.)
ในขณะที่เซ็นเซอร์ระยะทางรายงานว่า ไกล กว่า 50 มิลลิเมตร (มม.) หรือค่า มากกว่า >() 50 หุ่นยนต์ VR สามารถขับได้อย่างอิสระ เมื่อเซ็นเซอร์ระยะทางรายงานว่า ใกล้ กว่า 50 มิลลิเมตร (มม.) หรือค่า ไม่ มากกว่า>() 50 หุ่นยนต์ VR จำเป็นต้องหยุดหรือหมุนก่อนที่จะชนกับผนัง
สำหรับข้อมูลของคุณ
การเลือกตัวดำเนินการเปรียบเทียบที่จะใช้อาจเป็นทางเลือกที่มีสไตล์ มีการใช้ตัวดำเนินการมากกว่า>() ในตัวอย่างข้างต้นเพื่อให้โครงการมีความชัดเจนและอ่านได้ง่ายที่สุด ในขณะที่หุ่นยนต์ VR อยู่ที่ระยะทางมากกว่า 50 มิลลิเมตรให้ขับไปข้างหน้า คุณสามารถบรรลุเป้าหมายเดียวกันได้โดยย้อนกลับลำดับของค่าในตัวดำเนินการและโดย ใช้ตัวดำเนินการที่น้อยกว่า<()
ในขณะ > ที่ 50 front_distance.get_distance (MM):ในที่นี้หุ่นยนต์ VR จะขับเคลื่อนในขณะที่ 50 มิลลิเมตรมากกว่าค่าที่รายงานโดยเซ็นเซอร์ระยะทาง หุ่นยนต์ VR จะทำงานในลักษณะเดียวกันอย่างไรก็ตามโครงการมีความชัดเจนและอ่านได้น้อยกว่าเล็กน้อย
ขึ้นอยู่กับข้อมูลเซ็นเซอร์ที่คุณใช้ตัวดำเนินการเท่ากับ(==) อาจไม่ทำให้หุ่นยนต์ VR ทำงานได้ตามที่คุณตั้งใจไว้ ตัวอย่างเช่นหากเป้าหมายคือให้ VR Robot หยุด 50 มิลลิเมตรจากวัตถุคุณอาจคิดว่าใช้ตัวดำเนินการเท่ากับ(==)
while front_distance.get_distance (MM) == 50:อย่างไรก็ตาม ใน Wall Maze ตัวอย่างเช่น การใช้ตัวดำเนินการเท่ากับ (==) กับเซ็นเซอร์วัดระยะทางจะต้องใช้ค่าการอ่านที่แม่นยำจากเซ็นเซอร์ โดยต้องเป็น 50 มิลลิเมตรพอดี ซึ่งความเร็วของหุ่นยนต์ VR จะทำให้การบรรลุระดับความแม่นยำนั้นในแบบเรียลไทม์เป็นไปไม่ได้เลย ดังนั้นหุ่นยนต์ VR น่าจะยังคงขับรถผ่านเกณฑ์เพราะไม่ว่าจะเป็นการรายงานค่า 100 มิลลิเมตรหรือ 25 มิลลิเมตรทั้งสองค่านั้นจะไม่ เท่ากับ 50 มิลลิเมตรดังนั้นผู้ปฏิบัติงานจึงไม่เคยรายงานว่าเป็น True
ผู้ดำเนินการเปรียบเทียบและปัญหาเขาวงกตกำแพง
สามารถใช้ลูป ในขณะที่ กับตัวดำเนินการเปรียบเทียบและเซ็นเซอร์ระยะห่าง เพื่อให้หุ่นยนต์ VR ตรวจสอบข้อมูลเซ็นเซอร์และประเมินการเปรียบเทียบอย่างต่อเนื่อง สิ่งนี้สามารถทำให้หุ่นยนต์ VR สามารถทำพฤติกรรมได้ ในขณะ ที่ค่าสูงกว่าหรือต่ำกว่าเกณฑ์ที่กำหนด ใน Wall Maze ผลลัพธ์ที่ต้องการคือให้ VR Robot ขับเคลื่อนไปข้างหน้าใน ขณะ ที่เซ็นเซอร์ระยะทางอยู่ห่างจากผนัง มากกว่า 50 มิลลิเมตร (มม.) จากนั้นควรหยุดหรือหันไปดำเนินการต่อผ่านเขาวงกต
def main ():
while front_distance.get_distance (MM) > 50:
drivetrain.drive (FORWARD)
wait (5, msec
) drivetrain.stop ()ในตัวอย่างคลิปวิดีโอนี้ ลูป while ในโปรเจ็กต์ที่แสดงทางด้านซ้ายจะทำให้ VR Robot ขับเคลื่อนไปข้างหน้าจากตำแหน่งเริ่มต้น ตราบใดที่ตรงตามเงื่อนไข และระยะห่างระหว่าง VR Robot กับวัตถุที่ใกล้ที่สุด (ผนังด้านแรกฝั่งตรงข้าม) มีรายงานว่ามากกว่า 50 มิลลิเมตร (มม.) จากนั้นหุ่นยนต์จะหยุดเมื่อเข้าใกล้กำแพงแรกและระยะทางที่รายงานน้อยกว่า 50 มม.
ภาพนี้อธิบายขั้นตอนของโครงการข้างต้น:
- ในขณะที่เซ็นเซอร์ระยะทางอยู่ห่างจากผนังมากกว่า 50 มิลลิเมตร (มม.) ผู้ปฏิบัติงานจะรายงาน True และอยู่ใน ลูปขณะ ที่
- เมื่ออยู่ห่างจากผนังน้อยกว่า 50 มิลลิเมตร (มม.) ผู้ปฏิบัติงานจะรายงานเป็นเท็จ และออกจากลูป ในขณะที่

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