หลักสูตรการเขียนโปรแกรมหุ่นยนต์ EV3 ในสภาพแวดล้อม Lego Mindstorms EV3 หุ่นยนต์ชั้นวางหนังสือ หลักสูตรการเขียนโปรแกรมหุ่นยนต์ lego mindstorms ev3

ล.ยู. Ovsyanitskaya, D.N. Ovsyanitsky, A.D. ออฟยานิทสกี้

หลักสูตรการเขียนโปรแกรมหุ่นยนต์ EV3

ในสภาพแวดล้อม เลโก้ มายด์สตอร์ม EV3

ฉบับพิมพ์ครั้งที่ 2 แก้ไขและขยายความ

ยูดีซี 004.42+004.896

Ovsyanitskaya, L.Yu. หลักสูตรการเขียนโปรแกรมหุ่นยนต์เลโก้

Mindstorms EV3 ในสภาพแวดล้อม EV3: ed. ประการที่สองแก้ไข และเพิ่มเติม /

ล.ยู. Ovsyanitskaya, D.N. Ovsyanitsky, A.D. ออฟยานิทสกี้ – ม.:

“เปโร”, 2016. – 296 น.

ไอ 978-5-906862-76-1

หนังสือเล่มนี้อุทิศให้กับการเขียนโปรแกรมหุ่นยนต์ EV3 ในสภาพแวดล้อม Lego Mindstorms EV3 งานนี้เป็นผลมาจากประสบการณ์หลายปีของการมีส่วนร่วมโดยตรงของผู้เขียนในการแข่งขันระดับภูมิภาค รัสเซียทั้งหมด และระดับนานาชาติในด้านหุ่นยนต์และการสอนที่มุ่งฝึกอบรมครู อาจารย์ และผู้ฝึกสอนในหัวข้อนี้

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

ผู้วิจารณ์:

วิทยาศาสตรดุษฎีบัณฑิต สาขากายภาพและคณิตศาสตร์ ศาสตราจารย์ A.F. โชริคอฟ.

ISBN 978-5-906862-76-1 © L.Yu. Ovsyanitskaya, D.N. Ovsyanitsky, A.D. Ovsyanitsky, 2016 บทนำสารบัญ

บทที่ 1 ลักษณะของหุ่นยนต์

การสร้างและเปิดตัวโครงการแรก 7

1.1. คำอธิบายสั้น ๆ ของแพลตฟอร์มหุ่นยนต์ ภาพรวมของสภาพแวดล้อมการเขียนโปรแกรม Lego Mindstorms EV3

1.2. วิธีการเชื่อมต่อหุ่นยนต์เข้ากับคอมพิวเตอร์ อัพเดตเฟิร์มแวร์ EV3 Brick การอัพโหลดโปรแกรมไปยัง EV3 Brick



บทที่ 2 การเขียนโปรแกรมหุ่นยนต์

2.1. มอเตอร์. การเขียนโปรแกรมการเคลื่อนไหวตามวิถีต่างๆ

2.2. การทำงานกับแบ็คไลท์ หน้าจอ และเสียง

2.2.1. ทำงานกับหน้าจอ

2.2.2. การทำงานกับปุ่มย้อนแสงบน EV3 Brick

2.2.3. ทำงานด้วยเสียง

2.3. โครงสร้างโปรแกรม

2.3.1. ความคาดหวังเชิงโครงสร้าง

2.3.2. วงจรโครงสร้าง

2.3.3. โครงสร้างสวิตช์

2.4. การทำงานกับข้อมูล

2.4.1. ประเภทข้อมูล ตัวนำ

2.4.2. ตัวแปรและค่าคงที่

2.4.3. การดำเนินการทางคณิตศาสตร์กับข้อมูล

2.4.5. การทำงานกับอาร์เรย์

2.4.6. การดำเนินการเชิงตรรกะกับข้อมูล

2.5. การทำงานกับเซ็นเซอร์

2.5.1. เซ็นเซอร์สัมผัส

2.5.2. เซ็นเซอร์สี

2.5.3 เซ็นเซอร์ไจโร

2.5.4. เซ็นเซอร์อัลตราโซนิก

2.5.5. เซ็นเซอร์อินฟราเรดและบีคอน

2.5.6. เซ็นเซอร์การหมุนของมอเตอร์ (การกำหนดมุม/จำนวนรอบการหมุนและกำลังมอเตอร์)

2.5.7. ปุ่มควบคุมโมดูล

2.6. การทำงานกับไฟล์

หลักสูตรการเขียนโปรแกรมหุ่นยนต์ Lego Mindstorms EV3 ในสภาพแวดล้อม EV3

2.7. การทำงานร่วมกันของหุ่นยนต์หลายตัว

2.7.1. การเชื่อมต่อหุ่นยนต์ด้วยสาย USB

2.7.2. การสื่อสารของหุ่นยนต์โดยใช้การเชื่อมต่อ Bluetooth................................. 207

2.8. บล็อกและเครื่องมือที่มีประโยชน์

2.8.1. บล็อก “ใช้งานต่อไป”

2.8.2. บล็อก “หยุดโปรแกรม”

2.8.3. การสร้างกิจวัตร

2.8.4. การบันทึกความคิดเห็น

2.8.5. การใช้พอร์ตอินพุตแบบมีสาย

บทที่ 3 ประเภทการแข่งขันหลักและองค์ประกอบของงาน

3.1. การแข่งขันซูโม่

3.2. เคเกลริง

3.3. สลาลม (หลีกเลี่ยงอุปสรรค)

3.4. การเขียนโปรแกรมการเคลื่อนที่ของเส้น

3.4.1. อัลกอริทึมสำหรับการเคลื่อนที่ตามแนวซิกแซกด้วยเซ็นเซอร์สีหนึ่งและสองตัว

3.4.2. อัลกอริทึม "คลื่น"

3.4.3. อัลกอริทึมสำหรับการสอบเทียบเซ็นเซอร์สีอัตโนมัติ..... 258

3.5. การควบคุมเชิงเส้นตามสัดส่วน

3.5.1. การเคลื่อนที่ของเส้นตามการควบคุมตามสัดส่วน

3.5.2. การค้นหาและการนับทางแยกด้วยการควบคุมเส้นสัดส่วน

3.5.3. การผกผันการเดินทาง

3.5.4. การเคลื่อนไหวของหุ่นยนต์ไปตามผนัง

3.6. ค้นหาเป้าหมายในเขาวงกต

บทที่ 4: การอัปเดตเฟิร์มแวร์และการรีสตาร์ท EV3 Brick

286 บทที่ 5 การใช้เซ็นเซอร์ของบริษัทอื่น

5.1. ทำงานร่วมกับเซ็นเซอร์สี HiTech

5.2. การใช้เซ็นเซอร์อื่นๆ

บทสรุป

รายชื่อโครงการ โครงการ “สุนัขซื่อสัตย์” 90 โครงการ “กระดานคะแนนกีฬา” 98 โครงการ “จบการแข่งขันอัตโนมัติ” 102 โครงการ “60 วินาที” 109 โครงการ “การบันทึกและการอ่านบาร์โค้ดสี” 120 โครงการ “การเรียงลำดับอาร์เรย์โดยใช้วิธีฟอง” 123 โครงการ “ สมาร์ทเฮ้าส์» 153 โครงการ “หุ่นยนต์ปากแข็ง” 160 โครงการ “หุ่นยนต์กับ รีโมท» 182 โปรเจ็กต์เกมแอนิเมชั่นบนหน้าจอของบล็อก EV3 “จับลูกบอลหิมะ” 191 โปรเจ็กต์ “การสร้างแผนที่พื้นผิว 3 มิติ” 197 โปรเจ็กต์ “EV3 - ซินธิไซเซอร์เพลง” 203 หลักสูตรการเขียนโปรแกรมหุ่นยนต์ Lego Mindstorms EV3 ในอิมเมจสภาพแวดล้อม EV3 ของ ขดลวด (รูปที่ 1.1.11b) บล็อกจะเปิดใช้งาน (สว่าง) (รูปที่ 1.1.11c)

–  –  –

รูปที่ 1.1.

12. โปรแกรมคู่ขนาน ในการปรับขนาดภาพ (รูปที่ 1.1.13 a, b) จะใช้ชุดค่าผสม MSWindows มาตรฐาน ปุ่ม Ctrlและล้อเลื่อนเมาส์หรือไอคอนที่มุมขวาบนของหน้าต่าง: การปรับขนาดจะใช้เมื่อนำทางโปรแกรมขนาดใหญ่ คัดลอกบล็อกเฉพาะ และอื่นๆ อีกมากมาย

