ชื่อโปรเจกต์: ควบคุมแขนกลด้วย Arduino Esplora
บทนำ
Arduino Esplora ส่งคำสั่ง Gcode ผ่าน serial monitor เพื่อควบคุม uArm SwiftPro (แขนกล 4 DOF) โดยใช้ joystick, ปุ่มสวิตช์, slider และแม้กระทั่ง light sensor ของ Esplora
ผมได้สนับสนุนโครงการระดมทุน campaign บน Indiegogo ซึ่งสินค้ามาถึงในเดือนมิถุนายน 2017 มันคือแขนกล 4-DOF ที่เรียกว่า uArm Swift Pro และมาพร้อมกับ end effectors หลายแบบสำหรับติดกับแขน เช่น laser engraver, 3D printer, gripper, suction cup เป็นต้น
ฮาร์ดแวร์สามารถควบคุมได้จากซอฟต์แวร์ PC ที่เรียกว่า "Studio" ผ่าน USB หรือจากแอปพลิเคชันสมาร์ทโฟนผ่าน Bluetooth ซึ่งทั้งสองอย่างนี้ผู้ผลิตจัดหาให้ มันมีโมดูล Blockly สำหรับสร้างโปรแกรมที่ควบคุมแขน และโมดูล controller อีกตัวที่คุณสามารถควบคุมแขนจาก PC ได้จากระยะไกล แอปพลิเคชันสมาร์ทโฟนก็ทำได้เหมือนกัน แต่ปัญหาของโมดูลควบคุมคือบางครั้งมันก็เคลื่อนที่และหยุดโดยไม่คาดคิด และผมก็ไม่สามารถควบคุมแขนให้เคลื่อนไหวได้อย่างแม่นยำระดับมิลลิเมตร


ผมมี Arduino Esplora พร้อม TFT LCD ซึ่งไม่ค่อยได้ใช้งานมากนัก และบอร์ดที่ SwiftPro ใช้งานอยู่ก็คือ Arduino Mega 2560 เช่นกัน และสามารถตรวจจับและเชื่อมต่อกับ Arduino IDE และ serial monitor ได้ ผมคิดว่ามันจะยอดเยี่ยมมากถ้าทำให้ทั้งสองอุปกรณ์ทำงานร่วมกันได้ นั่นคือการเคลื่อนแขนเหมือนที่โมดูลควบคุมทำ แต่มีความแม่นยำสูงกว่าและสามารถแสดงสถานะบน LCD ได้
ผมอ้างอิงจาก Arduino IDE example sketches สำหรับ Esplora และ TFT รวมถึงเอกสาร SwiftPro ซึ่งมีรายการคำสั่ง Gcode ที่จะส่งไปยังแขนกลจาก serial terminal หลังจากทำงานมาสองสามสัปดาห์ sketch ของ Esplora ของผมก็สามารถเคลื่อนมอเตอร์ทั้ง 4 ตัวในแขน และเปิด/ปิด suction cup ได้ด้วย Esplora joystick, ปุ่มสวิตช์, slider และ light sensor
โดยพื้นฐานแล้ว Esplora ทำหน้าที่เลียนแบบ keyboard และ SwiftPro รับคำสั่งจาก serial monitor สิ่งที่ sketch ทำคือ เมื่อฟังก์ชัน library Esplora.readbutton() ตรวจพบว่า sensor ถูก activate มันจะส่ง string Keyboard.println() ไปยัง serial monitor ในรูปแบบ Gcode ซึ่งจะถูกส่งไปยัง SwiftPro และเคลื่อนที่ตามนั้น Gcode ที่ใช้ที่นี่เป็นรูปแบบที่ผู้ผลิตพัฒนาขึ้นมาโดยเฉพาะสำหรับ SwiftPro
ข้อดีของ Esplora + TFT LCD คือมันมี sensors จำนวนมากในฟอร์มแฟคเตอร์ที่กะทัดรัด และแสดงผล feedback บน LCD มันช่วยให้คุณสามารถสร้าง prototype ได้โดยไม่ต้องใช้ breadboards, wire pins, resistors ฯลฯ – มันเสียบแล้วใช้ได้เลยจริงๆ!
สำหรับวิธีการทำอย่างละเอียด ผมได้เผยแพร่ขั้นตอนการทำงานทีละขั้นตอนบน Instructables. และ Arduino sketch มีให้ใช้งานบน GItHub.



เมื่อการตั้งค่าทางเทคนิคเสร็จสมบูรณ์ ส่วนที่สนุก (ยิ่งกว่า) ก็เริ่มต้นขึ้นและพร้อมที่จะเล่น! ผมสร้างสนามเด็กเล่นเล็กๆ ด้วยชิ้นส่วน LEGO โดยให้แขนกลเคลื่อนย้ายลูกบอลและกระเบื้องไปมา และสั่งให้เครื่องยิง projectile ทำงาน อีกกรณีการใช้งานที่แสดงในวิดีโอข้างล่างคือการเรียงซ้อนและยกบล็อก Jenga
Arduino มีความหลากหลายและเป็นไปได้มากมาย ลองใช้โค้ด sketch, ปรับปรุง และแบ่งปันกับชุมชนได้เลยครับ ขอบคุณสำหรับการรับชมและขอให้สนุกนะครับ!
รายละเอียดทางเทคนิคเพิ่มเติม
การควบคุมคอนโซลแบบ All-in-One
โปรเจกต์นี้ปรับเปลี่ยน Arduino Esplora ให้เป็น gamepad เฉพาะทางเพื่อควบคุมแขนกลแบบหลายแกน
- Integrated Sensor Mapping: ใช้ Analog Joystick บนบอร์ดของ Esplora สำหรับการเคลื่อนที่ในแนว XY และ Linear Slide Potentiometer สำหรับแกน Z หรือการปิด gripper
- Feedback Mechanism: RGB LED และ Piezo Buzzer บนบอร์ดของ Esplora ทำหน้าที่แจ้งเตือนสถานะ (เช่น เปลี่ยนเป็นสีแดงเมื่อแขนถึงขีดจำกัดทางกายภาพ หรือส่งเสียง BEEPING เมื่อจับวัตถุได้)
การขับเคลื่อนที่แม่นยำ
- Servo Command Stack: โค้ดจะแมปค่า analog ของ Esplora ไปยังคำสั่งองศา PWM มาตรฐาน (0-180) ซึ่งมอบวิธีที่ใช้งานง่ายและเหมาะกับสรีระในการควบคุมหุ่นยนต์ที่ซับซ้อนโดยไม่ต้องใช้ controller ภายนอก