สารบัญ:

LEGO Robot ขับผ่านเขาวงกต: 9 ขั้นตอน
LEGO Robot ขับผ่านเขาวงกต: 9 ขั้นตอน

วีดีโอ: LEGO Robot ขับผ่านเขาวงกต: 9 ขั้นตอน

วีดีโอ: LEGO Robot ขับผ่านเขาวงกต: 9 ขั้นตอน
วีดีโอ: เขาวงกต Obunga 2024, พฤศจิกายน
Anonim
Image
Image
ฐานของหุ่นยนต์
ฐานของหุ่นยนต์

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

PARTS

  1. ชุดเลโก้ Mindstorms EV3
  2. LEGO Mindstorms EV3 เซ็นเซอร์อัลตราโซนิก ไม่รวมอยู่ในชุด EV3
  3. กระดาษลูกฟูกสำหรับเขาวงกต สองกล่องน่าจะเพียงพอ
  4. กระดาษแข็งแผ่นบางๆ เพื่อช่วยยึดมุมและผนังบางส่วนให้มั่นคง
  5. กาวและเทปเพื่อเชื่อมต่อชิ้นส่วนกระดาษแข็งเข้าด้วยกัน
  6. ซองการ์ดอวยพรสีแดงเพื่อระบุทางออกของเขาวงกต

เครื่องมือ

  1. มีดยูทิลิตี้สำหรับตัดกระดาษแข็ง
  2. ไม้บรรทัดเหล็กเพื่อช่วยในกระบวนการตัด

วิธีการแก้ปัญหาเขาวงกต

มีหลายวิธีในการนำทางเขาวงกต หากคุณสนใจที่จะศึกษาพวกเขา พวกเขาจะอธิบายไว้อย่างดีในบทความ Wikipedia ต่อไปนี้: https://en.wikipedia.org/wiki/Maze_ dissolve_algori…

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

  1. หากสามารถเลี้ยวซ้ายได้
  2. มิฉะนั้น ให้ตรงไปถ้าเป็นไปได้
  3. ถ้าไปทางซ้ายหรือตรงไปไม่ได้ ให้เลี้ยวขวา ถ้าเป็นไปได้
  4. หากไม่สามารถทำตามข้างต้นได้ จะต้องเป็นจุดสิ้นสุด หันไปรอบ ๆ

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

ขั้นตอนในการสร้างหุ่นยนต์

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

ขั้นตอนที่ 1: ฐานของหุ่นยนต์

ฐานของหุ่นยนต์
ฐานของหุ่นยนต์

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

ขั้นตอนที่ 2: ด้านบนของฐาน

ด้านบนของฐาน
ด้านบนของฐาน
ด้านบนของฐาน
ด้านบนของฐาน
ด้านบนของฐาน
ด้านบนของฐาน

3 ขั้นถัดมาสำหรับส่วนบนของฐานหุ่นยนต์ เซ็นเซอร์สี และสายเคเบิล ซึ่งเป็นสายเคเบิลทั้งหมด 10 นิ้ว (26 ซม.)

ขั้นตอนที่ 3: เซ็นเซอร์อินฟราเรดและอัลตราโซนิก

เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก
เซ็นเซอร์อินฟราเรดและอัลตราโซนิก

ถัดมาเป็นเซ็นเซอร์อินฟราเรด (ด้านซ้ายของหุ่นยนต์) และเซ็นเซอร์อัลตราโซนิก (ด้านขวา) นอกจากนี้ยังมีหมุด 4 ตัวสำหรับติดอิฐด้านบน

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

ขั้นตอนที่ 4: สายเคเบิล

สายเคเบิล
สายเคเบิล

ติดอิฐและเชื่อมต่อสายเคเบิลดังต่อไปนี้:

  • พอร์ต B: เหลือมอเตอร์ขนาดใหญ่
  • พอร์ต C: มอเตอร์ขนาดใหญ่ด้านขวา
  • พอร์ต 2: เซ็นเซอร์อัลตราโซนิก
  • พอร์ต 3: เซ็นเซอร์สี
  • พอร์ต 4: เซ็นเซอร์อินฟราเรด

ขั้นตอนที่ 5: ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง

ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง
ขั้นตอนสุดท้ายในการสร้างหุ่นยนต์: การตกแต่ง

ปีกและครีบใช้สำหรับตกแต่งเท่านั้น