หลักสูตรการเขียนโปรแกรมหุ่นยนต์ Lego Mindstorms EV3 ในสภาพแวดล้อม EV3 บล็อกมอเตอร์ขนาดใหญ่และมอเตอร์ขนาดกลาง บล็อกแรกของจานสีเรียกว่ามอเตอร์ขนาดกลาง บล็อกที่สองเรียกว่ามอเตอร์ขนาดใหญ่ บล็อกนี้ใช้เพื่อควบคุมมอเตอร์หนึ่งตัวและมีฟังก์ชันการทำงานเหมือนกัน

พิจารณาโครงสร้างของบล็อกโดยใช้ตัวอย่างบล็อกมอเตอร์ขนาดใหญ่ (รูปที่ 2.1.4)

–  –  –

รูปที่ 2.1.

4. หน่วยควบคุมมอเตอร์ขนาดใหญ่ ขั้นแรกให้คลิกที่ตัวอักษรที่แสดงชื่อพอร์ตและเลือกชื่อพอร์ตที่มอเตอร์เชื่อมต่ออยู่

มาดูองค์ประกอบการควบคุมแต่ละอย่างอย่างละเอียดยิ่งขึ้น

1. เลือกโหมดการทำงาน:

ก) เปิด (รูปที่ 2.1.5)

–  –  –

รูปที่ 2.4.

3.4. โครงการดำเนินโครงการ “60 วินาที”

กิจกรรม DIY เพิ่มรูปภาพหน้าปัดนาฬิกาบนหน้าจอ

เพิ่มเข็มนาทีและเข็มชั่วโมงโดยการเปรียบเทียบ

2.4.4. บล็อกการประมวลผลข้อมูลอื่นๆ

–  –  –

ก่อนที่คุณจะเริ่มทำงานกับอาร์เรย์ คุณจะต้องเริ่มต้นใช้งานอาร์เรย์ก่อน เช่น ระบุประเภท (ตัวเลขหรือตรรกะ) และกำหนดชื่อ

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

การสร้างอาร์เรย์ การเขียนอาร์เรย์ให้กับตัวแปร

ในการสร้างและเติมอาร์เรย์ คุณต้อง:

(a) ย้ายบล็อกตัวแปรไปยังพื้นที่ทำงานและกำหนดโหมด (เขียน) และประเภท (อาร์เรย์ตัวเลขหรือตรรกะ)

การก่อตัวของอาร์เรย์ตัวเลขของอาร์เรย์ลอจิคัล

–  –  –

รูปที่ 2.5.

3.3. โหมดการทำงานของเซ็นเซอร์ไจโรสโคปิก สำคัญ!

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

การเพิ่มค่าเซ็นเซอร์ บทที่ 2 การตั้งโปรแกรมหุ่นยนต์ 177 หากบีคอนอยู่ไกลมาก (ไกลกว่า 1 ม.) ค่าการวัดจะเป็น 100 หากอยู่ใกล้มาก (ขั้นต่ำ 1 ซม.) - 0 ผลลัพธ์ระดับกลางก็ไม่สอดคล้องกันเช่นกัน ถึงเซนติเมตร

ในกรณีที่บีคอนตั้งอยู่ด้านหน้าเซ็นเซอร์โดยตรง ผลสัมพัทธ์ของการวัดมุมจะเท่ากับ 0 ตำแหน่งสูงสุดของบีคอนทางด้านซ้าย ทวนเข็มนาฬิกา -25 (มุมเบี่ยงเบนสูงสุดที่ตรวจจับได้จะอยู่ที่ประมาณ 100 องศา) ทางด้านขวาตามเข็มนาฬิกา 25 (รูปที่ 2.5.5.5)

รูปที่ 2.5.

5.5. ตำแหน่งของบีคอน IR ที่สัมพันธ์กับเซ็นเซอร์ IR มาดูตัวอย่างโปรแกรมกัน วางบีคอนไว้ด้านหน้าหุ่นยนต์ เปิดเครื่องแล้วชี้ไปทางหุ่นยนต์

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

ไฟสัญญาณจะดับลงหากไม่ได้ใช้งานเป็นเวลาหนึ่งชั่วโมง

ในรูป 2.5.5.6 แสดงตัวเลือกโหมดการทำงานพร้อมบีคอน

หลักสูตรการเขียนโปรแกรมหุ่นยนต์ Lego Mindstorms EV3 ในสภาพแวดล้อม EV3 โดยใช้ MS Excel

หุ่นยนต์หมุนและในแต่ละช่วงเวลาจะบันทึกค่าของมุมการหมุนและระยะห่างถึงพื้นผิว

สารละลาย:

1. รีเซ็ตค่าเซ็นเซอร์ไจโรสโคป

เราใส่วงจร 01 เงื่อนไขการสิ้นสุดคือเวลา (3 วินาที)

2. ในระหว่างวงจร หุ่นยนต์จะหมุนและอ่านข้อมูลจากเซ็นเซอร์อัลตราโซนิกและไจโรสโคปิก การอ่านจะรวมอยู่ในบล็อกโปรแกรมข้อความ โดยคั่นด้วยเครื่องหมายจุลภาค

3. ผลการวัดในแต่ละขั้นตอนของรอบจะถูกเขียนลงในไฟล์แผนที่

4. ตั้งเวลาหยุดชั่วคราว 0.25 วินาที หลังจากสิ้นสุดรอบ ให้ปิดไฟล์

ความสนใจ! เมื่อใช้เซ็นเซอร์ไจโรสโคปิก ให้คำนึงถึงการเบี่ยงเบนของการอ่านเมื่อเปิดเครื่อง (ดู

ส่วนที่ 2.5.3 เพื่อลบการดริฟท์)

บทที่ 2 การตั้งโปรแกรมหุ่นยนต์ 213 เคลื่อนที่และหยุด ป้อนรถพ่วงแต่ละตัวตามลำดับ

2. “วงดนตรีร้องและเครื่องดนตรี”

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

3. "ชุดเต้นรำ"

ภารกิจคือการสร้างชุดหุ่นยนต์ หุ่นยนต์ตัวแรกที่ออกคำสั่งผ่าน Bluetooth คือหุ่นยนต์เดี่ยว หุ่นยนต์ที่เหลือทำตามคำสั่ง โปรแกรมการเต้นรำประเภทต่างๆ - การเต้นรำแบบกลมของหุ่นยนต์ ("หัวรถจักร") การเต้นรำแบบช้าและเร็ว

4. “การออกกำลังกายตอนเช้า”

ภารกิจคือทำแบบฝึกหัดยิมนาสติกไปพร้อม ๆ กันตามคำสั่งของหุ่นยนต์ตัวแรก

2.8. บล็อกและเครื่องมือที่มีประโยชน์ 2.8.1 บล็อก “ใช้งานต่อไป”

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

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

ผู้ชนะคือผู้เข้าร่วมที่สามารถประกอบโครงสร้างที่แข็งแกร่งและเชื่อถือได้ เขียนโปรแกรมที่มีความสามารถ (หรือโปรแกรม) และเลือกกลยุทธ์ที่เหมาะสม การรวมกันของปัจจัยเหล่านี้ทำให้กระบวนการเตรียมตัวสำหรับการแข่งขันน่าตื่นเต้น และการแข่งขันเองก็สนุกสนานและน่าตื่นเต้นมาก!

เรามายกตัวอย่างอัลกอริทึมของโปรแกรมสำหรับนักมวยปล้ำซูโม่แบบหุ่นยนต์กัน

การหยุดหุ่นยนต์

2. หุ่นยนต์หมุนจนเห็นหุ่นยนต์ของคู่ต่อสู้ด้วยเซ็นเซอร์อัลตราซาวนด์ (จนค่าเซ็นเซอร์น้อยกว่า 100 ซม.) ซึ่งสอดคล้องกับมุมการหมุน 120-180 องศา การหยุดหุ่นยนต์

3. สร้างวงจรโดยมีเงื่อนไขการสิ้นสุด 01 – ไม่จำกัด

4. ในรอบ 01 เราจะแทรกรอบ 02 เงื่อนไขการสิ้นสุดซึ่งเป็นค่าตรรกะ: วงจรจะถูกดำเนินการจนกว่าค่า True จะถูกส่งไปยังอินพุตเงื่อนไขการสิ้นสุด

บทที่ 3 ประเภทการแข่งขันหลักและองค์ประกอบของงาน 245 100 25 + 18 =

จงหาความเร็วของล้อซ้าย: V1=58

หากต้องการใช้อัลกอริธึม ให้ติดตั้งเซ็นเซอร์อัลตราโซนิกด้านหน้าหุ่นยนต์ที่อยู่ตรงกลางและเชื่อมต่อกับพอร์ต 4

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

งานสำหรับงานอิสระ

ตั้งโปรแกรมเส้นทาง:

