สร้างราง Dolly อัตโนมัติด้วย Arduino

สวัสดีครับ ในโพสนี้ก็จะมารวมรวมขั้นตอนการทำราง Dolly หรือรางสไลด์ ที่เอาไว้เลื่อนกล้องนะครับ

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

อุปกรณ์ (ลิงค์สั่งซื้อกดดูได้เลยครับ)

  1. Andoer 80cm / 32″ 4 Bearings Camera Slider
  2. Arduino Mega 2560
  3. มอเตอร์เกียร์ 12v 50RPM
  4. Arduino Modules
  5. Limit switch ×2
  6. ส่วนของอุปกรณ์สายพาน
  7. ส่วนของอุปกรณ์ลั่นชัตเตอร์กล้อง (ในส่วนนี้ซื้อได้ตามร้านอิเลคโทรนิกส์ทั่วไปครับ)
    • NPN Transistor BC547
    • Resistor 1K Ω
    • 2.5mm female headphone jack

เมื่ออุปกรณ์พร้อมแล้ว มาดูในส่วนของตัวยึดมอเตอร์ ที่ผมได้ออกแบบ 3D ด้วยโปรแกรม Autodesk Fusion 360 ซื่งเป็นโปรแกรมออกแบบ (CAD) ที่นิยมมาก แต่ผมเพิ่งลองใช้เป็นครั้งแรกกับการออกแบบชื้นนี้ การออกแบบครั้งนี้ ผมยึดกับ concept ที่ว่า จะไม่เจาะ ไม่เลื่อย ไม่แก้ไขตัวราง แต่จะเปลี่ยนตัวหยุดที่เลื่อนกล้องไม่ให้ออกนอกราง(ตัวที่ผมถอดออกมาวางด้านซ้าย) เป็นที่ยึดมอเตอร์แทน

photo6075701883164534787 (1)
2D design วาดคร่าวๆ ใน Tablet

พอออกแบบเรียบร้อยแล้วก็ปริ้น 3D ออกมาสิครับ บอกตรงๆ ว่าไม่เคยออกแบบแล้วปริ้น 3D มาก่อนเลยในชีวิต ครั้งนี้เลยตื่นเต้นมาก ไม่ว่าการออกแบบของเราจะใส่ค่าอะไรผิดรึเปล่า ซึ่งอาจจะปริ้นออกมาแล้วโครงสร้างพัง หรือว่าขนาดต่างๆ ซึ่งไม่รู้ว่าจะพอดีกับส่วนประกอบชิ้นอื่นรึเปล่า และราคาของการปริ้นแต่ละครั้ง ก็ไม่ถูก  (แต่ก็ไม่แพงนะคิดว่า แต่ถ้าต้องปริ้นมากกว่า 1 ครั้งก็ไม่ไหวนะ)

https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fmaxmaczaa%2Fposts%2F10210991059844720&width=500&show_text=false&height=646&appId

แต่ก็ปริ้นออกมาได้ดี โครงสร้างไม่พัง และแข็งแรงมาก ถึงแม้จะมีปัญหาเล็กน้อยตอนแรกก็คือว่าช่องใส่มอเตอร์เล็กไปหน่อย แต่ก็แก้ไขโดยการใช้หัวขัดติดกับสว่านขัดออก อันนี้ถือว่าปลื้มมาก

 

เมื่อผมได้ที่ยึดมอเตอร์และยึดสายพานอีกด้านแล้ว ก็ทำการติดตั้งเข้ากับรางพร้อมสายพาน

 

พอเดิินระบบสายพานเสร็จ ก็ลองต่อไฟ 12v เข้ามอเตอร์ดูครับ ถ้าสามารถเลื่อนได้ก็ถือว่าผ่านด่านแรกแล้ว 🙂


ด่านต่อไปจะเป็นของการวางระบบเพื่อใช้กับ Arduino โดนในโปรเจกนี้ผมจะใช้ Arduino mega เพราะว่า pin มันเยอะดี ถ้าใช้ Uno แค่ติดจอไป pin ต่างๆ ก็โดนจอบัง i/o pin หมดแล้ว เลยใช้ mega สะดวกกว่า

ผมได้ออกแบบคร่าวๆ โดยครั้งนี้ใช้ concept ว่า มันต้องพกไปไหนมาไหนได้ ซึ่งแหล่งจ่ายไฟก็หนีไม่พ้น powerbank แต่ว่ามอเตอร์และตัวขับมอเตอร์ของเราเป็น 12v เลยต้องมีตัวแปลงไฟจาก 5v -> 12v โดยใช้ boost converter นั่นเอง

