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

byob-build-step

** บทความนี้เป็นส่วนหนึ่งของบทความชุด Build Your Own Bot แนะนำการสร้างหุ่นยนต์ด้วยตัวเอง **

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

  1. ตั้งโจทย์ขึ้นมาว่าเราจะสร้างหุ่นยนต์ไปทำอะไร ให้มันไปเปิดไฟให้เรา ให้มันไปหยิบของให้ ไปสำรวจท่อระบายน้ำ หรือถ้าจะสร้างหุ่นยนต์ไปแข่งขัน กติกาการแข่งขันก็เป็นโจทย์นั่นเอง
  2. หาความต้องการของระบบ จากโจทย์ที่ได้ในข้อก่อนหน้า เรามาแยกเป็นข้อ ๆ ว่าหุ่นยนต์ต้องทำอะไรได้บ้าง ตัวอย่างความต้องการของหุ่นยนต์บริการในร้านอาหาร เช่น
    • ขนาดไม่เกินเส้นผ่านศูนย์กลาง 60 เซนติเมตร สูงไม่เกิน 150 เซนติเมตร
    • บรรทุกของได้ 10 กิโลกรัม เคลื่อนที่บนทางลาดชันไม่เกิน 10 องศาได้ด้วยความเร็ว 1 เมตรต่อวินาที
    • มีแหล่งพลังงานในตัว ทำงานได้อย่างน้อย 2 ชั่วโมง
    • ตรวจจับสิ่งกีดขวางได้ และหยุดการเคลื่อนที่ก่อนชนสิ่งกีดขวาง
    • ระบุตำแหน่งตัวเองในร้านอาหารได้
    • เคลื่อนที่ไปยังตำแหน่งต่าง ๆ ในร้านอาหารได้เองอัตโนมัติ
    • สั่งงานได้จาก joystick ไร้สาย
    • มีไฟแสดงสถานะแบตเตอรี่
  3. หลังจากตีโจทย์เป็นความต้องการเป็นข้อ ๆ แล้ว เราก็มาออกแบบระบบโดยคร่าว ๆ ที่สามารถตอบความต้องการแต่ละข้อนั้นได้ เช่น ต้องเคลื่อนที่ไปได้ไกล ๆ จะต้องทำเป็น mobile robot บริเวณที่เคลื่อนที่เป็นพื้นเรียบใช้ล้อธรรมดาก็ได้ ไม่ต้องใช้ตีนตะขาบ ไม่ต้องใส่ระบบกันสะเทือน จะต้องหยิบของต้องมีกลไกแขน หยิบจากที่หนึ่งไปอีกทีโดยไม่สนใจทิศทางของของที่หยิบ สามารถใช้แขนที่มีองศาอิสระแค่ 3 องศาก็ได้ ไม่ต้องทำถึง 6 องศาอิสระ หุ่นยนต์ต้องเคลื่อนที่จะมีสายส่งพลังงานไปไม่ได้ ต้องใช้แหล่งพลังงานในตัวเอง ก็เลือกใช้พลังงานจากแบตเตอรี่ ต้องมองหาสิ่งของที่มีสีที่กำหนดอาจจะใช้กล้องหรือเซนเซอร์สี เป็นต้น

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

    ซ้าย - ตัวอย่างข้อมูลของมอเตอร์, ขวา - ระยะการตรวจจับด้วยอินฟราเรดของเซนเซอร์รุ่นต่าง ๆ
    ซ้าย – ตัวอย่างข้อมูลของมอเตอร์, ขวา – ระยะการตรวจจับด้วยอินฟราเรดของเซนเซอร์รุ่นต่าง ๆ
  5. ถ้าระบบย่อยบางระบบเราไม่คุ้นเคย ไม่เคยทำแบบนั้นมาก่อน อาจทำต้นแบบ (prototype) แยกเฉพาะส่วน เพื่อทดสอบแนวคิดของส่วนนั้น ๆ ไปก่อน เช่น กลไกแบบประหลาด หรือวิธีการตรวจวัดแบบแปลก ๆ เป็นต้น

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

    ตัวอย่างการวาดแบบหุ่นยนต์ปีนกำแพง
    ตัวอย่างการวาดแบบหุ่นยนต์ปีนกำแพง
  7. ได้เวลามือเลอะ ขึ้นรูปชิ้นงานโครงสร้าง ต่อวงจรไฟฟ้า เขียนโปรแกรมควบคุมหุ่นยนต์
  8. ทดสอบ แก้ไข ปรับปรุง ไม่มีอะไรใช้ได้มาครั้งแรกที่ทำเสร็จ เก่งแค่ไหนก็พลาดได้ เราจึงต้องทดสอบว่าหุ่นยนต์ทำงานได้ตามต้องการหรือไม่ ผิดที่อะไร กลไกผิด วงจรผิด หรือโปรแกรมผิด ถ้าเราค่อย ๆ สร้างแล้วทดสอบเป็นส่วน ๆ ย่อยๆ เราก็จะตรวจพบและแก้ไขข้อผิดพลาดได้ง่ายกว่าการทำให้เสร็จทั้งหมดแล้วทดสอบทีเดียว จะแยกยากว่าผิดที่ส่วนไหน
  9. เมื่อสร้างหุ่นยนต์เสร็จ หุ่นยนต์ทำงานได้ดั่งใจ รับรองว่าเราสนุกและภูมิใจกับความสำเร็จนั้นแน่นอน 😀

ครั้งต่อ ๆ ไปเราจะมาลงรายละเอียดในแต่ละขั้นตอนว่าเราจะทำมันอย่างไร ติดตามกันนะครับ

ภาพ

** บทความนี้เป็นส่วนหนึ่งของบทความชุด Build Your Own Bot แนะนำการสร้างหุ่นยนต์ด้วยตัวเอง **

LINE it!
Loading Facebook Comments ...
Loading Disqus Comments ...