ก) หลีกเลี่ยงอุปสรรคหลายอย่างที่มีรัศมีเท่ากัน

b) หลีกเลี่ยงสิ่งกีดขวางที่มีรัศมีต่างกัน

c) ขี่เป็นรูปแปด

บทที่ 3 ประเภทการแข่งขันหลักและองค์ประกอบของงาน 275 รูปที่ 3

5.3.2. โปรแกรมสำหรับการขับเคลื่อนวิถีการเคลื่อนที่แบบผกผัน บทที่ 3 ประเภทการแข่งขันหลักและองค์ประกอบของงาน 285 รูปที่ 3.6.5 โปรแกรมสำหรับค้นหาเป้าหมายในเขาวงกต หลักสูตรการเขียนโปรแกรมหุ่นยนต์ Lego Mindstorms EV3 ในสภาพแวดล้อม EV3

บทที่ 5 การใช้บุคคลที่สาม

เซ็นเซอร์

นอกจากเซ็นเซอร์ที่รวมอยู่ในชุดอุปกรณ์สำหรับบ้านหรือการศึกษา Lego Mindstorms EV3 ของ Lego Mindstorms แล้ว ยังสามารถทำได้อีกด้วย การได้มาเพิ่มเติมเซ็นเซอร์ Lego และเซ็นเซอร์ที่ผ่านการรับรอง Lego จาก HiTechnic

HiTechnic ผลิตเซ็นเซอร์จำนวนมากสำหรับ LEGO Mindstorms ซึ่งส่วนใหญ่ได้รับการรับรองโดย LEGO ซึ่งยืนยันความเข้ากันได้เต็มรูปแบบ คุณภาพระดับสูง และมาตรฐานความปลอดภัย

ปัจจัยสำคัญที่ทำให้สามารถใช้เซ็นเซอร์เหล่านี้เมื่อทำงานกับเด็กคือการมีใบรับรอง RoHS (ข้อจำกัดของสารอันตราย) ซึ่งยืนยันว่าไม่มีการใช้สารในอุปกรณ์ไฟฟ้าและอิเล็กทรอนิกส์: ตะกั่ว ปรอท แคดเมียม ดีบุก โครเมียมเฮกซาวาเลนต์ และสารประกอบโบรไมด์บางชนิด สำหรับรายการเซ็นเซอร์ที่ได้รับการรับรองจาก Lego ในปัจจุบัน โปรดไปที่ www.hitechnic.com/sensors

ที่มีอยู่ในปัจจุบัน: เซ็นเซอร์มุมการหมุน;

แรงที่กระทำในแนวขวางกับแกน เข็มทิศ; มาตรความเร่ง;

ไจโรสโคป; เครื่องตรวจจับสนามแม่เหล็ก เซ็นเซอร์อินฟราเรด

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

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

ในบทที่สอง เราจะทำความคุ้นเคยกับสภาพแวดล้อมการเขียนโปรแกรมมากขึ้นและศึกษารายละเอียดคำสั่งที่กำหนดการเคลื่อนที่ของรถเข็นหุ่นยนต์ของเรา ซึ่งรวมอยู่ในบทเรียนแรก ดังนั้น มาเปิดตัวสภาพแวดล้อมการเขียนโปรแกรม Lego mindstorms EV3 โหลดโปรเจ็กต์ Lessons.ev3 ที่สร้างไว้ก่อนหน้านี้ และเพิ่มลงในโปรเจ็กต์ โปรแกรมใหม่- บทเรียน-2-1. คุณสามารถเพิ่มโปรแกรมได้สองวิธี:

  • เลือกทีม "ไฟล์" - "เพิ่มโปรแกรม" (Ctrl+N).
  • คลิก "+" บนแท็บโปรแกรม

ข้าว. 1

2.1. จานสีการเขียนโปรแกรมและบล็อคโปรแกรม

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

จานสีเขียวเรียกว่า: "การกระทำ":

ข้าว. 2

แผงนี้มีบล็อกซอฟต์แวร์สำหรับควบคุมมอเตอร์ บล็อกแสดงผล และบล็อกควบคุมสำหรับตัวบ่งชี้สถานะของโมดูล ตอนนี้เราจะเริ่มศึกษาบล็อคโปรแกรมเหล่านี้

2.2. จานสีเขียว - บล็อกการกระทำ

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

ข้าว. 3

สำหรับ การตั้งค่าที่ถูกต้องหน่วยควบคุมสำหรับมอเตอร์ขนาดใหญ่เราต้อง:

  1. เลือกพอร์ตที่มอเตอร์เชื่อมต่ออยู่ (A, B, C หรือ D) (รูปที่ 3 รายการที่ 1)
  2. เลือกโหมดการทำงานของมอเตอร์ (รูปที่ 3 รายการที่ 2)
  3. กำหนดค่าพารามิเตอร์ของโหมดที่เลือก (รูปที่ 3 รายการที่ 3)

โหมดต่างกันอย่างไร? โหมด: "เปิด"เปิดมอเตอร์ด้วยพารามิเตอร์ที่กำหนด "พลัง"และหลังจากนั้นการควบคุมจะถูกโอนไปยังบล็อกโปรแกรมถัดไปของโปรแกรม มอเตอร์จะหมุนต่อไปจนกว่าจะหยุดโดยบล็อกถัดไป “บิ๊กมอเตอร์”กับระบอบการปกครอง "ปิดสวิตช์"หรือบล็อกถัดไป “บิ๊กมอเตอร์”จะไม่มีพารามิเตอร์การดำเนินการอื่นๆ โหมด "เปิดใช้งานเป็นเวลาหลายวินาที"จะเปิดมอเตอร์ขนาดใหญ่ด้วยกำลังที่ตั้งไว้ตามจำนวนวินาทีที่กำหนด และหลังจากหมดเวลาที่กำหนดเท่านั้น มอเตอร์จะหยุดและการควบคุมในโปรแกรมจะเคลื่อนไปยังบล็อกโปรแกรมถัดไป มอเตอร์จะทำงานคล้ายกันในโหมดต่างๆ “เปิดตามจำนวนองศา”และ "เปิดใช้งานตามจำนวนการปฏิวัติ": หลังจากหมุนมอเตอร์ตามที่กำหนดแล้วเท่านั้น มอเตอร์จะหยุดและการควบคุมในโปรแกรมจะย้ายไปยังบล็อกถัดไป

พารามิเตอร์กำลัง (ในรูปที่ 3 กำลังตั้งไว้ที่ 75) สามารถรับค่าได้ตั้งแต่ -100 ถึง 100 ค่ากำลังบวกตั้งค่ามอเตอร์ให้หมุนตามเข็มนาฬิกา ค่าลบตั้งค่ามอเตอร์ให้หมุนทวนเข็มนาฬิกา ที่ค่ากำลังเป็น 0 มอเตอร์จะไม่หมุน ยิ่งค่ากำลัง "สูง" มอเตอร์ก็จะหมุนเร็วขึ้นเท่านั้น

พารามิเตอร์กำลังระบุเป็นค่าจำนวนเต็มเท่านั้น พารามิเตอร์: วินาที, องศา, การปฏิวัติสามารถรับค่าที่มีเศษส่วนทศนิยม แต่โปรดจำไว้ว่าขั้นตอนการหมุนมอเตอร์ขั้นต่ำคือหนึ่งองศา

ควรกล่าวถึงเป็นพิเศษเกี่ยวกับพารามิเตอร์ “เบรกท้าย”. พารามิเตอร์นี้ หากตั้งค่าเป็น "เบรก"ทำให้มอเตอร์ช้าลงหลังจากดำเนินการคำสั่ง และหากตั้งค่าเป็น "โอเวอร์รัน"จากนั้นมอเตอร์จะหมุนตามความเฉื่อยจนกระทั่งหยุด

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

ข้าว. 4

พารามิเตอร์ "พวงมาลัย" (ข้าว. 4 ตำแหน่ง 2) สามารถรับค่าได้ตั้งแต่ -100 ถึง 100 ค่าลบของพารามิเตอร์ทำให้หุ่นยนต์เลี้ยวซ้าย ค่า 0 ทำให้หุ่นยนต์เคลื่อนที่ตรง และค่าบวกทำให้หุ่นยนต์เลี้ยวขวา ลูกศรเหนือพารามิเตอร์ตัวเลขจะเปลี่ยนการวางแนวขึ้นอยู่กับค่า ดังนั้นจึงระบุทิศทางการเคลื่อนที่ของหุ่นยนต์ ( ข้าว. 5).

ข้าว. 5