DollyDuino_schematic_bb
แผงวงจรและการต่อสายไฟ

ตัวระบบนี้ นอกจากจะมีมอเตอร์ ยังติดตั้ง Limit switch สำหรับตรวจสอบว่ากล้องเลื่อนมาสุดรางรึยัง ถ้ากล้องเลื่อนมาสุดรางแล้วเดี๋ยวผมจะให้มันสลับการหมุนของมอเตอร์เพื่อที่กล้องจะได้ไม่ค้างและมอเตอร์จะไม่ถูกฝืนเมื่อกล้องมาสิ้นสุดที่ปลายของราง

ezgif.com-video-to-gif (1)

อีกอย่างของระบบนี้ก็คือระบบลั่นชัตเตอร์กล้อง เพื่อให้ตัว Aruino สามารถสั่งกล้องให้ถ่ายรูปเมื่อรางไม่ขยับ สลับกับให้รางขยับ เพื่อที่ภาพจะได้ไม่เบลอถ้าเกิดว่าเราถ่ายไปและขยับกล้องไปในเวลาเดียวกัน การลั่นชัตเตอร์กล้องผมใช้ Transistor BC547 กับ 2.5mm jack ต่อเข้ากล้องครับ

Shutter

ต่อไปก็ลองต่อสายตามที่ได้ออกแบบไว้ดูครับ(แต่อย่าเพิ่งต่อแบบถาวร ต่อแบบคร่าวๆ ไปก่อนครับ)


มาถึงด่านสุดท้ายก็คือ… การเขียนโปรแกรมให้ Arduino หิ__หิ
มันไม่ได้ง่ายบอกเลย มีความ challenge อยู่สองจุดสำหรับ project นี้ก็คือ

  • ต้องเขียนโปรแกรมเป็น GUI มีเมนูสำหรับตั้งค่าต่างๆ ได้
  • ตัวโปรแกรมห้ามใช้ Delay() เพื่อให้กล้องเลื่อนตามเวลาที่กำหนด เพราะว่าจะทำให้ Arduino ค้าง และไม่สามารถทำงานได้จนกว่าจะจบ Delay() ซึ่งเมื่อต้องการหยุดกล้องจากการเลื่อน ก็ต้องรอให้ Delay() สิ้นสุดก่อน หรือว่าเมื่อกล้องเลื่อนมาสุดราง ถ้าใช้ Delay() ก็จะไม่สามารถ Detect และเปลี่ยนทิศทางของการเลื่อนกล้องได้ทันทีเมื่อกล้องเลื่อนมาสุดรางแล้ว – แก้ปัญหาโดยการใช้ millis() จับเวลาแทน
photo60757018831645347881.jpg
Flow chart โง่ๆ ซึ่งมันไม่มีใครอ่านออกหรอกรวมทั้งผม 555+

ใครอยากโหลดตัวโปรแกรมโหลดไปได้เลยครับ

ตัวโปรแกรมมีอยู่ 3 โหมดก็คือ

  1. โหมด Video – ในโหมดนี้ไม่มีอะไร แค่ขยับไปมาเรื่อยๆ ตามความเร็วที่เราปรับ(ปรับตอนไหนก็ได้) ถ้าชนขอบก็ขยับไปทางตรงข้าม จนกว่าเราจะสั่งหยุด
  2. โหมด Timelapse – จะทำการ ถ่ายรูป-ขยับ-หยุด ไปเรื่อยๆ ตามเวลาที่เราตั้งไว้ ซึ่งสามารถตั้งได้สองอันก็คือเวลาระหว่างการถ่ายรูป(Interval) และเวลาขยับมอเตอร์(Move time)
  3. Settings – ยังไม่ได้ทำ55 แต่จะเอาไว้ตั้งค่าต่างๆ เช่น fps สำหรับเอาไว้คำนวณและแสดงผลเวลาของวิดีโอที่เราจะได้จากการถ่าย Timelapse และอาจจะเอาไว้ตั้งเวลาสำหรับหน่วงเวลาต่างๆ

เมื่อโปรแกรมเสร็จก็ยัดเข้าบอร์ด แล้วก็ Tweak จนกว่าจะพอใจ เป็นอันเสร็จสิ้นครับ ^0^

Download : GitHub  (code, schematic, 3D files)


10 thoughts on “สร้างราง Dolly อัตโนมัติด้วย Arduino

Add yours

ใส่ความเห็น

Create a website or blog at WordPress.com

Up ↑