ขั้นตอนที่ 6: Pseudocode สำหรับโปรแกรม

  1. รอ 3 วินาทีแล้วพูดว่า "ไป"
  2. เริ่มหุ่นยนต์เคลื่อนที่ตรงไปข้างหน้า
  3. หากสามารถเลี้ยวซ้ายได้ (เช่น หากเซ็นเซอร์อินฟราเรดไม่รับรู้วัตถุที่อยู่ใกล้ๆ) ให้พูดว่า "ซ้าย" แล้วไปทางซ้าย
  4. ไปข้างหน้าประมาณ 6 นิ้ว (15 ซม.) เพื่อหลีกเลี่ยงไม่ให้เลี้ยวซ้ายผิดพลาด เหตุผลก็คือหลังจากที่หุ่นยนต์หมุนไป เซ็นเซอร์จะมองเห็นพื้นที่ยาวที่มันเพิ่งมา และหุ่นยนต์จะคิดว่ามันควรเลี้ยวซ้าย ซึ่งไม่เหมาะที่จะทำ กลับไปที่ขั้นตอนที่ 2
  5. หากไม่สามารถเลี้ยวซ้ายได้ ให้ตรวจสอบว่าเซ็นเซอร์สีมองเห็นอะไรข้างหน้าหุ่นยนต์
  6. หากไม่มีสี (เช่น ไม่มีวัตถุ) ให้กลับไปที่ขั้นตอนที่ 2
  7. ถ้าสีแดงคือทางออก หยุดหุ่นยนต์ เล่นประโคม และหยุดโปรแกรม
  8. หากสีเป็นสีน้ำตาล (เช่น กระดาษแข็งสีน้ำตาลข้างหน้า) ให้หยุดหุ่นยนต์

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

ขั้นตอนที่ 7: โปรแกรม

โปรแกรม
โปรแกรม

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

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

EV3 Brick อาจเชื่อมต่อกับคอมพิวเตอร์โดยใช้สาย USB, Wi-Fi หรือ Bluetooth เมื่อเชื่อมต่อและเปิดเครื่องแล้ว จะปรากฏในหน้าต่างเล็กๆ ที่มุมล่างขวาของหน้าต่าง EV3 บนคอมพิวเตอร์ “EV3” ที่ด้านขวาสุดจะเปลี่ยนเป็นสีแดง เมื่อตั้งค่าการแสดงผลนี้เป็น Port View จอภาพจะแสดงสิ่งที่เซ็นเซอร์แต่ละตัวตรวจพบในแบบเรียลไทม์ นี้จะเป็นประโยชน์สำหรับการทดลอง

เมื่อสร้างโปรแกรมนี้ ฉันขอแนะนำให้ทำงานจากซ้ายไปขวาและบนลงล่าง และขยาย Loop และ Switch Blocks ก่อนที่จะลาก Blocks อื่นๆ เข้าไปข้างใน ฉันพบปัญหาที่ยุ่งเหยิงในการพยายามแทรกบล็อคเพิ่มเติมเข้าไปข้างในก่อนที่จะขยาย