บล็อกโปรแกรม “ควบคุมมอเตอร์อิสระ”ดูเหมือนบล็อกซอฟต์แวร์ "พวงมาลัย". มันยังควบคุมมอเตอร์ขนาดใหญ่สองตัวแทน "พวงมาลัย"สามารถควบคุมพลังของมอเตอร์แต่ละตัวได้อย่างอิสระ โดยมีค่าพารามิเตอร์เท่ากัน "พลัง"สำหรับมอเตอร์ซ้ายและขวา หุ่นยนต์จะเคลื่อนที่เป็นเส้นตรง หากคุณใช้ค่ากำลังลบกับมอเตอร์ตัวหนึ่ง (เช่น -50) และค่าบวกกับมอเตอร์ตัวที่สอง (เช่น 50) หุ่นยนต์จะหมุนเข้าที่ ( ข้าว. 6).

ข้าว. 6

โหมดการทำงานของหน่วยเหล่านี้จึงคล้ายกับโหมดการทำงานของชุดควบคุมมอเตอร์ตัวเดียว คำอธิบายเพิ่มเติมไม่ต้องการ...

2.3. การเคลื่อนที่เป็นเส้นตรง หมุน หมุน และหยุด

ตอนนี้เราสามารถเขียนโปรแกรมให้หุ่นยนต์เคลื่อนที่ไปตามเส้นทางใดก็ได้

ภารกิจที่ 1:ขับตรงไปข้างหน้าเพื่อรอบเครื่องยนต์ 4 รอบ หันหลังกลับ ขับ 720 องศา

สารละลาย ( ข้าว. 7):

  1. ใช้บล็อกซอฟต์แวร์ "พวงมาลัย" ขับไปข้างหน้า 4 รอบ
  2. ใช้บล็อกซอฟต์แวร์ "ควบคุมมอเตอร์อิสระ" หมุนกลับจุดนั้น (จะต้องเลือกค่าระดับในการทดลอง)
  3. ใช้บล็อกซอฟต์แวร์ "พวงมาลัย" ขับไปข้างหน้า 720 องศา

หมายเหตุ: เหตุใดฉันจึงต้องเลือกค่าองศาเมื่อทำการเลี้ยว? บล็อก 2?. ไม่ใช่ 360 องศา - ค่าที่ต้องการ? ไม่ใช่ถ้าเราตั้งค่าพารามิเตอร์ "ปริญญา"เท่ากัน 360 จากนั้นเราจะบังคับเพลาของมอเตอร์ซ้ายและขวาของหุ่นยนต์ให้หมุนตามจำนวนที่ต้องการ มุมที่หุ่นยนต์หมุนรอบแกนจะขึ้นอยู่กับขนาด (เส้นผ่านศูนย์กลาง) ของล้อและระยะห่างระหว่างล้อ บน ข้าว. 7ค่าพารามิเตอร์ "ปริญญา"เท่ากับ 385 . ค่านี้ช่วยให้หุ่นยนต์ประกอบตามคำแนะนำได้ หุ่นยนต์ตัวเล็ก 45544หมุนรอบแกนของมัน หากคุณมีหุ่นยนต์ตัวอื่น คุณจะต้องเลือกค่าอื่น ค่านี้สามารถหาได้ทางคณิตศาสตร์หรือไม่? เป็นไปได้ แต่เราจะพูดถึงเรื่องนี้ในภายหลัง


ข้าว. 7

ภารกิจที่ 2:วางสิ่งกีดขวาง (กระป๋อง ลูกบาศก์ กล่องเล็ก) ลงบนพื้นผิวเรียบและทำเครื่องหมายจุดเริ่มต้นสำหรับหุ่นยนต์ของคุณ สร้างโปรแกรมใหม่ในโครงการ: บทที่ 2-2 ซึ่งให้หุ่นยนต์ขับผ่านสิ่งกีดขวางและกลับไปยังจุดเริ่มต้น

คุณใช้บล็อกซอฟต์แวร์จำนวนเท่าใด แบ่งปันความสำเร็จของคุณในความคิดเห็นต่อบทเรียน...

2.4. หน้าจอ เสียง ไฟแสดงสถานะโมดูล

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

ข้าว. 8

บล็อกโปรแกรม "หน้าจอ"มีโหมดการทำงานสี่โหมด: โหมด "ข้อความ"ช่วยให้คุณแสดงสตริงข้อความบนหน้าจอโหมด "รูปร่าง"ช่วยให้คุณแสดงหนึ่งในสี่รูปทรงเรขาคณิตบนหน้าจอ (เส้นตรง วงกลม สี่เหลี่ยม จุด) โหมด "ภาพ"สามารถแสดงภาพหนึ่งภาพบนหน้าจอได้ คุณสามารถเลือกภาพจากคอลเลกชันภาพที่หลากหลายหรือวาดภาพของคุณเองโดยใช้โปรแกรมแก้ไขภาพ โหมด "หน้าต่างรีเซ็ตการตั้งค่า"รีเซ็ตหน้าจอ EV3 Brick ให้เป็นหน้าจอข้อมูลมาตรฐานที่แสดงในขณะที่โปรแกรมกำลังทำงาน

ข้าว. 9

ลองดูที่พารามิเตอร์ของบล็อกโปรแกรม "หน้าจอ"อยู่ในโหมด "ข้อความ" (รูปที่ 9 รายการที่ 1). สตริงที่ต้องการให้แสดงบนหน้าจอถูกป้อนลงในฟิลด์พิเศษ (รูปที่ 9 รายการที่ 2). ขออภัย คุณสามารถป้อนได้เฉพาะตัวอักษรละติน ตัวเลข และเครื่องหมายวรรคตอนในช่องป้อนข้อความเท่านั้น ถ้าโหมด "ล้างหน้าจอ"ตั้งค่าเป็นค่า "จริง"หน้าจอจะถูกล้างก่อนแสดงข้อมูล ดังนั้นหากคุณต้องการรวมเอาต์พุตปัจจุบันเข้ากับข้อมูลที่มีอยู่แล้วบนหน้าจอ ให้ตั้งค่าโหมดนี้เป็น "โกหก". โหมด "เอ็กซ์"และ "ย"กำหนดจุดบนหน้าจอที่เอาต์พุตข้อมูลเริ่มต้น หน้าจอ EV3 Brick กว้าง 178 พิกเซล (จุด) และสูง 128 พิกเซล โหมด "เอ็กซ์"สามารถรับค่าได้ตั้งแต่ 0 ถึง 177 โหมด "ย"สามารถรับค่าได้ตั้งแต่ 0 ถึง 127 จุดซ้ายบนมีพิกัด (0, 0) มุมขวาล่าง (177, 127)

ข้าว. 10

ขณะตั้งค่าบล็อคโปรแกรม "หน้าจอ"คุณสามารถเปิดโหมดได้ ดูตัวอย่าง (รูปที่ 9 รายการที่ 3)และประเมินผลลัพธ์ของการตั้งค่าเอาต์พุตข้อมูลด้วยสายตา

ในโหมด "รูปร่าง" (รูปที่ 11 รายการที่ 1)) การตั้งค่าของบล็อกโปรแกรมจะแตกต่างกันไปขึ้นอยู่กับประเภทของรูปภาพ ดังนั้นเมื่อแสดงวงกลมคุณจะต้องระบุพิกัด "เอ็กซ์"และ "ย"จุดศูนย์กลางของวงกลมตลอดจนค่า "รัศมี". พารามิเตอร์ "เติม" (รูปที่ 11 รายการที่ 2)มีหน้าที่รับผิดชอบในความจริงที่ว่าจะแสดงโครงร่างของรูปภาพหรือพื้นที่ภายในของรูปภาพจะเต็มไปด้วยสีที่ระบุในพารามิเตอร์ "สี" (รูปที่ 11 รายการที่ 3).

ข้าว. สิบเอ็ด

ในการแสดงเส้นตรง คุณต้องระบุพิกัดของจุดสุดขั้วสองจุดที่เส้นตรงตั้งอยู่

ข้าว. 12

หากต้องการแสดงสี่เหลี่ยม คุณต้องระบุพิกัด "เอ็กซ์"และ "ย"มุมซ้ายบนของสี่เหลี่ยมเช่นเดียวกับมัน "ความกว้าง"และ "ความสูง".

ข้าว. 13

การแสดงจุดเป็นวิธีที่ง่ายที่สุด! เพียงระบุพิกัดของมัน "เอ็กซ์"และ "ย"

โหมด "ภาพ"น่าจะเป็นโหมดที่น่าสนใจและใช้งานมากที่สุด ช่วยให้คุณสามารถแสดงภาพบนหน้าจอได้ สภาพแวดล้อมการเขียนโปรแกรมประกอบด้วยไลบรารีรูปภาพขนาดใหญ่ จัดเรียงตามหมวดหมู่ นอกเหนือจากรูปภาพที่มีอยู่แล้ว คุณสามารถสร้างภาพวาดของคุณเองได้เสมอ และโดยการแทรกลงในโปรเจ็กต์ ก็สามารถแสดงมันบนหน้าจอได้ ("เมนูหลักของสภาพแวดล้อมการเขียนโปรแกรม" - "เครื่องมือ" - "โปรแกรมแก้ไขรูปภาพ"). เมื่อสร้างภาพ คุณยังสามารถแสดงตัวอักษรของตัวอักษรรัสเซียได้

