DIY Gimbal สไตล์ maker ด้วย servo motor, Gyro sensor และ Arduino|code.isaranu.com

 Isaranu,  22.10.2017 , 

สวัสดีครับทุกท่าน,​ วันนี้ขออนุญาตนำผลงานเก่าๆมาเขียนเป็นบทความกันหน่อยนะครับ ผลงานตัวนี้ผมทำไว้ตอนที่เริ่มเป็น maker ใหม่ๆ และช่วงนั้นก็เป็นช่วงที่ได้เครื่อง 3D printer มาด้วย เรียกว่าเห่อของใหม่ก็ว่าได้

สำหรับในบทความนี้ ผมขอนำวิธีการทำ Gimbal หรือ Camera stabilizer ด้วยเซนเซอร์ต่างๆที่มีอยู่ตามท้องตลาด ซึ่งหาซื้อได้จากร้านจำหน่ายตามเว็บไซต์ Arduino ทั่วๆไป และชิ้นส่วนก็วาดขึ้นมาเองจาก CAD software.


Arduino

ในส่วนของ arduino board ที่ผมใช้ใน project นี้คือ Arduino UNO ครับ เป็นรุ่นธรรมดาๆที่ใช้กันทั่วๆไปเลย โดยตัวบอร์ด ผม print โครงสำหรับยึดบอร์ดเข้ากับ Breadboard ซึ่งไฟล์ CAD ตัวนี้เอามาจาก Thingiverse.com ครับ ลองค้นหากันดู ผมว่ามันสะดวกดีนะ


Gyro Sensor - "MPU6050"

เซนเซอร์ที่ใช้ในการตรวจจับมุมเอียง 3 แกน Roll-Pitch-Yaw คือ MPU6050 ครับ เป็นบอร์ดสำเร็จรูปมาเลย โดยที่ในตัวนี้จะใช้ไฟ 3.3v และจะสื่อสารแบบ I2C ครับ ใครที่ยังไม่เคยลองใช้งาน ไม่ต้องกลัวว่าจะยากครับ เพราะมี dev ทำ library ไว้ให้ใช้งานได้เลย


Servo motor

ทั้ง 3 แกน,​ ผมใช้ Servo motor แบบ 360 องศา เช่นเดิม หาซื้อได้ทั่วไปครับ

แหล่งพลังงาน

ในการทำ Project นี้, ผมใช้พลังงานจาก Battery แห้งขนาด 12v, 6Ah. โดยแปลงจาก 12V เป็น 6v ด้วยวงจร Regulator LM317 ครับ.


Parts

อย่างที่กล่าวไว้ตอนแรกครับ โปรเจกต์นี้ผม design ชิ้นส่วนเอง, และวาดลง CAD sorftware. จากนั้นก็ส่งเข้า Print เป็นชิ้นส่วน ด้วย 3D printer ยี่ห้อ Flashforge รุ่น Dreamer. ใช้เวลา print ชิ้นส่วนต่างๆหลายสิบชั่วโมง เสียไปก็หลายอัน บางอัน print มาแล้วประกอบกับ motor ไม่ได้ หรือแม่แต่ขันสกรูยึดเข้าหากันยังไม่ได้เลย ก็ต้อง print ใหม่กันไป.


หลักการเขียน code

เป็นหลักการแบบ feedback loop ระหว่าง Gyro sensor กับ Servo motor แต่ละแกนครับ โดยมีวิธีคิดคือ เมื่อมุมของ Gyro sensor เปลี่ยนไปเท่าไร เราก็ขับ Servo motor ในแกนนั้นไปเท่านั้น (อาจจะมีการใส่ +/- offset เพื่อความถูกต้องของมุมที่ได้ด้วย)




Coding

สำหรับ code ใน Project DIY Gimbal นี้ ผมเก็บไว้ใน github:Isaranu/diy-servo-gimbal ครับ พร้อมทั้ง library ต่างๆที่จำเป็น เช่น library สำหรับ MPU6050 คือ MPU6050_6Axis_MotionApps20.h,​ สำหรับ Servo motor ก็ Servo.h ครับ. ส่วนตัว code ก็สามารถดูรายละเอียดได้เลยครับ ไม่ยุ่งยาก ไม่ซับซ้อน.




ผลลัพธ์ที่ได้

การสร้าง DIY Gimbal ครั้งนี้,​ ผมทดสอบด้วยกล้อง SONY Q10 กับ เป็นกล้องขนาดเล็ก ที่ไม่มีหน้าจอ แต่สามารถส่งภาพขึ้นมาทาง smart phone ได้. แต่ข้อเสียคือ เวลาส่งภาพแบบ Live มันจะกระตุก คราวนี้ก็เลยเอาวีดีโอที่ส่งมา เป็นตัวตัดสินไม่ได้ว่า Gimbal ทำงานได้ดีหรือไม่ เอาไว้มีงบ ผมจะลอง ใช้ GoPro มาใส่แทนแล้วกันครับ



ส่วนผลที่ได้ ถ้าดูจาก balancing หรือการรักษาสมดุลของกล้อง ก็ถือว่าทำได้ดีเลยทีเดียว อาจจะมีบางช่วงที่ Response ของ Servo ตามไม่ทัน แต่โดยรวม ถือว่ายอมรับได้ครับ.


สำหรับวีดีโอการประกอบและทดสอบโปรเจกต์นี้ ผม upload ไว้ใน Youtube ด้านล่างนี้ครับ สามารถเข้าไปดูได้เลยนะครับ.​ อย่าลืม Subscribe กันด้วยนะครับผม.

ขอบคุณครับ
Isaranu.