ขั้นตอนที่ 8: โปรแกรมบล็อก

  1. เริ่มต้นที่ด้านซ้ายของโปรแกรม Start Block จะปรากฏขึ้นโดยอัตโนมัติเมื่อมีการพัฒนาโปรแกรม
  2. ต่อไปเป็น Wait Block เพื่อให้เรา 3 วินาทีในการวางหุ่นยนต์ที่ทางเข้าเขาวงกตหลังจากเริ่มโปรแกรม
  3. Sound Block ทำให้หุ่นยนต์พูดว่า "ไป"
  4. Loop Block ประกอบด้วยโปรแกรมส่วนใหญ่ ควรซูมหน้าจอออก 4 หรือ 5 เท่า และควรขยาย Loop Block นี้จนเกือบถึงขอบด้านขวาของ Programming Canvas ก่อนที่คุณจะเริ่มแทรก Blocks หลังจากนั้นก็สามารถทำให้เล็กลงได้
  5. Block แรกใน Loop คือ Move Steering Block โดยที่ Steering ตั้งไว้ที่ศูนย์และ Power ตั้งไว้ที่ 20 ซึ่งจะเริ่มมอเตอร์วิ่งตรงไปข้างหน้าด้วยความเร็วต่ำ ความเร็วที่เร็วขึ้นจะทำให้หุ่นยนต์เคลื่อนที่ได้ไกลเกินไปเมื่อเดินหน้าต่อไปในขณะที่พูดในขั้นตอนต่อไป
  6. สวิตช์บล็อกในโหมดพร็อกซิมิตีของเซ็นเซอร์อินฟราเรดจะตรวจสอบว่ามีวัตถุใดๆ ที่ไกลกว่าค่า 30 หรือไม่ ซึ่งเทียบเท่ากับกระดาษแข็งสีน้ำตาลประมาณ 9 นิ้ว (23 ซม.) หากค่ามากกว่า 30 บล็อก 7, 8 และ 9 จะถูกดำเนินการ มิฉะนั้นโปรแกรมจะไปที่บล็อก 10 ด้านล่าง
  7. Sound Block ทำให้หุ่นยนต์พูดว่า "ซ้าย"
  8. A Move Steering Block โดยตั้งค่าการบังคับเลี้ยวเป็น -45, กำลังตั้งค่าเป็น 20, การหมุนที่ตั้งไว้ที่ 1.26 และตั้งค่าเบรกที่สิ้นสุดเป็น True ทำให้หุ่นยนต์เลี้ยวซ้าย
  9. A Move Steering Block โดยตั้งค่าการบังคับเลี้ยวเป็นศูนย์, ตั้งค่ากำลังเป็น 20, การหมุนตั้งค่าเป็น 1.2 และตั้งค่าเบรกที่สิ้นสุดเป็น True ทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าประมาณ 6 นิ้ว (15 ซม.) เพื่อหลีกเลี่ยงไม่ให้เลี้ยวซ้ายผิดพลาด
  10. บล็อกสวิตช์ในเซ็นเซอร์สี โหมดวัดสีจะตรวจสอบว่าสีใดนำหน้าหุ่นยนต์ หากไม่มีสี (เช่น ไม่มีวัตถุ) โปรแกรมจะไปที่จุดสิ้นสุดของลูป หากเป็นสีแดง บล็อก 11, 12 และ 13 จะถูกดำเนินการ ถ้าสีเป็นสีน้ำตาล โปรแกรมจะไปที่บล็อก 14 ด้านล่าง
  11. A Move Steering Block ในโหมดปิดเพื่อหยุดมอเตอร์
  12. Sound Block เล่นประโคม
  13. Loop Interrupt Block ออกจากลูป
  14. A Move Steering Block ในโหมดปิดเพื่อหยุดมอเตอร์
  15. สวิตช์บล็อกใน Ultrasonic Sensor Compare Distance Inch Mode จะตรวจสอบว่ามีวัตถุใดที่อยู่ไกลเกิน 8 นิ้ว (20 ซม.) หรือไม่ หากมากกว่า 8 นิ้ว แสดงว่า Blocks16 และ 17 ถูกดำเนินการ มิฉะนั้นโปรแกรมจะไปที่ Block 18 ด้านล่าง
  16. Sound Block ทำให้หุ่นยนต์พูดว่า "ถูกต้อง"
  17. A Move Steering Block โดยตั้งค่าการบังคับเลี้ยวเป็น -55, ตั้งค่ากำลังเป็น -20, ตั้งค่าการหมุนเป็น 1.1 และตั้งค่าเบรกที่สิ้นสุดเป็น True ทำให้หุ่นยนต์เลี้ยวขวา
  18. Sound Block ทำให้หุ่นยนต์พูดว่า "อ๊ะ"
  19. A Move Tank Block โดยตั้งค่า Power Left ไว้ที่ -20, Power Right ตั้งค่าเป็น -20, Rotations ตั้งไว้ที่ 1 และ Brake at End ตั้งค่าเป็น True ทำให้หุ่นยนต์ถอยกลับได้ประมาณ 5 นิ้ว (12.5 ซม.) เพื่อให้มีพื้นที่สำหรับหันหลังกลับ
  20. A Move Tank Block โดยตั้งค่า Power Left ไว้ที่ -20, Power Right ตั้งค่าเป็น 20, Rotations ตั้งไว้ที่ 1.14 และ Brake at End ตั้งค่าเป็น True ทำให้หุ่นยนต์หันกลับมา
  21. ที่ทางออกของ Loop จะมี Stop Program Block

ขั้นตอนที่ 9: สร้าง MAZE

สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต
สร้างเขาวงกต

กล่องกระดาษลูกฟูกสองกล่องน่าจะเพียงพอสำหรับเขาวงกต ฉันสร้างกำแพงเขาวงกตสูง 5 นิ้ว (12.5 ซม.) แต่ 4 นิ้ว (10 ซม.) น่าจะใช้ได้ดีหากคุณไม่มีกระดาษลูกฟูก

ขั้นแรก ฉันตัดรอบผนังกล่องห่างจากด้านล่าง 10 นิ้ว (25 ซม.) จากนั้นฉันก็ตัดรอบผนัง 5 นิ้วจากด้านล่าง มีผนังขนาด 5 นิ้วหลายแบบ นอกจากนี้ ฉันยังตัดพื้นกล่องโดยเหลือประมาณ 1 นิ้ว (2.5 ซม.) ไว้กับผนังเพื่อความมั่นคง

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

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

ทางออกมีแนวกั้นสีแดงประกอบด้วยซองการ์ดอวยพรสีแดงครึ่งซองและฐานทำด้วยกระดาษแข็งบาง 2 แผ่น ดังรูป

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

การปรับปรุงในอนาคต

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

สิ่งนี้ซับซ้อนกว่าโครงการปัจจุบันมาก หุ่นยนต์ต้องจำเส้นทางที่มันเคยไป กำจัดทางตัน จัดเก็บเส้นทางใหม่ แล้วเดินตามเส้นทางใหม่ ฉันวางแผนที่จะทำงานในโครงการนี้ในอนาคตอันใกล้นี้ ฉันคาดหวังว่าจะสามารถทำได้ด้วย LEGO Mindstorms EV3 โดยใช้ Array Operations Blocks และบล็อกที่เกี่ยวข้องกับคณิตศาสตร์

สรุปข้อสังเกต

นี่เป็นโครงการที่สนุก ฉันหวังว่าคุณจะพบว่ามันน่าสนใจ

แนะนำ: