โปรเจกต์ Hex-Hex Fruit
มาสร้าง hexapod robot ที่มี feature เจ๋งๆ กันเถอะ!
มาสร้าง hexapod robot ที่มี feature เจ๋งๆ กันเถอะ!
เรื่องราว







สวัสดีทุกคน! จุดประสงค์ของบทความนี้คือเพื่ออธิบายวิธีการสร้าง hexapod robot ตั้งแต่เริ่มต้น หุ่นยนต์จะสามารถเคลื่อนที่ได้หลากหลายรูปแบบ และสามารถรักษาสมดุลของลำตัวบนพื้นที่ไม่เรียบได้ (รักษาลำตัวให้อยู่ในแนวระนาบ) เรามาแบ่งโปรเจกต์ทั้งหมดออกเป็น 3 ส่วนหลัก:
และไปดูรายละเอียดของทั้ง 3 ส่วนกันครับ
ด้านกลไก (Mechanical side)
ในการประกอบ chassis ของหุ่นยนต์ เราใช้ไม้ กระจกออร์แกนิก (อะคริลิก) และฉากยึดโลหะ เริ่มจากโครงหลัก เราใช้ไม้และ laser cutter ในการทำส่วนบนและส่วนล่างของลำตัว จากนั้นเชื่อมต่อเข้าด้วยกันด้วยฉากยึดโลหะ (ตัวสีดำมาพร้อมกับ servo และตัวสีเงินเราทำขึ้นเอง)


ในการทำขา เราเชื่อมต่อ 3 servos เข้าด้วยกันโดยใช้ brackets ปลายด้านหนึ่งเชื่อมต่อกับโครงหลัก และปลายอีกด้านเชื่อมต่อกับกระจกออร์แกนิก กระจกถูกตัดด้วย laser เช่นกัน และหลังจากนั้นเราจึงดัดมันด้วย heat gun (ดูขั้นตอนด้านล่าง) ซึ่งทำให้ได้รูปทรงที่โค้งมน หลังจากดัดแล้วเราเชื่อมต่อสองส่วนเข้าด้วยกันโดยใช้บล็อกไม้และกาว



การตรวจสอบการก้าว (step check)
เพื่อตรวจจับว่าหุ่นยนต์สัมผัสพื้นในขณะเดินหรือไม่ เราได้เพิ่ม micro switch ในขาทุกข้าง switch ถูกติดตั้งบน bracket ที่ทำขึ้นเอง เราเจาะรูในไม้ที่เชื่อมต่อชิ้นส่วนขา 2 ส่วน แล้วใส่แกนโลหะและสปริงลงไป ส่วนของแกนที่สัมผัสพื้นเคลือบด้วย polyurethane (ช่วยเพิ่มแรงเสียดทานบนพื้นและทำให้หุ่นยนต์มั่นคงขึ้น) และส่วนบนของแกนจะเชื่อมต่อกับ micro switch และกดมันเมื่อขาแตะพื้น



แผงวงจรหลัก (mainboard)
เราได้สร้างแผงวงจรที่รองรับการเชื่อมต่อกับ esp32, mpu-6050 และ servo motors โดย servo ที่เราใช้ในโปรเจกต์นี้ใช้ half-duplex UART สำหรับการสื่อสารกับ micro controller และเพื่อให้บรรลุการสื่อสารรูปแบบนี้ เราได้ใช้ 74hc126, transistor และ resistors อีกสองสามตัว (สำหรับ NOT gate)





Circuit board รับแรงดันเฉลี่ย 7.4V จากอินพุตซึ่งจ่ายให้แก่ servo motors หลังจากนั้นแรงดันจะถูกลดลงเหลือ 5v โดยใช้ dc->dc converter เพื่อจ่ายไฟให้คอมโพเนนต์อื่นๆ ของวงจร (esp32, mpu-6050...) ในการจ่ายพลังงานนี้ เราใช้ lithium batteries ขนาด 3.7v จำนวน 4 ก้อน และเชื่อมต่อเข้ากับ charging board ขนาดเล็กดังที่แสดงด้านล่าง:



แบตเตอรี่เชื่อมต่อกับพอร์ตชาร์จและสวิตช์ ซึ่งทำหน้าที่จ่ายไฟไปยัง main board
คุณสามารถใช้ Arduino IDE หรือ platform IO เพื่อ compile และ upload code ไปยัง micro controller ตัว code เขียนด้วยภาษา c++ และแบ่งออกเป็นหลาย libraries ซึ่งช่วยให้ผู้ใช้สามารถแทนที่บางส่วนของโปรเจกต์ได้โดยการเปลี่ยนเฉพาะไฟล์ library ที่เกี่ยวข้อง โปรดทราบว่า code ยังอยู่ในระหว่างการพัฒนา ดังนั้นจึงยังไม่สมบูรณ์แบบนัก

เราใช้โทรศัพท์มือถือเชื่อมต่อกับ esp32 โดยใช้แอปพลิเคชัน bluetooth ที่สร้างขึ้นสำหรับโปรเจกต์นี้โดยเฉพาะ มันช่วยให้ผู้ใช้สามารถขยับหุ่นยนต์และสลับโหมดต่างๆ ได้ นอกจากนี้ยังแสดงแรงดันไฟฟ้าที่มีอยู่ใน servo motors ซึ่งเป็นตัวบ่งชี้ระดับแบตเตอรี่ที่ดี (8.4v - ชาร์จเต็ม, 6.4v - แบตเตอรี่หมด)
หุ่นยนต์ใช้ PID library เพื่อรักษาลำตัวให้อยู่ในแนวระนาบ คุณสามารถดูขั้นตอนการทำงานได้ด้านล่าง:




โปรเจกต์นี้ใช้เวลา 1 ปีในการสร้าง และยังห่างไกลจากความสมบูรณ์แบบ มันยังอยู่ในระหว่างการพัฒนา ดังนั้น code จะมีการอัปเดตเรื่อยๆ หากใครสนใจเรื่อง robotics ก็น่าจะพบว่าบทความนี้น่าสนใจ เพราะมันแบ่งปัญหาใหญ่ๆ ออกเป็นปัญหาย่อยๆ ซึ่งคุณสามารถนำไปประยุกต์ใช้แยกกันในโปรเจกต์ของคุณเองได้ เขียนมาหาผมได้หากคุณมีคำถามใดๆ
โชคดีครับ!
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้