Lego ev3 เคลื่อนตัวไปตามเส้น เริ่มต้นในวิทยาศาสตร์ เซ็นเซอร์สี - โหมด "ความสว่างของแสงโดยรอบ"
มาดูอัลกอริธึมที่ง่ายที่สุดในการเคลื่อนที่ตามเส้นสีดำบนเซ็นเซอร์สีเดียวบน EV3
อัลกอริธึมนี้ช้าที่สุด แต่เสถียรที่สุด
หุ่นยนต์จะไม่เคลื่อนที่ตามเส้นสีดำอย่างเคร่งครัด แต่เคลื่อนที่ไปตามขอบ เลี้ยวซ้ายและขวา และค่อยๆ เคลื่อนที่ไปข้างหน้า
อัลกอริธึมนั้นง่ายมาก: หากเซ็นเซอร์เห็นสีดำ แสดงว่าหุ่นยนต์หมุนไปในทิศทางเดียว หากเป็นสีขาวก็จะหันไปอีกทิศทางหนึ่ง
การใช้งานในสภาพแวดล้อม Lego Mindstorms EV3
ในบล็อกการเคลื่อนไหวทั้งสอง ให้เลือกโหมด "เปิดใช้งาน" เราตั้งสวิตช์ไปที่เซ็นเซอร์สี - การวัด - สี ด้านล่างอย่าลืมเปลี่ยน "ไม่มีสี" เป็นสีขาวนะคะ นอกจากนี้คุณต้องระบุพอร์ตทั้งหมดให้ถูกต้อง
อย่าลืมเพิ่มวงจร หุ่นยนต์จะไม่ไปไหนถ้าไม่มีมัน
ตรวจสอบออก เพื่อผลลัพธ์ที่ดีที่สุด ให้ลองเปลี่ยนการตั้งค่าพวงมาลัยและพลังงาน
การเคลื่อนไหวด้วยเซ็นเซอร์สองตัว:
คุณรู้อัลกอริทึมในการเคลื่อนหุ่นยนต์ไปตามเส้นสีดำโดยใช้เซ็นเซอร์ตัวเดียวแล้ว วันนี้เราจะมาดูการเคลื่อนที่ตามแนวเส้นโดยใช้เซ็นเซอร์สีสองตัว
ต้องติดตั้งเซ็นเซอร์เพื่อให้เส้นสีดำพาดผ่านระหว่างกัน
อัลกอริทึมจะเป็นดังนี้:
หากเซ็นเซอร์ทั้งสองเห็นเป็นสีขาว เราก็จะเดินหน้าต่อไป
หากเซ็นเซอร์ตัวใดตัวหนึ่งเห็นสีขาวและอีกตัวเป็นสีดำ ให้หันไปทางสีดำ
หากเซ็นเซอร์ทั้งสองเห็นเป็นสีดำ แสดงว่าเราอยู่ที่สี่แยก (เช่น เราจะหยุด)
ในการใช้อัลกอริธึม เราจะต้องตรวจสอบการอ่านของเซ็นเซอร์ทั้งสอง และหลังจากนั้นก็ตั้งค่าหุ่นยนต์ให้เคลื่อนที่เท่านั้น ในการดำเนินการนี้ เราจะใช้สวิตช์ที่ซ้อนกันภายในสวิตช์อื่น ดังนั้น เราจะสำรวจเซ็นเซอร์ตัวแรกก่อน จากนั้นไม่ว่าการอ่านค่าของเซ็นเซอร์ตัวแรกจะเป็นอย่างไร เราจะสำรวจเซ็นเซอร์ตัวที่สอง หลังจากนั้นเราจะตั้งค่าการดำเนินการ
มาเชื่อมต่อเซ็นเซอร์ด้านซ้ายเข้ากับพอร์ตหมายเลข 1 และเซ็นเซอร์ด้านขวากับพอร์ตหมายเลข 4
โปรแกรมที่มีความคิดเห็น:
อย่าลืมว่าเราสตาร์ทมอเตอร์ในโหมด "เปิด" เพื่อให้มอเตอร์ทำงานได้นานเท่าที่จำเป็นโดยขึ้นอยู่กับการอ่านค่าของเซ็นเซอร์ นอกจากนี้ผู้คนมักลืมเกี่ยวกับความจำเป็นในการวนซ้ำ - หากไม่มีโปรแกรมก็จะสิ้นสุดทันที
http://studrobots.ru/
โปรแกรมเดียวกันสำหรับรุ่น NXT:
ศึกษาโปรแกรมการเคลื่อนไหว ตั้งโปรแกรมหุ่นยนต์ ส่งวิดีโอการทดสอบโมเดล
ข้อความของงานถูกโพสต์โดยไม่มีรูปภาพและสูตร
ผลงานเวอร์ชันเต็มมีอยู่ในแท็บ "ไฟล์งาน" ในรูปแบบ PDF
เลโก้มายด์สตอร์ม EV3
ขั้นตอนการเตรียมการ
การสร้างโปรแกรมและการสอบเทียบ
บทสรุป
วรรณกรรม
1. บทนำ.
วิทยาการหุ่นยนต์เป็นหนึ่งในพื้นที่ที่สำคัญที่สุดของความก้าวหน้าทางวิทยาศาสตร์และเทคโนโลยี ซึ่งปัญหาของกลไกและเทคโนโลยีใหม่ ๆ เข้ามาติดต่อกับปัญหาของปัญญาประดิษฐ์
ในช่วงไม่กี่ปีที่ผ่านมา ความก้าวหน้าด้านหุ่นยนต์และระบบอัตโนมัติได้เปลี่ยนแปลงทั้งด้านส่วนตัวและธุรกิจในชีวิตของเรา หุ่นยนต์ถูกนำมาใช้กันอย่างแพร่หลายในการขนส่ง การสำรวจโลกและอวกาศ การผ่าตัด อุตสาหกรรมการทหาร การวิจัยในห้องปฏิบัติการ การรักษาความปลอดภัย และการผลิตจำนวนมากของสินค้าอุตสาหกรรมและสินค้าอุปโภคบริโภค อุปกรณ์จำนวนมากที่ตัดสินใจโดยอาศัยข้อมูลที่ได้รับจากเซ็นเซอร์ก็ถือได้ว่าเป็นหุ่นยนต์เช่นกัน เช่น ลิฟต์ ซึ่งหากปราศจากสิ่งนี้แล้ว ชีวิตของเราก็คิดไม่ถึงอยู่แล้ว
นักออกแบบ Mindstorms EV3 ขอเชิญเราเข้าสู่โลกอันน่าทึ่งของหุ่นยนต์ และดำดิ่งสู่สภาพแวดล้อมที่ซับซ้อนของเทคโนโลยีสารสนเทศ
เป้าหมาย: เรียนรู้การเขียนโปรแกรมหุ่นยนต์ให้เคลื่อนที่เป็นเส้นตรง
ทำความคุ้นเคยกับนักออกแบบ Mindstorms EV3 และสภาพแวดล้อมการเขียนโปรแกรม
เขียนโปรแกรมให้หุ่นยนต์เคลื่อนที่เป็นเส้นตรงที่ 30 ซม. 1 ม. 30 ซม. และ 2 ม. 17 ซม.
ตัวสร้าง Mindstorms EV3
ชิ้นส่วนก่อสร้าง - 601 ชิ้น, เซอร์โวมอเตอร์ - 3 ชิ้น, เซ็นเซอร์สี, เซ็นเซอร์ตรวจจับความเคลื่อนไหวแบบสัมผัส, เซ็นเซอร์อินฟราเรด และเซ็นเซอร์สัมผัส หน่วยไมโครโปรเซสเซอร์ EV3 เป็นสมองของตัวสร้าง LEGO Mindstorms
เซอร์โวมอเตอร์ขนาดใหญ่มีหน้าที่รับผิดชอบในการเคลื่อนที่ของหุ่นยนต์ ซึ่งเชื่อมต่อกับไมโครคอมพิวเตอร์ EV3 และทำให้หุ่นยนต์เคลื่อนที่: ไปข้างหน้าและข้างหลัง หมุนและขับเคลื่อนไปตามเส้นทางที่กำหนด เซอร์โวมอเตอร์นี้มีเซ็นเซอร์การหมุนในตัว ซึ่งช่วยให้คุณควบคุมการเคลื่อนไหวและความเร็วของหุ่นยนต์ได้อย่างแม่นยำมาก
คุณสามารถทำให้หุ่นยนต์ดำเนินการโดยใช้โปรแกรมคอมพิวเตอร์ EV3 โปรแกรมประกอบด้วยบล็อกควบคุมต่างๆ เราจะทำงานกับบล็อกการเคลื่อนไหว
บล็อกการเคลื่อนที่จะควบคุมเครื่องยนต์ของหุ่นยนต์ เปิด ปิด และทำให้มันทำงานตามงานที่ได้รับมอบหมาย คุณสามารถตั้งโปรแกรมการเคลื่อนไหวตามจำนวนรอบหรือองศาที่กำหนดได้
ขั้นตอนการเตรียมการ
การสร้างสนามเทคนิค
ลองใช้เครื่องหมายกับพื้นที่ทำงานของหุ่นยนต์โดยใช้เทปพันสายไฟและไม้บรรทัดเพื่อสร้างเส้นสามเส้นยาว 30 ซม. - เส้นสีเขียว 1 ม. 15 ซม. - สีแดง และ 2 ม. 17 ซม. - เส้นสีดำ
การคำนวณที่จำเป็น:
เส้นผ่านศูนย์กลางของล้อหุ่นยนต์คือ 5 ซม. 7 มม. = 5.7 ซม.
การหมุนวงล้อหุ่นยนต์หนึ่งครั้งเท่ากับความยาวของวงกลมที่มีเส้นผ่านศูนย์กลาง 5.7 ซม. เราค้นหาเส้นรอบวงโดยใช้สูตร
โดยที่ r คือรัศมีของล้อ d คือเส้นผ่านศูนย์กลาง π = 3.14
ล = 5,7 * 3,14 = 17,898 = 17,9.
เหล่านั้น. สำหรับการหมุนวงล้อหนึ่งครั้ง หุ่นยนต์จะเคลื่อนที่ได้ 17.9 ซม.
ลองคำนวณจำนวนรอบที่ต้องใช้ในการขับเคลื่อน:
ยังไม่มีข้อความ = 30: 17.9 = 1.68
1 ม. 30 ซม. = 130 ซม
ยังไม่มีข้อความ = 130: 17.9 = 7.26
2 ม. 17 ซม. = 217 ซม.
ยังไม่มีข้อความ = 217: 17.9 = 12.12
การสร้างและสอบเทียบโปรแกรม
เราจะสร้างโปรแกรมโดยใช้อัลกอริทึมต่อไปนี้:
อัลกอริทึม:
เลือกบล็อกการเคลื่อนไหวในโปรแกรม Mindstorms EV3
เปิดมอเตอร์ทั้งสองตัวในทิศทางที่กำหนด
รอให้การอ่านเซ็นเซอร์การหมุนของมอเตอร์ตัวใดตัวหนึ่งเปลี่ยนเป็นค่าที่ระบุ
ปิดมอเตอร์
เราโหลดโปรแกรมที่เสร็จสิ้นแล้วลงในหน่วยควบคุมหุ่นยนต์ เราวางหุ่นยนต์บนสนามแล้วกดปุ่มเริ่มต้น EV3 ขับข้ามสนามและหยุดที่ท้ายเส้นที่กำหนด แต่เพื่อให้ได้ผลลัพธ์ที่แม่นยำ คุณต้องทำการปรับเทียบ เนื่องจากการเคลื่อนไหวได้รับอิทธิพลจากปัจจัยภายนอก
สนามนี้ติดตั้งอยู่บนโต๊ะนักเรียน ดังนั้นจึงอาจเกิดการโก่งตัวของพื้นผิวได้เล็กน้อย
พื้นผิวของสนามเรียบ ดังนั้นจึงเป็นไปได้ที่ล้อของหุ่นยนต์จะยึดเกาะกับสนามได้ไม่ดี
ในการคำนวณจำนวนรอบ เราต้องปัดเศษตัวเลข และด้วยเหตุนี้ เมื่อเปลี่ยนหนึ่งในร้อยของการปฏิวัติ เราจึงได้ผลลัพธ์ที่ต้องการ
5. สรุป.
ความสามารถในการตั้งโปรแกรมหุ่นยนต์ให้เคลื่อนที่เป็นเส้นตรงจะเป็นประโยชน์สำหรับการสร้างโปรแกรมที่ซับซ้อนมากขึ้น ตามกฎแล้ว ข้อกำหนดทางเทคนิคสำหรับการแข่งขันหุ่นยนต์จะระบุทุกมิติของการเคลื่อนไหว สิ่งเหล่านี้จำเป็นเพื่อไม่ให้โปรแกรมมีเงื่อนไขโลจิคัล ลูป และบล็อกควบคุมที่ซับซ้อนอื่นๆ มากเกินไป
ในขั้นต่อไปของการทำความรู้จักกับหุ่นยนต์ Lego Mindstorms EV3 คุณจะต้องเรียนรู้วิธีการเขียนโปรแกรมการหมุนในมุมที่กำหนด การเคลื่อนที่ในวงกลม และการหมุนวน
การทำงานร่วมกับนักออกแบบนั้นน่าสนใจมาก เมื่อเรียนรู้เพิ่มเติมเกี่ยวกับความสามารถ คุณจะสามารถแก้ไขปัญหาทางเทคนิคได้ และในอนาคตอาจสร้างโมเดลหุ่นยนต์ Lego Mindstorms EV3 ที่น่าสนใจของคุณเอง
วรรณกรรม.
Koposov D.G. “ก้าวแรกสู่วิทยาการหุ่นยนต์สำหรับเกรด 5-6” - ม.: บินอม. ห้องปฏิบัติการความรู้, 2555 - 286 น.
Filippov S. A. “หุ่นยนต์สำหรับเด็กและผู้ปกครอง” - “วิทยาศาสตร์” 2010
แหล่งข้อมูลทางอินเทอร์เน็ต
http://เลโก้. rkc-74.ru/
http://www.9151394.ru/projects/lego/lego6/beliovskaya/
http://www. เลโก้ คอม/การศึกษา/
ปัญหานี้คลาสสิก เรียบง่ายตามอุดมคติ สามารถแก้ไขได้หลายครั้ง และทุกครั้งที่คุณค้นพบสิ่งใหม่ๆ
มีหลายวิธีในการแก้ปัญหาบรรทัดต่อไปนี้ การเลือกหนึ่งในนั้นขึ้นอยู่กับการออกแบบเฉพาะของหุ่นยนต์ จำนวนเซ็นเซอร์ ตำแหน่งที่สัมพันธ์กับล้อ และกันและกัน
ในตัวอย่างของเรา หุ่นยนต์สามตัวอย่างจะได้รับการวิเคราะห์ตามโมเดลการศึกษาหลักของ Robot Educator
ขั้นแรก เราได้ประกอบโมเดลพื้นฐานของหุ่นยนต์เพื่อการศึกษา Robot Educator ซึ่งคุณสามารถใช้คำแนะนำในซอฟต์แวร์ MINDSTORMS EV3 ได้
นอกจากนี้ ตัวอย่างเช่น เราจะต้องมีเซ็นเซอร์สีแสง EV3 เซ็นเซอร์วัดแสงเหล่านี้ไม่เหมือนใคร เหมาะที่สุดสำหรับงานของเรา เมื่อใช้งาน เราไม่ต้องกังวลกับความเข้มของแสงโดยรอบ สำหรับเซ็นเซอร์นี้ ในโปรแกรมเราจะใช้โหมดแสงสะท้อน ซึ่งเป็นการประมาณปริมาณแสงสะท้อนจากแสงพื้นหลังสีแดงของเซ็นเซอร์ ขีดจำกัดของการอ่านเซ็นเซอร์คือ 0 - 100 หน่วย สำหรับ "ไม่มีการสะท้อน" และ "การสะท้อนทั้งหมด" ตามลำดับ
ตามตัวอย่าง เราจะวิเคราะห์ 3 ตัวอย่างของโปรแกรมสำหรับเคลื่อนที่ไปตามวิถีสีดำที่แสดงบนพื้นหลังเรียบและสว่าง:
· เซนเซอร์ หนึ่งตัว พร้อมตัวปรับแรงดันลม P
· เซนเซอร์ หนึ่งตัว พร้อมตัวควบคุม PC
· เซ็นเซอร์สองตัว
ตัวอย่างที่ 1 เซ็นเซอร์หนึ่งตัวพร้อมตัวควบคุม P
ออกแบบ
มีการติดตั้งเซ็นเซอร์วัดแสงบนลำแสงซึ่งอยู่ในตำแหน่งที่สะดวกบนโมเดล
อัลกอริทึม
การทำงานของอัลกอริธึมนั้นขึ้นอยู่กับข้อเท็จจริงที่ว่า ขึ้นอยู่กับระดับของการทับซ้อนของลำแสงส่องสว่างของเซ็นเซอร์กับเส้นสีดำ การอ่านที่ส่งกลับโดยเซ็นเซอร์จะแตกต่างกันไปตามระดับ หุ่นยนต์จะรักษาตำแหน่งของเซ็นเซอร์แสงบนขอบของเส้นสีดำ ด้วยการแปลงข้อมูลอินพุตจากเซ็นเซอร์วัดแสง ระบบควบคุมจะสร้างค่าสำหรับความเร็วในการหมุนของหุ่นยนต์
เนื่องจากบนวิถีโคจรจริงเซ็นเซอร์จะสร้างค่าตลอดช่วงการทำงานทั้งหมด (0-100) จึงเลือก 50 เป็นค่าที่หุ่นยนต์มุ่งมั่น ในกรณีนี้ ค่าที่ส่งไปยังฟังก์ชันการหมุนจะถูกสร้างขึ้น ช่วง -50 - 50 แต่ค่าเหล่านี้ไม่เพียงพอสำหรับการเลี้ยววิถีที่สูงชัน ดังนั้นควรขยายช่วงหนึ่งเท่าครึ่งเป็น -75 - 75
ด้วยเหตุนี้ ในโปรแกรม ฟังก์ชันเครื่องคิดเลขจึงเป็นตัวควบคุมสัดส่วนอย่างง่าย ฟังก์ชันที่ ( (a-50)*1.5 ) ในช่วงการทำงานของเซ็นเซอร์วัดแสงจะสร้างค่าการหมุนตามกราฟ:
ตัวอย่างวิธีการทำงานของอัลกอริทึม
ตัวอย่างที่ 2 เซ็นเซอร์หนึ่งตัวพร้อมตัวควบคุม PK
ตัวอย่างนี้อิงจากโครงสร้างเดียวกัน
คุณอาจสังเกตเห็นว่าในตัวอย่างก่อนหน้านี้ หุ่นยนต์แกว่งมากเกินไป ซึ่งไม่สามารถเร่งความเร็วได้เพียงพอ ตอนนี้เราจะพยายามปรับปรุงสถานการณ์นี้เล็กน้อย
เรายังเพิ่มตัวควบคุมลูกบาศก์แบบธรรมดาให้กับตัวควบคุมสัดส่วนของเราด้วย ซึ่งจะเพิ่มความโค้งงอให้กับฟังก์ชันตัวควบคุม วิธีนี้จะลดการแกว่งของหุ่นยนต์ใกล้กับขอบเขตวิถีที่ต้องการ และกระตุกแรงขึ้นเมื่ออยู่ห่างจากหุ่นยนต์
ในบทนี้ เราจะสำรวจการใช้เซ็นเซอร์สีต่อไป เนื้อหาที่นำเสนอด้านล่างนี้มีความสำคัญมากสำหรับการศึกษาหลักสูตรวิทยาการหุ่นยนต์เพิ่มเติม หลังจากที่เราเรียนรู้วิธีใช้เซ็นเซอร์ทั้งหมดของตัวสร้าง Lego Mindstorms EV3 แล้ว เมื่อแก้ไขปัญหาในทางปฏิบัติ เราจะอาศัยความรู้ที่ได้รับในบทเรียนนี้
6.1. เซ็นเซอร์สี - โหมด "ความสว่างของแสงสะท้อน"
ดังนั้นเราจึงเริ่มศึกษาโหมดการทำงานถัดไปของเซ็นเซอร์สีซึ่งเรียกว่า “ความสว่างของแสงสะท้อน”. ในโหมดนี้ เซ็นเซอร์สีจะกำหนดเส้นทางแสงสีแดงไปยังวัตถุหรือพื้นผิวใกล้เคียง และวัดปริมาณของแสงที่สะท้อน วัตถุที่เข้มกว่าจะดูดซับฟลักซ์แสง ดังนั้นเซ็นเซอร์จะแสดงค่าที่ต่ำกว่าเมื่อเทียบกับพื้นผิวที่สว่างกว่า ช่วงค่าเซ็นเซอร์วัดได้จาก 0 (มืดมาก) ถึง 100 (สว่างมาก). โหมดการทำงานของเซ็นเซอร์สีนี้ใช้ในงานหุ่นยนต์หลายอย่าง เช่น เพื่อจัดระเบียบการเคลื่อนที่ของหุ่นยนต์ตามเส้นทางที่กำหนดตามเส้นสีดำที่พิมพ์บนการเคลือบสีขาว เมื่อใช้โหมดนี้ ขอแนะนำให้วางตำแหน่งเซ็นเซอร์เพื่อให้ระยะห่างจากเซ็นเซอร์ถึงพื้นผิวที่กำลังศึกษาอยู่โดยประมาณ 1 ซม. (รูปที่ 1).
ข้าว. 1
มาดูแบบฝึกหัดภาคปฏิบัติกัน: เซ็นเซอร์สีได้รับการติดตั้งบนหุ่นยนต์ของเราแล้ว และถูกส่งลงไปที่พื้นผิวของสารเคลือบตามที่หุ่นยนต์ของเราจะเคลื่อนที่ไป ระยะห่างระหว่างเซ็นเซอร์กับพื้นเป็นไปตามที่แนะนำ เซ็นเซอร์สีเชื่อมต่อกับพอร์ตแล้ว "2" โมดูล EV3 มาโหลดสภาพแวดล้อมการเขียนโปรแกรม เชื่อมต่อหุ่นยนต์กับสภาพแวดล้อม และเพื่อทำการวัด ให้ใช้ฟิลด์ที่มีแถบสีที่เราสร้างขึ้นเพื่อทำงานในส่วนที่ 5.4 ของบทเรียนที่ 5 ให้เสร็จสิ้น มาติดตั้งหุ่นยนต์เพื่อให้เซ็นเซอร์สีอยู่เหนือพื้นผิวสีขาวกัน "หน้าฮาร์ดแวร์"เปลี่ยนสภาพแวดล้อมการเขียนโปรแกรมเป็นโหมด "ดูพอร์ต" (รูปที่ 2 รายการที่ 1). ในโหมดนี้เราสามารถสังเกตการเชื่อมต่อทั้งหมดที่เราทำ บน ข้าว. 2การเชื่อมต่อกับพอร์ตจะปรากฏขึ้น "บี"และ "ค"มอเตอร์ขนาดใหญ่สองตัวและไปยังท่าเรือ "2" - เซ็นเซอร์สี
ข้าว. 2
หากต้องการเลือกตัวเลือกสำหรับการแสดงการอ่านเซ็นเซอร์ ให้คลิกที่ภาพเซ็นเซอร์และเลือกโหมดที่ต้องการ (รูปที่ 3)
ข้าว. 3
บน ข้าว. 2 ตำแหน่ง 2เราจะเห็นว่าค่าของเซ็นเซอร์สีที่อ่านอยู่เหนือพื้นผิวสีขาวคือ 84 . ในกรณีของคุณ คุณอาจได้รับค่าที่แตกต่างออกไป เนื่องจากขึ้นอยู่กับวัสดุพื้นผิวและแสงภายในห้อง: ส่วนหนึ่งของแสงที่สะท้อนจากพื้นผิวกระทบกับเซ็นเซอร์และส่งผลต่อการอ่านค่า หลังจากติดตั้งหุ่นยนต์เพื่อให้เซ็นเซอร์สีอยู่เหนือแถบสีดำ เราจะบันทึกการอ่าน (รูปที่ 4). ลองวัดค่าแสงสะท้อนเหนือแถบสีที่เหลือด้วยตัวเอง คุณได้รับค่าอะไร? เขียนคำตอบของคุณในความคิดเห็นของบทเรียนนี้
ข้าว. 4
ตอนนี้เรามาแก้ปัญหาเชิงปฏิบัติกันดีกว่า
งาน #11:จำเป็นต้องเขียนโปรแกรมการเคลื่อนที่ของหุ่นยนต์ซึ่งจะหยุดเมื่อถึงเส้นสีดำ
สารละลาย:
การทดลองแสดงให้เราเห็นว่าเมื่อข้ามเส้นสีดำค่าของเซ็นเซอร์สีในโหมด “ความสว่างของแสงสะท้อน”เท่ากับ 6 . ดังนั้นเพื่อดำเนินการ ปัญหาหมายเลข 11หุ่นยนต์ของเราต้องเคลื่อนที่เป็นเส้นตรงจนกว่าค่าที่ต้องการของเซ็นเซอร์สีจะน้อยลง 7 . ลองใช้บล็อกโปรแกรมที่เราคุ้นเคยกันดีอยู่แล้ว "ความคาดหวัง"จานสีส้ม ให้เราเลือกโหมดการทำงานของบล็อกซอฟต์แวร์ที่ต้องการตามเงื่อนไขปัญหา "กำลังรอ" (รูปที่ 5)
ข้าว. 5
นอกจากนี้ยังจำเป็นต้องกำหนดค่าพารามิเตอร์ของบล็อกโปรแกรมด้วย "ความคาดหวัง". พารามิเตอร์ "ประเภทการเปรียบเทียบ" (รูปที่ 6 รายการที่ 1)สามารถรับค่าต่อไปนี้: "เท่าเทียมกัน"=0, "ไม่เท่ากับ"=1, "มากกว่า"=2, “มากกว่าหรือเท่ากัน”=3, "น้อย"=4, “น้อยกว่าหรือเท่ากัน”=5. ในกรณีของเรา มาตั้งค่ากัน "ประเภทการเปรียบเทียบ"ในความหมาย "น้อย". พารามิเตอร์ “ค่าเกณฑ์”ตั้งค่าให้เท่ากัน 7 (รูปที่ 6 รายการที่ 2).
ข้าว. 6
ทันทีที่ค่าเซ็นเซอร์สีถูกตั้งค่าให้น้อยลง 7 สิ่งที่จะเกิดขึ้นคือเมื่อเซ็นเซอร์สีอยู่เหนือเส้นสีดำ เราจะต้องปิดมอเตอร์ และหยุดหุ่นยนต์ แก้ไขปัญหา (รูปที่ 7).
ข้าว. 7
หากต้องการเรียนต่อ เราจะต้องสร้างสนามใหม่ซึ่งเป็นวงกลมสีดำที่มีเส้นผ่านศูนย์กลางประมาณ 1 เมตร ใช้กับสนามสีขาว ความหนาของเส้นวงกลมคือ 2 - 2.5 ซม. สำหรับฐานของสนามคุณสามารถใช้กระดาษขนาด A0 หนึ่งแผ่น (841x1189 มม.) ติดกาวกระดาษขนาด A1 สองแผ่น (594x841 มม.) เข้าด้วยกัน ในฟิลด์นี้ ให้ทำเครื่องหมายเส้นวงกลมแล้วทาสีด้วยหมึกสีดำ คุณยังสามารถดาวน์โหลดเค้าโครงฟิลด์ที่สร้างในรูปแบบ Adobe Illustrator แล้วสั่งพิมพ์บนผ้าแบนเนอร์ที่โรงพิมพ์ ขนาดเค้าโครงคือ 1250x1250 มม. (คุณสามารถดูเค้าโครงที่ดาวน์โหลดด้านล่างโดยเปิดใน Adobe Acrobat Reader)
สาขานี้จะเป็นประโยชน์สำหรับเราในการแก้ปัญหาคลาสสิกหลายประการในหลักสูตรวิทยาการหุ่นยนต์
งาน #12:จำเป็นต้องเขียนโปรแกรมสำหรับหุ่นยนต์ที่เคลื่อนที่ภายในวงกลมที่มีขอบวงกลมสีดำตามกฎต่อไปนี้:
- หุ่นยนต์เคลื่อนที่ไปข้างหน้าเป็นเส้นตรง
- เมื่อถึงเส้นสีดำ หุ่นยนต์จะหยุด
- หุ่นยนต์จะเคลื่อนที่กลับไปสองรอบของมอเตอร์
- หุ่นยนต์หมุนไปทางขวา 90 องศา
- การเคลื่อนไหวของหุ่นยนต์ซ้ำแล้วซ้ำอีก
ความรู้ที่ได้รับในบทเรียนก่อนหน้านี้จะช่วยให้คุณสร้างโปรแกรมที่ช่วยแก้ปัญหาข้อ 12 ได้อย่างอิสระ
แนวทางแก้ไขปัญหาหมายเลข 12
- เริ่มการเคลื่อนไหวไปข้างหน้าตรง (รูปที่ 8 รายการที่ 1);
- รอให้เซ็นเซอร์สีข้ามเส้นสีดำ (รูปที่ 8 รายการที่ 2);
- ถอยหลัง 2 รอบ (รูปที่ 8 รายการที่ 3);
- เลี้ยวขวา 90 องศา (รูปที่ 8 รายการที่ 4); ค่ามุมการหมุนจะถูกคำนวณสำหรับหุ่นยนต์ที่ประกอบตามคำแนะนำ Small-robot-45544 (รูปที่ 8 รายการที่ 5);
- ทำซ้ำคำสั่ง 1 - 4 ในวงวนไม่มีที่สิ้นสุด (รูปที่ 8 ข้อ 6).
ข้าว. 8
เพื่อใช้งานเซ็นเซอร์สีในโหมด “ความสว่างของแสงสะท้อน”เราจะกลับมาหลายครั้งเมื่อเราพิจารณาอัลกอริธึมสำหรับการเคลื่อนที่ไปตามเส้นสีดำ ในตอนนี้ เรามาดูโหมดการทำงานที่สามของเซ็นเซอร์สีกันดีกว่า
6.2. เซ็นเซอร์สี - โหมด "ความสว่างของแสงโดยรอบ"
โหมดการทำงานของเซ็นเซอร์สี “ความสว่างของแสงภายนอก”คล้ายกับโหมดมาก “ความสว่างของแสงสะท้อน”เฉพาะในกรณีนี้เซ็นเซอร์จะไม่ปล่อยแสง แต่จะวัดแสงธรรมชาติที่ส่องสว่างจากสิ่งแวดล้อม เมื่อมองด้วยสายตา โหมดการทำงานของเซ็นเซอร์นี้สามารถกำหนดได้ด้วยไฟ LED สีฟ้าที่ส่องสว่างเล็กน้อย ค่าที่อ่านได้จากเซนเซอร์จะแตกต่างกันไป 0 (ไม่มีแสงสว่าง) จนกระทั่ง 100 (แสงที่สว่างที่สุด) เมื่อแก้ไขปัญหาในทางปฏิบัติที่ต้องมีการวัดแสงภายนอก ขอแนะนำให้วางตำแหน่งเซ็นเซอร์เพื่อให้เซ็นเซอร์ยังคงเปิดกว้างที่สุดเท่าที่จะเป็นไปได้ และไม่มีชิ้นส่วนและโครงสร้างอื่นบัง
มาติดตั้งเซ็นเซอร์สีเข้ากับหุ่นยนต์ของเราในลักษณะเดียวกับที่เราติดเซ็นเซอร์สัมผัสในบทที่ #4 (รูปที่ 9). เชื่อมต่อเซ็นเซอร์สีด้วยสายเคเบิลเข้ากับพอร์ต "2" โมดูล EV3 มาดูการแก้ปัญหาเชิงปฏิบัติกันดีกว่า
ข้าว. 9
งาน #13:เราจำเป็นต้องเขียนโปรแกรมที่เปลี่ยนความเร็วของหุ่นยนต์ของเราขึ้นอยู่กับความเข้มของแสงภายนอก
เพื่อแก้ปัญหานี้ เราจำเป็นต้องรู้วิธีรับค่าปัจจุบันของเซ็นเซอร์ และจานสีเหลืองของบล็อกโปรแกรมซึ่งเรียกว่า "เซนเซอร์".
6.3. จานสีเหลือง - "เซ็นเซอร์"
จานสีเหลืองของสภาพแวดล้อมการเขียนโปรแกรม Lego mindstorms EV3 มีบล็อกซอฟต์แวร์ที่ช่วยให้คุณได้รับการอ่านเซ็นเซอร์ปัจจุบันสำหรับการประมวลผลเพิ่มเติมในโปรแกรม ต่างจากตัวอย่างเช่น บล็อกโปรแกรม "ความคาดหวัง"ในจานสีส้ม บล็อกโปรแกรมในจานสีเหลืองจะถ่ายโอนการควบคุมไปยังบล็อกโปรแกรมต่อไปนี้ทันที
จำนวนบล็อกโปรแกรมของจานสีเหลืองจะแตกต่างกันไปในสภาพแวดล้อมการเขียนโปรแกรมเวอร์ชันสำหรับใช้ในบ้านและเวอร์ชันเพื่อการศึกษา สภาพแวดล้อมการเขียนโปรแกรมเวอร์ชันโฮมไม่มีบล็อกซอฟต์แวร์สำหรับเซ็นเซอร์ที่ไม่รวมอยู่ในเวอร์ชันโฮมของผู้ออกแบบ แต่หากจำเป็นคุณสามารถเชื่อมต่อได้ด้วยตัวเอง
สภาพแวดล้อมการเขียนโปรแกรมเวอร์ชันเพื่อการศึกษาประกอบด้วยบล็อกการเขียนโปรแกรมสำหรับเซ็นเซอร์ทั้งหมดที่สามารถใช้กับตัวสร้าง Lego Mindstorms EV3
กลับมาที่วิธีแก้ปัญหากันดีกว่า ปัญหาหมายเลข 13มาดูกันว่าคุณจะรับและประมวลผลการอ่านเซ็นเซอร์สีได้อย่างไร ดังที่เราทราบแล้ว: ช่วงของค่าเซ็นเซอร์สีในโหมด “ความสว่างของแสงภายนอก”อยู่ในช่วงของ 0 ก่อน 100 . พารามิเตอร์ที่ควบคุมกำลังมอเตอร์มีช่วงเดียวกัน ลองใช้การอ่านเซ็นเซอร์สีเพื่อควบคุมกำลังของมอเตอร์ในบล็อกซอฟต์แวร์ "พวงมาลัย".
สารละลาย:
![](https://i2.wp.com/robot-help.ru/images/lego-mindstorms-ev3/lessons/lesson-6/012.jpg)
ข้าว. 10
มาโหลดโปรแกรมผลลัพธ์ลงในหุ่นยนต์และรันเพื่อดำเนินการกัน หุ่นยนต์ขับช้าๆ หรือไม่? มาเปิดไฟฉาย LED แล้วลองนำไปที่เซ็นเซอร์สีที่ระยะต่างๆ เกิดอะไรขึ้นกับหุ่นยนต์? เรามาคลุมเซ็นเซอร์สีด้วยฝ่ามือของเรา - เกิดอะไรขึ้นในกรณีนี้? เขียนคำตอบของคำถามเหล่านี้ลงในความคิดเห็นของบทเรียน
ความท้าทาย - โบนัส
โหลดมันเข้าไปในหุ่นยนต์และรันงานที่แสดงในรูปด้านล่าง ทำซ้ำการทดลองด้วยไฟฉาย LED แบ่งปันความประทับใจของคุณในความคิดเห็นของบทเรียน
จนถึงขณะนี้ ในบทความเกี่ยวกับอัลกอริธึมที่ใช้ในการเคลื่อนที่ไปตามเส้น วิธีการหนึ่งได้รับการพิจารณาเมื่อเซ็นเซอร์แสงดูเหมือนจะตรวจสอบขอบด้านซ้ายหรือด้านขวา: ทันทีที่หุ่นยนต์เคลื่อนที่เข้าไปในส่วนสีขาวของสนาม ผู้ควบคุมจะส่งคืนหุ่นยนต์ ไปที่เส้นขอบเซ็นเซอร์เริ่มเคลื่อนที่ลึกเข้าไปในเส้นสีดำ - ตัวควบคุมจะยืดมันกลับ
แม้ว่าภาพด้านบนจะแสดงสำหรับตัวควบคุมรีเลย์ แต่หลักการทั่วไปของการเคลื่อนที่ตามสัดส่วน (P-regulator) จะเหมือนกัน ดังที่ได้กล่าวไปแล้ว ความเร็วเฉลี่ยของการเคลื่อนไหวดังกล่าวไม่สูงมาก และมีการพยายามหลายครั้งเพื่อเพิ่มความเร็วโดยทำให้อัลกอริธึมซับซ้อนเล็กน้อย: ในกรณีหนึ่งมีการใช้การเบรกแบบ "นุ่มนวล" ในอีกกรณีหนึ่งนอกเหนือจากการเลี้ยวแล้วการเคลื่อนที่ไปข้างหน้า ได้รับการแนะนำ
เพื่อให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าในบางพื้นที่ จึงมีการจัดสรรพื้นที่แคบในช่วงของค่าที่สร้างโดยเซ็นเซอร์วัดแสง ซึ่งตามอัตภาพอาจเรียกว่า "เซ็นเซอร์อยู่ที่ขอบของเส้น" วิธีการนี้มีข้อเสียเปรียบเล็กน้อย - หากหุ่นยนต์ "ตาม" ขอบเขตด้านซ้ายของเส้น เมื่อเลี้ยวขวา หุ่นยนต์จะไม่ตรวจจับความโค้งของวิถีในทันที และด้วยเหตุนี้ หุ่นยนต์จึงใช้เวลามากขึ้นในการค้นหาเส้นและเลี้ยว ยิ่งกว่านั้นเราสามารถพูดได้อย่างมั่นใจว่ายิ่งเลี้ยวได้คมชัดการค้นหานี้ก็จะยิ่งนานขึ้นเท่านั้น
รูปต่อไปนี้แสดงให้เห็นว่าหากเซ็นเซอร์ไม่ได้อยู่ที่ด้านซ้ายของเส้นขอบ แต่ทางด้านขวา เซ็นเซอร์ก็จะตรวจพบความโค้งของวิถีแล้ว และจะเริ่มทำการเลี้ยว
![]() |
![]() |
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/095_two_sensors.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/096_two_sensors_3_states.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/097_two_sensors_2_more_states.png)
- เซ็นเซอร์ด้านซ้ายเหมือนกับเซ็นเซอร์ด้านขวา อยู่เหนือพื้นผิวที่มีแสง
- เซ็นเซอร์ด้านซ้ายบนพื้นผิวที่มีแสง เซ็นเซอร์ด้านขวาบนพื้นผิวที่มืด
- เซ็นเซอร์ด้านซ้ายบนพื้นผิวที่มืด เซ็นเซอร์ด้านขวาบนพื้นผิวที่มีแสง
- เซ็นเซอร์ทั้งสองตัวอยู่เหนือพื้นผิวที่มืด
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/098_two_sensors_possible_states.png)
- หากเซ็นเซอร์ทั้งสองอยู่เหนือพื้นผิวสีขาว นี่ถือเป็นสถานการณ์ปกติที่เส้นอยู่ระหว่างเซ็นเซอร์ ดังนั้น หุ่นยนต์ควรเดินตรง หากเซ็นเซอร์ด้านซ้ายยังอยู่เหนือพื้นผิวแสง และเซ็นเซอร์ด้านขวาอยู่เหนือพื้นผิวแสงแล้ว มืดแล้วหุ่นยนต์ได้ขับเคลื่อนด้านขวาไปบนเส้นซึ่งหมายความว่าเขาต้องเลี้ยวไปทางขวาเพื่อให้เส้นนั้นอยู่ระหว่างเซ็นเซอร์อีกครั้งหากเซ็นเซอร์ด้านซ้ายอยู่เหนือพื้นผิวมืดและเซ็นเซอร์ด้านขวายังคงอยู่ เหนือแสง จากนั้นเพื่อจัดแนวหุ่นยนต์จะต้องเลี้ยวซ้าย หากเซ็นเซอร์ทั้งสองอยู่เหนือพื้นผิวที่มืด โดยทั่วไป หุ่นยนต์ยังคงเคลื่อนที่ตรงอีกครั้ง
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/099_two_sensors_with_moves.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/100_two_sens_prog01.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/101_two_sens_prog02.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/102_two_sens_prog03.png)
![](https://i2.wp.com/prorobot.ru/lego/line-following-2-sensors/103_two_sens_prog04.png)
![](https://i1.wp.com/prorobot.ru/lego/line-following-2-sensors/104_two_sens_prog05.png)
![](https://i0.wp.com/prorobot.ru/lego/line-following-2-sensors/105_two_sens_prog06.png)
ควรกล่าวคำแยกสองสามคำเกี่ยวกับการวางตำแหน่งเซ็นเซอร์บนหุ่นยนต์ แน่นอนว่าคำแนะนำเดียวกันสำหรับตำแหน่งของเซ็นเซอร์ทั้งสองนี้สัมพันธ์กับล้อจะมีผลกับเซ็นเซอร์ตัวเดียว โดยจะใช้เฉพาะจุดยอดของสามเหลี่ยมเป็นจุดกึ่งกลางของส่วนที่เชื่อมต่อเซ็นเซอร์ทั้งสองตัว ควรเลือกระยะห่างระหว่างเซ็นเซอร์จากลักษณะของแทร็ก: ยิ่งเซ็นเซอร์อยู่ใกล้กันมากเท่าไร หุ่นยนต์ก็จะยิ่งได้ระดับมากขึ้นเท่านั้น (หมุนค่อนข้างช้า) แต่ถ้าเซ็นเซอร์มีระยะห่างกว้างเพียงพอ ดังนั้นจึงมีความเสี่ยงที่จะบินออกนอกเส้นทาง ดังนั้นคุณจะต้องเลี้ยว "ยาก" มากขึ้นและลดความเร็วในส่วนทางตรง