ข้าว. 14

อย่างที่คุณเห็น สภาพแวดล้อมการเขียนโปรแกรมให้ความสำคัญกับการแสดงข้อมูลบนหน้าจอของ EV3 Main Brick เป็นอย่างมาก มาดูบล็อคโปรแกรมที่สำคัญต่อไปนี้กัน "เสียง". เมื่อใช้บล็อกนี้ เราสามารถส่งออกไฟล์เสียง โทนเสียงของระยะเวลาและความถี่ที่กำหนดเอง รวมถึงโน้ตดนตรีไปยังลำโพงในตัวของบล็อก EV3 มาดูการตั้งค่าบล็อกโปรแกรมในโหมดกันดีกว่า "เล่นโทน" (รูปที่ 15). ในโหมดนี้คุณต้องตั้งค่า "ความถี่"โทนเสียง (รูปที่ 15 รายการที่ 1), "ระยะเวลา"เสียงในไม่กี่วินาที (รูปที่ 15 รายการที่ 2)ตลอดจนระดับเสียงด้วย (รูปที่ 15 รายการที่ 3).

ข้าว. 15

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

ข้าว. 16

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

ข้าว. 17

ลองดูที่พารามิเตอร์แยกกัน "ประเภทการเล่น" (รูปที่ 17 รายการที่ 2)ทั่วไปในทุกโหมดของบล็อกโปรแกรม "เสียง". ถ้า พารามิเตอร์นี้ตั้งค่าเป็นค่า “รอจนเสร็จ”จากนั้นการควบคุมจะถูกถ่ายโอนไปยังบล็อกโปรแกรมถัดไปหลังจากเล่นไฟล์เสียงหรือไฟล์เสียงเสร็จสมบูรณ์แล้วเท่านั้น หากคุณตั้งค่าค่าใดค่าหนึ่งในสองค่าต่อไปนี้ เสียงจะเริ่มเล่นและการควบคุมในโปรแกรมจะย้ายไปยังบล็อกโปรแกรมถัดไป เฉพาะเสียงหรือไฟล์เสียงเท่านั้นที่จะเล่นได้ครั้งเดียวหรือจะเล่นซ้ำจนกว่าจะหยุดโดยบล็อกโปรแกรมอื่น "เสียง".

เราเพียงแค่ต้องทำความคุ้นเคยกับบล็อกโปรแกรมสุดท้ายของจานสีเขียว - บล็อก มีตัวบ่งชี้สีติดอยู่รอบๆ ปุ่มควบคุมโมดูล EV3 ซึ่งสามารถเรืองแสงได้หนึ่งในสามสี: สีเขียว, ส้มหรือ สีแดง. โหมดที่เกี่ยวข้องมีหน้าที่เปิดและปิดการแสดงสี (รูปที่ 18 รายการที่ 1). พารามิเตอร์ "สี"ตั้งค่าการออกแบบสีของตัวบ่งชี้ (รูปที่ 18 รายการที่ 2). พารามิเตอร์ "แรงกระตุ้น"รับผิดชอบในการเปิด/ปิดโหมดการกะพริบแสดงสี (รูปที่ 18 รายการที่ 3). คุณสามารถใช้การระบุสีได้อย่างไร? ตัวอย่างเช่น คุณสามารถใช้สัญญาณสีที่แตกต่างกันระหว่างโหมดการทำงานที่แตกต่างกันของหุ่นยนต์ สิ่งนี้จะช่วยให้เราเข้าใจว่าโปรแกรมกำลังดำเนินการตามที่เราวางแผนไว้หรือไม่

ข้าว. 18

เรามานำความรู้นี้ไปปฏิบัติและทำให้โปรแกรมของเรามีสีสันจากภารกิจที่ 1 กันสักหน่อย

ภารกิจที่ 3:

  1. เล่นสัญญาณ "เริ่ม"
  2. เปิดใช้งานการแสดงสีที่ไม่กะพริบเป็นสีเขียว
  3. "ซึ่งไปข้างหน้า"
  4. ขับตรงไปข้างหน้าเพื่อรอบเครื่องยนต์ 4 รอบ
  5. เปิดใช้งานการแสดงสีส้มกะพริบ
  6. หันหลังกลับ
  7. เปิดใช้งานการแสดงสีกะพริบสีเขียว
  8. แสดงภาพบนหน้าจอ "ย้อนกลับ"
  9. ขับ 720 องศา
  10. เล่นสัญญาณ "หยุด"

พยายามแก้ไขปัญหา 3 ด้วยตัวเองโดยไม่ต้องดูวิธีแก้ปัญหา! ขอให้โชคดี!

บล็อกโปรแกรมของแผง "การดำเนินการ" ได้ถูกกล่าวถึงในส่วนก่อนหน้าของการตรวจสอบ และในบทความนี้ ฉันจะพูดถึงบล็อกจากแท็บ "การจัดการผู้ปฏิบัติงาน"

บล็อกเหล่านี้สามารถแสดงเป็น "ตัวควบคุม" ของโปรแกรม: พวกเขาจะสั่งให้หยุดและดำเนินการเคลื่อนไหวของโปรแกรมต่อไป ย้ายไปยังสาขาถัดไป หรือไปเป็นวงกลม

เมื่อเปรียบเทียบกับ NXT มีการเพิ่มบล็อกใหม่ 2 บล็อก:

  • เริ่มต้น - ใน NXT จุดเริ่มต้นของโปรแกรมเป็นแบบเดียวกันและถูกตั้งค่าทันทีเมื่อเปิดโปรแกรม
  • การขัดจังหวะวงจร - ไม่มีการบล็อกดังกล่าวใน NXT หากจำเป็นต้องใช้ฟังก์ชันที่คล้ายกัน เราก็ต้องใช้ตัวแปร
รายการชุดควบคุมผู้ปฏิบัติงานทั่วไปมีลักษณะดังนี้:
  • เริ่ม
  • ความคาดหวัง
  • สวิตช์
  • ขัดจังหวะวงจร


บล็อก "เริ่มต้น"

คุณอาจสังเกตเห็นว่าบล็อกแรกของโปรแกรม EV3 ทั้งหมดคือบล็อกที่มีลูกศรสีเขียว บล็อกนี้คือ "เริ่มต้น" ไม่ใช่โปรแกรมเดียวที่สามารถทำได้หากไม่มีมัน - นี่คือจุดเริ่มต้นของการดำเนินการคำสั่ง หากคุณไม่ใส่ "Start" ไว้หน้าลำดับบล็อก โปรแกรมดังกล่าวจะไม่ถูกดำเนินการ
ตัวอย่างเช่น ตามโปรแกรมที่นำเสนอด้านล่าง หุ่นยนต์จะหมุนรอบแกน (ลำดับด้านบนของการกระทำจะดำเนินการ) แต่จะไม่เล่นไฟล์เสียงและทำให้ปุ่มสว่างขึ้น (ลำดับล่างที่ไม่มีบล็อก "Start" คือ ไม่ทำงาน):

EV3 รองรับการทำงานหลายอย่างพร้อมกัน เช่น โปรแกรมสามารถมีลำดับคำสั่งได้มากกว่าหนึ่งลำดับ นอกจากนี้ ลำดับเหล่านี้อาจมีบล็อก "Start" ของตัวเองหรือออกมาจากบล็อก "Start" อันเดียว:


ลำดับดังกล่าวทั้งหมดจะดำเนินการพร้อมกัน

โปรดทราบว่าลูกศรสีเขียวบนบล็อกไม่ใช่องค์ประกอบตกแต่ง หากเครื่องเชื่อมต่อกับคอมพิวเตอร์ (ไม่ว่าจะด้วยวิธีใด: ผ่าน usb, wi-fi หรือบลูทูธ) การคลิกที่ลูกศรจะเป็นการเปิดลำดับนี้เพื่อดำเนินการ

บล็อก "รอ"

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


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

โปรแกรมที่สองเป็นจุดเริ่มต้นของโซลูชันแบบคลาสสิกในการแข่งขัน Kegelring โดยหุ่นยนต์จะหมุนรอบแกนของมันจนกระทั่งเห็นกระป๋องอยู่ข้างหน้า:

โปรแกรมต่อไปนี้จะเปิดมอเตอร์ A และหลังจากหมุนครบ 5 รอบแล้ว ให้ปิด:

การทำงานของเครื่องนี้มีบลูทูธไม่แตกต่างจากการทำงานกับเซ็นเซอร์ใดๆ ตัวอย่างเช่น โปรแกรมต่อไปนี้รอข้อความ "HI" จากนั้นเปลี่ยนไฟแบ็คไลท์เป็นสีเขียวและเล่นไฟล์เสียง:

บล็อก "วงจร"

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

  • Unlimited - ลูปนี้จะทำงานจนกว่าโปรแกรมจะถูกบังคับให้ยุติ
  • การนับ - การวนซ้ำจะทำซ้ำตามจำนวนครั้งที่ระบุ
  • ค่าบูลีน - การวนซ้ำจะวนซ้ำจนกว่าค่าที่กำหนดจะเป็นจริง
  • เวลา - วงจรจะทำซ้ำตามเวลาที่กำหนด
  • การอ่านเซ็นเซอร์:
    • การเปรียบเทียบ - วงจรจะทำซ้ำจนกว่าเซ็นเซอร์จะยอมรับค่าที่ระบุ
    • เปลี่ยน - วงจรจะทำซ้ำจนกว่าการอ่านเซ็นเซอร์จะเปลี่ยนตามจำนวนที่ระบุเมื่อเปรียบเทียบกับค่าเริ่มต้น
ชื่อของลูปเขียนไว้เหนือบล็อก - 01, 02, .... ชื่อนี้สามารถใช้ในบล็อกขัดจังหวะลูปได้ซึ่งจะอธิบายในภายหลัง
ลองดูตัวอย่าง ตามโปรแกรมนี้ หุ่นยนต์จะขับตรงและหมุนจนกระทั่งโปรแกรมหยุด (ใช้วงวนไม่มีที่สิ้นสุด):

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

Counter Loop ช่วยให้คุณสามารถเล่นโน้ตได้ 10 ครั้ง:

เมื่อใช้โหมดค่าตรรกะ คุณจะต้องใช้บล็อกการสำรวจเซ็นเซอร์ที่ยังไม่ได้สำรวจ โปรแกรมนี้บังคับให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าจนกระทั่งมองเห็นวัตถุที่ระยะห่างน้อยกว่า 20 ซม. (บล็อกแรกของวงจร) หรือชนสิ่งกีดขวางด้วยเซ็นเซอร์สัมผัส (บล็อกที่สองของวงจร) ผลลัพธ์ การดำเนินการเชิงตรรกะ"OR" ให้บล็อกที่สามของการวนซ้ำ:


บล็อก "สวิตช์"

มีบล็อกที่คล้ายกันใน NXT ซึ่งอนุญาตให้ดำเนินการได้ ขึ้นอยู่กับค่าของตัวแปรหรือการอ่านเซ็นเซอร์ ลำดับที่แตกต่างกันการกระทำ
หลังจากเสร็จสิ้นลำดับการดำเนินการนี้แล้ว โปรแกรมจะดำเนินการบล็อกที่อยู่ถัดจาก "สวิตช์"
โหมดของบล็อกนี้จะกำหนดว่าจะใช้เซ็นเซอร์หรือค่าตัวแปรใด โหมดเดียวกันทั้งหมดถูกใช้เป็นบล็อก "วงจร": คุณสามารถใช้เซ็นเซอร์ใดก็ได้ (สี, ไจโรสโคปิก, อินฟราเรด, อัลตราโซนิก, การหมุนของมอเตอร์และอื่น ๆ ) ตัวเลขหรือ ค่าข้อความ, ข้อความบลูทูธ
ตัวอย่างเช่น ตามโปรแกรมนี้ หุ่นยนต์จะหมุนรอบแกนของมันก่อนเป็นจำนวน 5 รอบของมอเตอร์ จากนั้นจึงเคลื่อนที่ไปข้างหน้าหรือข้างหลัง ขึ้นอยู่กับการอ่านของเซนเซอร์ไจโรสโคป หากมุมที่ไจโรสโคปตรวจพบน้อยกว่า 90 องศา หุ่นยนต์จะเคลื่อนที่ไปข้างหน้า ถ้ามุมน้อยกว่า 90 องศา หุ่นยนต์จะถอยหลัง

โปรแกรมต่อไปนี้เป็นการใช้งานตัวควบคุมรีเลย์อย่างง่ายสำหรับการขับตามเส้นสีดำ:

ในทั้งสองตัวอย่างก่อนหน้านี้ บล็อก "สวิตช์" มีเพียง 2 ตัวเลือกสำหรับการพัฒนากิจกรรม แต่ในความเป็นจริงแล้วบล็อกนี้อาจมีตัวเลือกมากกว่านี้ ตัวอย่างเช่น หากหุ่นยนต์กำหนดสีของวัตถุ ก็สามารถเลือกได้จากตัวเลือกจำนวนมาก:


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

ปุ่มที่สลับระหว่างโหมดเรียบ/รายละเอียดจะอยู่ในวงกลมสีแดง

บล็อก "วงจรขัดจังหวะ"

บล็อกนี้เป็นบล็อกใหม่ ไม่มีบล็อกที่คล้ายกันใน NXT อนุญาตให้คุณออกจากลูป - บล็อกที่เหลือของลูปจะไม่ถูกดำเนินการ และโปรแกรมจะย้ายไปยังบล็อกหลังลูป "ส่วนหัว" ของบล็อกระบุชื่อของรอบที่ต้องดำเนินการให้เสร็จสิ้น
ตัวอย่างเช่น วงจรในโปรแกรมควรจะทำซ้ำ 5 ครั้ง แต่ถ้าระยะห่างจากวัตถุมากกว่า 50 เซนติเมตร วงจรจะออกก่อนและหุ่นยนต์จะเล่นเสียง:

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

สวัสดี ในบทความของฉัน ฉันอยากจะแนะนำให้คุณรู้จักกับพื้นฐานของการเขียนโปรแกรมไมโครคอมพิวเตอร์ LEGO NXT Mindstorms 2.0 สำหรับการพัฒนาแอพพลิเคชั่น ฉันจะใช้ แพลตฟอร์มของไมโครซอฟต์ Robotics Developer Studio 4 (MRDS 4) และ National Instruments LabVIEW (NI LabVIEW) งานการควบคุมหุ่นยนต์เคลื่อนที่อัตโนมัติและอัตโนมัติจะได้รับการพิจารณาและนำไปใช้ เราจะย้ายจากง่ายไปซับซ้อน

คาดว่าจะมีคำถามและความคิดเห็นจากผู้อ่าน

ทำไมต้อง NXT Mindstorms 2.0?เพราะสำหรับโครงการของพวกเขา ชุดนี้ดูเหมือนว่าฉันจะเหมาะสมที่สุดเพราะว่า ไมโครคอมพิวเตอร์ NXT เข้ากันได้อย่างสมบูรณ์กับแพลตฟอร์ม MRDS 4 และ NI LabVIEW และชุดนี้ยังมีความยืดหยุ่นมากในแง่ของการประกอบโครงร่างหุ่นยนต์ต่างๆ โดยใช้เวลาขั้นต่ำในการประกอบหุ่นยนต์

ทำไมต้องใช้แพลตฟอร์ม MRDS 4 และ NI LabVIEWนี่คือสิ่งที่เกิดขึ้นในอดีต ในขณะที่เรียนอยู่ชั้นปีสุดท้ายที่มหาวิทยาลัย ภารกิจคือการพัฒนา หลักสูตรการฝึกอบรมโดยใช้แพลตฟอร์มเหล่านี้ นอกจากนี้ แพลตฟอร์มยังค่อนข้างง่ายต่อการเรียนรู้และใช้งานได้ คุณสามารถเขียนโปรแกรมได้โดยตรงเพื่อควบคุมหุ่นยนต์ พัฒนาส่วนต่อประสานกับผู้ใช้ และดำเนินการทดสอบในสภาพแวดล้อมเสมือนจริง (ในกรณีของ MRDS 4)

ใครต้องการบทเรียนเหล่านี้จากคุณล่ะ มีโครงการหุ่นยนต์มากมายบนอินเทอร์เน็ตแล้ว!ในทางปฏิบัติไม่มีบทความทางการศึกษาที่ใช้ชุดค่าผสมนี้ (NXT+MRDS 4/NI LabVIEW) โดยส่วนใหญ่จะใช้สภาพแวดล้อมการเขียนโปรแกรมแบบเนทีฟ และทุกอย่างในนั้นก็ไม่สำคัญเลย ใครที่สนใจเรื่องหุ่นยนต์ การเขียนโปรแกรม และผู้ที่มีชุด NXT (และมีค่อนข้างน้อย) ผู้ชมทุกวัย

ภาษาการเขียนโปรแกรมแบบกราฟิกนั้นชั่วร้ายและผู้ที่เขียนโปรแกรมในภาษานั้นก็เป็นคนนอกรีต!ภาษาโปรแกรมกราฟิกคือ MRDS 4 และ NI LabVIEW ไม่ต้องสงสัยเลยว่ามีข้อเสียอยู่ เช่น เน้นไปที่งานแคบๆ แต่ยังคงมีฟังก์ชันการใช้งานไม่ด้อยกว่าภาษาข้อความมากนัก โดยเฉพาะอย่างยิ่งเมื่อ NI LabVIEW เดิมได้รับการพัฒนาเป็น ภาษาง่าย ๆในการเรียนรู้การแก้ปัญหาทางวิทยาศาสตร์และวิศวกรรมศาสตร์ ด้วยเหตุนี้จึงมีห้องสมุดและเครื่องมือที่จำเป็นมากมาย ดังนั้นภาษากราฟิกเหล่านี้จึงเหมาะสมที่สุดสำหรับการแก้ปัญหาของเรา และคุณไม่จำเป็นต้องเผาเราเป็นเดิมพันในเรื่องนี้

ทั้งหมดนี้ดูเด็กและไม่จริงจังเลย!เมื่องานคือการนำอัลกอริธึมไปใช้ สอนพื้นฐานและหลักการเขียนโปรแกรม หุ่นยนต์ ระบบเรียลไทม์โดยไม่ต้องเจาะลึกเกี่ยวกับวงจรและโปรโตคอล นี่เป็นเครื่องมือที่เหมาะสมมาก แม้ว่าจะไม่ถูกก็ตาม (เกี่ยวกับชุด NXT) แม้ว่าจะมีจุดประสงค์เดียวกัน แต่ชุดสำหรับ ใช้ Arduinoแต่คอนโทรลเลอร์นี้แทบจะไม่เข้ากันได้กับ MRDS 4 และ NI LabVIEW และแพลตฟอร์มเหล่านี้ก็มีเสน่ห์ในตัวเอง

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

ภาพรวมโดยย่อของแพลตฟอร์ม MRDS 4 และ NI LabVIEW

ให้ฉันอธิบายคำศัพท์บางอย่าง ตามแพลตฟอร์ม ในกรณีนี้ เราหมายถึงชุดเครื่องมือต่างๆ เช่น ภาษา VPL ใน MRDS รวมถึงสภาพแวดล้อมการดำเนินการแอปพลิเคชัน เช่น ไม่มีการรวบรวมแอปพลิเคชันโดยตรงลงในไฟล์ปฏิบัติการ (*.exe)

ในปี 2549 Microsoft ได้ประกาศการสร้างแพลตฟอร์ม สตูดิโอนักพัฒนาหุ่นยนต์ Microsoft(รายละเอียดเพิ่มเติมในบทความ Wikipedia) MRDS คือสภาพแวดล้อมการพัฒนาแอปพลิเคชันบน Windows สำหรับหุ่นยนต์และการจำลอง ที่เกี่ยวข้องในปัจจุบันคือ เวอร์ชั่นไมโครซอฟต์ Robotics Developer Studio 4 คุณสมบัติต่างๆ ได้แก่: ภาษาการเขียนโปรแกรมกราฟิก VPL, อินเทอร์เฟซบนเว็บและ Windows, สภาพแวดล้อมการจำลอง VSE, การเข้าถึงเซ็นเซอร์, ไมโครคอนโทรลเลอร์และแอคชูเอเตอร์หุ่นยนต์ที่ง่ายขึ้น, รองรับภาษาการเขียนโปรแกรม C#, ไลบรารีสำหรับการเขียนโปรแกรมแบบมัลติเธรดและการดำเนินการแบบกระจาย ของแอปพลิเคชัน CCR และ DSS รองรับแพลตฟอร์มหุ่นยนต์จำนวนมาก (Eddie, Boe - Bot, CoroBot, iRobot, LEGO NXT ฯลฯ)

LabVIEW (โต๊ะทำงานวิศวกรรมเครื่องมือเสมือนในห้องปฏิบัติการ)เป็นสภาพแวดล้อมการพัฒนาและแพลตฟอร์มสำหรับการรันโปรแกรมที่สร้างขึ้นในภาษาการเขียนโปรแกรมกราฟิก “G” จาก National Instruments (สำหรับรายละเอียดเพิ่มเติม ดูบทความ Wikipedia) LabVIEW ใช้ในระบบรับและประมวลผลข้อมูล รวมถึงการจัดการวัตถุทางเทคนิคและกระบวนการทางเทคโนโลยี ตามอุดมคติแล้ว LabVIEW อยู่ใกล้กับระบบ SCADA มาก แต่ต่างจากระบบเหล่านี้ตรงที่เน้นไปที่การแก้ปัญหาไม่มากนักในด้านระบบควบคุมกระบวนการอัตโนมัติ (ระบบควบคุมอัตโนมัติ) กระบวนการทางเทคโนโลยี) มีกี่แห่งในภูมิภาค ASNI ( ระบบอัตโนมัติการวิจัยทางวิทยาศาสตร์) ภาษาการเขียนโปรแกรมกราฟิก "G" ที่ใช้ใน LabVIEW นั้นมีพื้นฐานมาจากสถาปัตยกรรมการไหลของข้อมูล ลำดับการดำเนินการของตัวดำเนินการในภาษาดังกล่าวไม่ได้ถูกกำหนดตามลำดับที่ปรากฏ (เช่นเดียวกับในภาษาการเขียนโปรแกรมที่จำเป็น) แต่โดยการมีอยู่ของข้อมูลที่อินพุตของตัวดำเนินการเหล่านี้ ตัวดำเนินการที่ไม่เกี่ยวข้องกับข้อมูลจะถูกดำเนินการแบบขนานตามลำดับแบบสุ่ม โปรแกรม LabVIEW เรียกว่าและเป็นเครื่องมือเสมือน (อังกฤษ: Virtual Instrument) และประกอบด้วยสองส่วน:

  • แผนภาพบล็อกที่อธิบายตรรกะของเครื่องมือเสมือน
  • แผงด้านหน้าอธิบายอินเทอร์เฟซผู้ใช้ของเครื่องมือเสมือน

ดูชุด LEGO NXT Mindstorms 2.0 อย่างรวดเร็ว

ชุด NXT ประกอบด้วยชุดควบคุม เซ็นเซอร์ 4 ตัว และเซอร์โว 3 ตัว บล็อกควบคุมประกอบด้วย:
  • 32 บิต ไมโครคอนโทรลเลอร์ AVR 7 พร้อมหน่วยความจำ FLASH 256 KB และหน่วยความจำ RAM 64 KB;
  • ไมโครคอนโทรลเลอร์ AVR 8 บิตพร้อมหน่วยความจำ FLASH 4 KB และหน่วยความจำ RAM 512 ไบต์
  • โมดูลวิทยุ Bluetooth V 2.0;
  • ช่องเสียบยูเอสบี;
  • 3 ตัวเชื่อมต่อสำหรับเชื่อมต่อเซอร์โว
  • 4 ขั้วต่อสำหรับเชื่อมต่อเซ็นเซอร์
  • จอแสดงผล LCD ความละเอียด 99x63 พิกเซล;
  • ผู้พูด;
  • ขั้วต่อสำหรับแบตเตอรี่ AA จำนวน 6 ก้อน
เซ็นเซอร์ (ชุดเซ็นเซอร์ต่างๆ ที่มีจำหน่ายในรูปแบบต่างๆ):
  • เซ็นเซอร์อัลตราโซนิค
  • เซ็นเซอร์สัมผัสสองตัว (เซ็นเซอร์สัมผัส);
  • เซ็นเซอร์ตรวจจับสี


รูปที่ 1 - ไมโครคอมพิวเตอร์ NXT พร้อมเซ็นเซอร์และแอคทูเอเตอร์ที่เชื่อมต่อ

และแน่นอนว่า ชุดนี้ประกอบด้วยชิ้นส่วน LEGO หลากหลายรูปแบบในรูปแบบ LEGO Technic ซึ่งจะใช้ประกอบตัวกระตุ้นและโครงสร้างรองรับ


รูปที่ 2 - รายละเอียดในรูปแบบ LEGO Technic

เรากำลังเขียนแอปพลิเคชันแรก

มาเขียนแอปพลิเคชันแรกกัน ปล่อยให้คลาสสิก, แอปพลิเคชันนี้แสดงข้อความ "Hello, World!" การใช้งานจะเกิดขึ้นสลับกันใน MRDS 4 และ NI LabVIEW ในกระบวนการนี้เราจะพิจารณาถึงลักษณะเฉพาะของแต่ละแพลตฟอร์ม

ก่อนอื่นเราจะติดตั้งแพลตฟอร์ม MRDS 4 และ NI LabVIEW ในกรณีของ MRDS 4 การติดตั้งควรดำเนินการในโฟลเดอร์ที่เส้นทางไม่ประกอบด้วย Cyrillic (ตัวอักษรรัสเซีย) บัญชีชื่อผู้ใช้ควรประกอบด้วยตัวอักษรละตินเท่านั้น

1. แพลตฟอร์ม MRDS 4
เปิดใช้งานสภาพแวดล้อม VPL (เมนูเริ่ม - โปรแกรมทั้งหมด - Microsoft Robotics Developer Studio 4 - ภาษาการเขียนโปรแกรมภาพ) สภาพแวดล้อมแบบนี้ช่วยให้คุณสามารถพัฒนาแอปพลิเคชันในภาษา VPL และดำเนินการทดสอบในสภาพแวดล้อมเสมือน VSE โปรแกรม VPL เป็นแผนภาพที่ประกอบด้วยบล็อกที่เชื่อมต่อถึงกัน ในหน้าต่างที่เปิดขึ้น นอกเหนือจากแถบคำสั่งและเมนูมาตรฐานแล้ว ยังมีหน้าต่างหลัก 5 บาน:
  1. กิจกรรมพื้นฐาน – ประกอบด้วยบล็อกพื้นฐานที่ใช้ตัวดำเนินการ เช่น ค่าคงที่ ตัวแปร เงื่อนไข ฯลฯ
  2. บริการ – ประกอบด้วยบล็อกที่ให้การเข้าถึงฟังก์ชันการทำงานของแพลตฟอร์ม MRDS เช่น บล็อกสำหรับการโต้ตอบกับส่วนประกอบฮาร์ดแวร์ใด ๆ ของหุ่นยนต์ หรือบล็อกสำหรับการเรียกกล่องโต้ตอบ
  3. โครงการ – รวมไดอะแกรมที่รวมอยู่ในโครงการ เช่นเดียวกับไฟล์การกำหนดค่าต่างๆ
  4. คุณสมบัติ – มีคุณสมบัติของบล็อกที่เลือก
  5. หน้าต่างไดอะแกรม – มีไดอะแกรมโดยตรง ( แหล่งที่มา) แอปพลิเคชัน

รูปที่ 3 - สภาพแวดล้อมการเขียนโปรแกรม VPL

เรามาดำเนินการตามลำดับต่อไปนี้:

2. แพลตฟอร์ม NI LabVIEW
บนแพลตฟอร์มนี้ ทุกอย่างได้รับการปฏิบัติแทบจะเหมือนกัน มาเปิดตัวสภาพแวดล้อม LabVIEW กัน หน้าต่างสองบานจะปรากฏขึ้นต่อหน้าเรา หน้าต่างแรกคือ Front Panel ออกแบบมาเพื่อใช้ส่วนต่อประสานกับผู้ใช้ ( รูปร่างอุปกรณ์เสมือน) ตัวที่สองคือ Block Diagram สำหรับการนำลอจิกของโปรแกรมไปใช้


รูปที่ 8 - Windows สภาพแวดล้อม LabVIEW

เราจะใช้หน้าต่าง Block Diagram มาทำตามขั้นตอนต่อไปนี้:

สรุป

  • เราทำการตรวจสอบ แพลตฟอร์มซอฟต์แวร์สำหรับการพัฒนาแอปพลิเคชันไมโครคอมพิวเตอร์ NXT
  • เราพิจารณาหลักการพื้นฐานของการพัฒนาแอปพลิเคชันในแพลตฟอร์ม MRDS 4 และ NI LabVIEW
  • เราคุ้นเคยกับส่วนต่อประสานของสภาพแวดล้อม
ในบทความต่อไปนี้ เราจะพูดถึงการเขียนโปรแกรม NXT โดยตรง มีสื่อการฝึกอบรมออนไลน์มากมายสำหรับสภาพแวดล้อม LabVIEW แต่มีน้อยกว่ามากสำหรับ VPL ฉันขอแนะนำให้ศึกษาคู่มืออ้างอิงของทั้งสองแพลตฟอร์ม (ต้องมีความรู้ภาษาอังกฤษ) ในคู่มือเหล่านี้มีตัวอย่างมากมายที่สามารถนำไปใช้ได้โดยไม่ต้องมี NXT รวมถึงหนังสือต่อไปนี้:
  • การเขียนโปรแกรมไมโครคอมพิวเตอร์ NXT ใน LabVIEW - Lidiya Beliovskaya, Alexander Beliovsky,
  • สตูดิโอนักพัฒนาหุ่นยนต์ Microsoft การเขียนโปรแกรมอัลกอริธึมควบคุมหุ่นยนต์ - Vasily Gai
ในบทความของฉัน ฉันจะอธิบายเฉพาะโครงการของฉัน เพราะ... ฉันไม่เห็นประเด็นในการเขียนข้อมูลจากแหล่งหนึ่งไปอีกแหล่งหนึ่ง ฉันจะยอมรับคำวิจารณ์ที่สร้างสรรค์และตอบคำถามใด ๆ เกี่ยวกับแพลตฟอร์มที่ได้รับการตรวจสอบ ขอบคุณล่วงหน้า!

จุดสุดยอดของการสร้างสรรค์ของเลโก้คือการเปิดตัวชุดการก่อสร้างที่ตั้งโปรแกรมได้ LEGO Mindstorms Ev3 ของเล่นนี้มีไว้สำหรับเด็กอายุเกินสิบปี

ตอนนี้สามารถซื้อ Mindstorms ev3 ได้โดยไม่มีปัญหาในร้านค้าพิเศษหรือทางอินเทอร์เน็ต สามารถตั้งโปรแกรมให้ดำเนินการบางอย่างได้อย่างง่ายดาย

การตั้งค่าสภาพแวดล้อมการเขียนโปรแกรม

ก่อนที่คุณจะเริ่มเขียนคำสั่งสำหรับหุ่นยนต์ คุณต้องติดตั้งซอฟต์แวร์ก่อน

ข้อกำหนดของระบบพีซีสำหรับการทำงานกับ lego mindstorms ev3:

  • ระบบปฏิบัติการ Windows XP, 7, 8 หรือ MacO (10.6-10.8);
  • RAM 2GB และพื้นที่ดิสก์ 750 MB

เมื่อติดตั้งสภาพแวดล้อมโดยใช้ USB ให้เลือกเวอร์ชันของครูหรือนักเรียน

หลังการติดตั้ง เราจะสร้างโปรเจ็กต์ซึ่งจะแสดงเป็นโฟลเดอร์ ในแผงควบคุม เราเลือกสิ่งที่เราต้องการสร้าง โปรแกรม หรือดำเนินการทดลอง ขอแนะนำให้สร้างการทดลองเพื่อศึกษาประสิทธิภาพของเซ็นเซอร์

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

มีเมนูบนหน้าจอซึ่งประกอบด้วยแท็บต่างๆ:

  • การกระทำ;
  • การจัดการผู้ปฏิบัติงาน
  • เซ็นเซอร์;
  • การดำเนินงานข้อมูล
  • บล็อกของฉัน ฯลฯ

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

ในบล็อก "เสียง" คุณสามารถตั้งโปรแกรมให้หุ่นยนต์เล่นได้ สัญญาณเสียง. สัญญาณเหล่านี้สามารถอัปโหลดหรือบันทึกโดยใช้ไมโครโฟน องค์ประกอบที่สำคัญของการควบคุมโปรแกรมคือส่วนหนึ่งของเมนูที่ควบคุมผู้ปฏิบัติงาน ในนั้นคุณสามารถควบคุมการทำงานของโปรแกรมได้

ที่นี่คุณสามารถกำหนดคำสั่งต่อไปนี้ให้กับโปรแกรม:

  • เริ่มคาดหวัง;
  • การทำซ้ำของวงจร
  • สลับระหว่างบล็อก
  • สิ้นสุดวงจร

Lego Mindstorms ev3 เป็นการทำงานหลายอย่างพร้อมกัน โดยรองรับลำดับคำสั่งได้หลายลำดับ คุณสามารถตั้งโปรแกรมไม่เพียงแต่การกระทำของคุณลงในโปรแกรมเท่านั้น แต่ยังรวมถึงลำดับการดำเนินการด้วย

ด้วยการรวมคำสั่งที่เป็นไปได้ทั้งหมดของเมนูที่เกี่ยวข้อง คุณสามารถสร้างวิถีที่ซับซ้อนและประเภทของพฤติกรรมของคอนสตรัคเตอร์ได้

เลโก้ ระดมความคิดด้านการศึกษา EV3: การเขียนโปรแกรม Robohand (Robohand H25):