นี่คือหุ่นยนต์เดลต้าแบบ 2 มิติ มีลิงค์ (Link) เคลื่อนที่ 4 อัน และลิงค์อยู่กับที่ 1 อัน ทำให้มันเป็นกลไกแบบ 5 บาร์ (5 bar mechanism) ตัวนี้ขับเคลื่อนด้วยเซอร์โวมอเตอร์ 2 ตัว เซอร์โวทั้งสองตัวสามารถขยับลิงค์ต่างๆ ได้ จุดศูนย์กลางของลิงค์สุดท้ายก็จะสามารถลากหรือวาดรูปทรงอะไรก็ได้ตามที่เราต้องการ

ไอเดียของพี่ได้มาจากหุ่นยนต์เดลต้า 3 มิติตัวดังอย่าง IRB 360 Flexipicker จาก ABB นั่นแหละ หุ่นของ ABB เขาใช้มอเตอร์ 3 ตัว เลยทำงานใน 3 มิติได้ แต่พี่ไม่มีฮาร์ดแวร์และมอเตอร์ที่เหมาะสม เลยตัดสินใจทำเป็นแบบ 2 มิติ ใช้มอเตอร์แค่ 2 ตัวแทน ง่ายดี


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

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

ด้านเทคนิค: พาราเลล คิเนแมติกส์ (Parallel Kinematics)
ความเร็วและความคล่องตัวของหุ่นตัวนี้มาจากการออกแบบกลไกที่เป็นเอกลักษณ์ ต่างจากหุ่นยนต์แบบ Serial-link ทั่วไปตรงที่ End-effector ของหุ่นเดลต้าถูกพยุงด้วยแขนแบบขนาน (Parallel arms) ซึ่งช่วยกระจายน้ำหนักของมอเตอร์ ทำให้หุ่นมีความเร่งและความแม่นยำสูง
ตรรกะซอฟต์แวร์ & อินเวิร์ส คิเนแมติกส์ (Inverse Kinematics)
เราใช้วิธี Inverse Kinematics ในการคำนวณมุมของเซอร์โวมอเตอร์แต่ละตัว จุดบนระนาบคือ (x, y) และเพื่อให้ไปถึงจุดนั้น มอเตอร์แต่ละตัวต้องอยู่ที่มุมที่แน่นอน มุมนั้นคำนวณได้ด้วยตรีโกณมิติ (Trigonometry) ทั้งหมดนี้ถูกจัดการในโค้ด
โค้ด Arduino คือหัวใจของการเคลื่อนไหวของหุ่น:
- ตำแหน่งเป้าหมาย: หุ่นได้รับตำแหน่งเป้าหมาย (X, Y) ภายในพื้นที่ทำงานของมัน
- อินเวิร์ส คิเนแมติกส์: โค้ดจะแก้สมการทางเรขาคณิตเพื่อหามุมที่แม่นยำสำหรับเซอร์โวมอเตอร์ทั้งสองตัว
- การสั่งงาน: Arduino ส่งสัญญาณ PWM ที่คำนวณได้ไปยังเซอร์โวแต่ละตัว (เช่น
servo1.write(angle1),servo2.write(angle2))

สรุปก็คือ เราแค่ส่งพิกัดไปให้ฟังก์ชัน การคำนวณทั้งหมดจะถูกทำ และมุมที่สอดคล้องกันก็จะถูกส่งกลับมา
เราลองให้มันวาดเส้นตรง วงกลม และสี่เหลี่ยมดู แต่ด้วยฮาร์ดแวร์ที่ไม่สมบูรณ์และเซอร์โวราคาถูกที่ทำงานไม่เสถียร รูปร่างที่วาดออกมาจึงไม่ค่อยแม่นยำเท่าไหร่ แต่นี่ก็เป็นแค่ตัวสาธิตเทคโนโลยีให้เห็นภาพ จัดไปวัยรุ่น! สู้งานนะน้อง
การต่อยอดในอนาคต
โปรเจคนี้เป็นสนามทดลองชั้นดีสำหรับการเรียนรู้เรื่อง Inverse Kinematics และการควบคุมการเคลื่อนไหวของหุ่นยนต์ ยังมีอะไรให้เล่นอีกเพียบ เช่น:
- ระบบหยิบ-วางอัตโนมัติ (Pick-and-Place Automation): เอากริปเปอร์เล็กๆ หรือแม่เหล็กไฟฟ้ามาติดหัวจับ แล้วเปลี่ยนมันเป็นหุ่นยนต์หยิบ-วางความเร็วสูงได้เลย
- หุ่นยนต์วาดรูป (Drawing Robot): เอากบเหลาดินสอหรือปากกามาติดหัวจับ แล้วเขียนโค้ดให้มันวาดรูปทรง 2 มิติหรือลวดลายซับซ้อนได้
- ระบบควบคุมด้วยภาพ (Visual Feedback Integration): เอากล้องเว็บแคมมาติด แล้วใช้ OpenCV บนคอมพิวเตอร์เพื่อให้หุ่นยนต์ตรวจจับและแยกวัตถุตามสีหรือรูปร่างได้
- ควบคุมผ่านเว็บ (Web Interface Control): สร้างแดชบอร์ดบนเว็บเพื่อควบคุมการเคลื่อนไหวของหุ่นยนต์จากระยะไกลผ่าน WiFi ภายในบ้าน
โปรเจคนี้เลยเป็นเหมือนการผสมผสานระหว่าง วิศวกรรมเครื่องกล (Mechanical Engineering), คณิตศาสตร์ (Mathematics) และ ระบบควบคุม (Control Systems) อย่างลงตัว
และนี่แหละที่พี่ทำหุ่นยนต์ตัวนี้ขึ้นมา
Robotics EveryDay!!!