Octoprint The Series - EP5. ถ่ายทำ Timelapse สุดเจ๋งด้วย Octolapse

Octoprint The Series - EP5. ถ่ายทำ Timelapse สุดเจ๋งด้วย Octolapse

  • 16 Nov 2022
  • 117


ดูวิดีโอประกอบได้ที่นี่ :


 

เพื่อนๆเคยเห็นวิดีโอของโมเดล 3 มิติที่ถูกพิมพ์ขึ้นมาบนฐานพิมพ์โดยที่หัวพิมพ์ไม่ได้ขยับเลยหรือเปล่า เหมือนตัวโมเดลมันค่อยๆงอกออกมาเอง เขาทำแบบนั้นได้อย่างไร ลองมาดูกันครับ

Timelapse คืออะไร

ก่อนอื่นเราต้องมาเข้าใจว่า Timelapse คืออะไรกันก่อน โดย Timelapse นั้นคือการถ่ายทำวิดีโอรูปแบบหนึ่ง โดยอาศัยการถ่ายภาพหลายๆภาพในแต่ละช่วงเวลามาประกอบกัน โดยมีช่วงระยะเวลาที่เว้นไม่ถ่ายภาพเท่าๆกัน โดยนำภาพทั้งหมดมาประกอบเรียบเรียงกันตามลำดับเวลา ก็จะได้เป็นวิดีโอที่แสดงให้เห็นถึงความเปลี่ยนแปลงของวัตถุที่มีการเปลี่ยนแปลงอย่างรวดเร็ว จากการที่ภาพในแต่ละช่วงเวลาที่ถูกถ่ายออกมานั้นเป็นเพียงช่วงระยะเวลาสั้นๆที่กล้องได้บันทึกภาพไว้ ซึ่งมีความนิยมเป็นอย่างมากในการนำไปถ่ายความเปลี่ยนแปลงของธรรมชาติ สภาพแวดล้อมต่างๆที่มีการเปลี่ยนแปลงอย่างช้าๆ เช่น เมฆเคลื่อนที่บนท้องฟ้า ดาวเคลื่อนที่บนท้องฟ้า หรือ ดอกไม้ที่ค่อยๆบานในช่วงวัน

ซึ่งจากลักษณะการถ่ายภาพข้างต้น ทำให้เหมาะสมเป็นอย่างยิ่ง สำหรับการสังเกตถึงความคืบหน้าของการพิมพ์ 3 มิติ เพราะกว่าที่หัวฉีดจะทำการพิมพ์เส้นพลาสติกขึ้นมาแต่ละชั้น ก็ใช้เวลาเอาการอยู่ ถ้าจะถ่ายเป็นวิดีโอทั่วไป ก็จะเป็นวิดีโอที่มีความยาวหลายชั่วโมงเลยทีเดียว แต่ถ้าหากเป็นการถ่ายทำ Timelapse เราสามารถถ่ายทำเฉพาะเมื่อโมเดลมีการเปลี่ยนแปลงเท่านั้นได้ เช่น เมื่อมีการพิมพ์ Layer เสร็จสิ้น หรือ ทุกๆ 1 นาที ซึ่งจะช่วงให้วิดีโอสุดท้ายที่ได้จาก Timelapse สั้นกว่ามาก โดยอาจเหลือเพียงวิดีโอความยาวไม่ถึง 1 นาทีเท่านั้น (ขึ้นอยู่กับลักษณะการตั้งค่า Timelapse)

 

Octolapse ปลั๊กอินที่จะทำให้การถ่ายทำ Timelapse ด้วย Octoprint เป็นเรื่องกล้วยๆ

หากใครเคยใช้งานฟีเจอร์ Timelapse ของ Octoprint มาก่อนก็จะรู้ว่ามันไม่ได้มีอะไรที่แตกต่างจากการเอากล้องวงจรปิดมาถ่าย Timelapse เลย เพราะภาพที่ได้มีความละเอียดต่ำ และตาลายเพราะถ่ายทุกช่วงเวลา แต่ด้วยพลังของปลั๊กอิน Octolapse จะช่วยให้วิดีโอ Timelapse ของคุณชัดเหมือนมืออาชีพเลยทีเดียว โดย Octolapse สามารถช่วยให้เราตั้งค่าในส่วนต่างๆที่เกี่ยวข้องกับการถ่าย Timelapse ได้ ไม่ว่าจะเป็น resolution ของวิดีโอ Timelapse ที่ต้องการ, ช่วงเวลาที่ต้องการให้เว้นระยะการถ่าย, จุดที่ต้องการให้หัวฉีดเลื่อนไปหลบกล้อง และอื่นๆอีกมากมาย ไม่พิมพ์ให้เมื่อยมือ เรามาติดตั้งปลั๊กอิน Octolapse กันดีกว่า

วิธีการติดตั้งและตั้งค่า Octolapse plugin

  1. ไปที่ Setting เลือกหัวข้อ Plugin Manager แล้วกดปุ่ม Get More


     
  2. ทำการค้นหาโดยใช้คีย์เวิร์ด "Octolapse" แล้วทำการกด Install ได้เลย


     
  3. หลังจากนั้นจะปรากฏกล่องข้อความให้รีสตาร์ต Octoprint ให้กดปุ่ม Restart Now เพื่อทำการรีสตาร์ตตัวบอร์ด
     
  4. เมื่อบอร์ดเริ่มทำงานอีกครั้ง ให้คลิกที่สัญลักษณ์ทางด้านซ้ายบนของกราฟอุณหภูมิ (ดังภาพด้านล่าง) แล้วเลือก Octolapse 

  5. ทำการเพิ่มเครื่องพิมพ์ 3 มิติให้ Octolapse รู้จักก่อน โดยคลิกที่รูปเฟืองด้านขวาบนของกราฟอุณหภูมิ


     
  6. เลือกหัวข้อ Printer แล้วกดปุ่ม Add Profile...


     
  7. เมื่อเข้ามาแล้วให้ทำการตั้งชื่อเครื่องพิมพ์ 3 มิติที่ต้องการเพิ่มให้ Octolapse รู้จัก และตั้งค่าในส่วนของหัวข้อ Current Slicer Setting > Slicer Type ให้เป็น Automatic Configuration


     
  8. เลื่อนลงไปด้านล่างสุด แล้วกด Save



    ต่อมาเราจะมาทำการเพิ่ม Gcode ใน Slicer ที่เราใช้งานกัน โดย Gcode ในส่วนที่เราจะเพิ่มเข้าไปนี้จะทำงานร่วมกับ Octolapse ในการสั่งให้หัวพิมพ์ให้เคลื่อนที่ไปตามจุดที่เรากำหนด สำหรับการหลบมุมกล้อง หรือท่าทางอื่นๆตามที่เรากำหนดไว้ใน Octolapse โดยสามารถทำได้ ดังนี้
     
  9. ทำการเปิด Cura ขึ้นมา เลือก Preferences > Configure Cura... เลือกหัวข้อ Printers แล้วเลือกเครื่องพิมพ์ที่ต้องการตั้งค่า แล้วกดปุ่ม Machine Settings


     
  10. นำ G-code ด้านล่างไปวางไว้ในส่วนด้านบนสุดของ G-code เดิมในช่อง Start G-code โดยไม่ต้องลบ G-code ของเดิมออก โดยให้เว้นระยะห่าง 1 บรรทัดระหว่าง G-code ส่วนใหม่ที่นำเข้าไปวาง กับ G-code ส่วนเก่าที่มีอยู่แล้ว หลังจากนั้นกดปุ่มกากบาทออกมาได้เลย

    G-code ด้านล่างสำหรับ Cura เวอร์ชัน 4.2 ขึ้นไปเท่านั้น! ; Script based on an original created by tjjfvi (https://github.com/tjjfvi)
    ; An up-to-date version of the tjjfvi's original script can be found
    ; here: https://csi.t6.fyi/
    ; Note - This script will only work in Cura V4.2 and above!
    ; --- Global Settings
    ; layer_height = {layer_height}
    ; smooth_spiralized_contours = {smooth_spiralized_contours}
    ; magic_mesh_surface_mode = {magic_mesh_surface_mode}
    ; machine_extruder_count = {machine_extruder_count}
    ; --- Single Extruder Settings
    ; speed_z_hop = {speed_z_hop}
    ; retraction_amount = {retraction_amount}
    ; retraction_hop = {retraction_hop}
    ; retraction_hop_enabled = {retraction_hop_enabled}
    ; retraction_enable = {retraction_enable}
    ; retraction_speed = {retraction_speed}
    ; retraction_retract_speed = {retraction_retract_speed}
    ; retraction_prime_speed = {retraction_prime_speed}
    ; speed_travel = {speed_travel}

    สำหรับ Cura หรือ Slicer โปรแกรมอื่น สามารถอ่านเพิ่มเติมได้ตามบทความนี้ : V0.4 Automatic Slicer Configuration



     
  11. ไปที่หัวข้อ Camera โดยแบ่งออกเป็น 2 รูปแบบ ดังนี้
    1. กรณีใช้งานกล้อง USB Webcam หรือ Raspberry Pi camera (CSI Interface) : สามารถใช้งาน Default setting ตามที่ Octolapse กำหนดให้เราได้เลย โดยจะขึ้นชื่อของ Default camera ว่า Webcam ดังภาพด้านล่าง



       
    2. กรณีใช้งานกล้อง DSLR -  เราต้องทำการสร้าง script ให้ตัว Octolapse สามารถสั่งให้กล้องของเราถ่ายภาพและส่งมาเก็บใน Raspberry Pi ได้ โดยมีวิธีการ ดังนี้
      1. ทำการรีโมท SSH เข้าสู่ Raspberry Pi ที่รัน Octoprint อยู่ โดย Username และ Password นั้นคือ pi และ raspberry ตามลำดับ (กรณีที่ไม่ได้มีการเปลี่ยนแปลงรหัสผ่าน)


         
      2. ทำการสร้างสคริปสำหรับการถ่ายภาพ โดยใช้คำสั่ง nano /home/pi/scripts/take-snapshot.sh
      3. คัดลอกนำสคริปด้านล่าง วางลงในไฟล์สคริปที่สร้างขึ้นมา หลังจากนั้นทำการกด Ctrl+O เพื่อ Save และ Ctrl+X เพื่อออก #!/bin/sh
        # Put the arguments sent by Octolapse into variables for easy use
        SNAPSHOT_NUMBER=$1
        DELAY_SECONDS=$2
        DATA_DIRECTORY=$3
        SNAPSHOT_DIRECTORY=$4
        SNAPSHOT_FILENAME=$5
        SNAPSHOT_FULL_PATH=$6
        # Check to see if the snapshot directory exists
        if [ ! -d "${SNAPSHOT_DIRECTORY}" ];
        then
        echo "Creating directory: ${SNAPSHOT_DIRECTORY}"
        mkdir -p "${SNAPSHOT_DIRECTORY}"
        fi
        # IMPORTANT - You must add gphoto2 to your /etc/sudoers file in order to execute gphoto2 without sudo
        # otherwise the following line will fail.
        sudo gphoto2 --capture-image-and-download --filename "${SNAPSHOT_FULL_PATH}"
        if [ ! -f "${SNAPSHOT_FULL_PATH}" ];
        then
        echo "The snapshot was not found in the expected directory: '${SNAPSHOT_FULL_PATH}'." >&2
        exit 1
        fi
      4. กำหนดให้ Octoprint สามารถเข้าถึงไฟล์คริปนี้ได้ โดยใช้คำสั่ง chmod +x /home/pi/scripts/take-snapshot.sh
      5. ทำการทดสอบการทำงานของสคริปถ่ายภาพ โดยใช้คำสั่ง /home/pi/scripts/take-snapshot.sh 1 1 "" "/home/pi/scripts" "" "/home/pi/scripts/test.jpg"
      6. ซึ่งถ้าหากการทดสอบประสบความสำเร็จ เราจะได้ยินเสียงกล้องทำงาน โดยการถ่ายภาพ 1 ครั้ง และผลลัพธ์ที่แสดงออกมาจะได้ดังภาพ


         
      7. กลับไปที่ Octolapse เลือกหัวข้อ Camera แล้วกด Add Profile...


         
      8. ทำการตั้งค่าชื่อกล้องที่ต้องการเพิ่ม และเลือก Camera Type เป็น External Camera - Script


         
      9. ในส่วนของ External Camera Setup - Script > Sanpshot Acquire Script ให้ทำการคัดลอก Path ด้านล่างลงไปวาง
        *ลองกด Test Script เพื่อทดสอบว่า Script ตาม Path ที่เรากำหนดไป Octoprint สามารถเข้าถึงและใช้งานได้หรือไม่ ซึ่งหากใช้งานได้ ตัวกล้องก็จะทำการถ่ายภาพ 1 ครั้งหลังจากที่เรากด Test Script
        **
        โดยทั่วไปแล้ว Raspberry Pi มีโครงสร้าง Path ที่เหมือนกันทุกตัว ดังนั้น สามารถคัดลอก Path ข้างต้นเพื่อนำไปใช้ในการอ้างอิงตำแหน่งสคริปได้เลย /home/pi/scripts/take-snapshot.sh
      10. หลังจากตรวจสอบแล้วใช้งานได้ปกติ สามารถเลื่อนลงไปด้านล่างสุดแล้วกด Save ได้เลย
         
  12. หลังจากทำการเพิ่มกล้องเสร็จแล้ว สามารถไปที่หน้า Dashboard ของ Octolapse เพื่อตั้งค่าต่างๆที่เกี่ยวข้องกับการถ่าย Timelapse ของคุณได้เลย โดยมีรายละเอียด ดังนี้

    1. Printer - โปรไฟล์ของเครื่องพิมพ์ 3 มิติที่เลือกใช้งาน โดยให้เลือกให้ตรงกับรุ่นที่จะใช้ในการถ่ายทำ Timelapse ครั้งนั้นๆทุกครั้ง
    2. Stabilization - ตำแหน่งที่ต้องการให้หัวฉีดหลบไปอยู่เมื่อกล้องกำลังจะทำการถ่ายภาพชิ้นงาน โดยสามารถเลือกได้ตามต้องการ อาทิ Cetered (อยู่ตรงกลางนิ่งๆ), Left Back (หลังซ้าย) เป็นต้น
    3. Trigger - ช่วงเวลาที่ต้องการให้กล้องทำการถ่ายภาพ เช่น ทุกๆครั้งที่หัวพิมพ์มีการขยับไปฉีด Layer ถัดไป หรือ ถ่ายภาพทุกๆ 1 นาที เป็นต้น
    4. Rendering - ประเภทไฟล์วิดีโอและ framerate ที่ต้องการให้ Octolapse ทำการ render ไฟล์วืดีโอ Timelapse ของคุณออกมา เช่น MP4 - 60 FPS (MP4 ที่ 60fps)
    5. Cameras - กล้องที่ต้องการใช้ในการถ่าย Timelapse รอบนั้นๆ โดยสามารถมีกล้องมากกว่า 1 ตัวสำหรับการถ่าย Timelapse 1 ครั้งได้ กรณีที่กล้องตัวไหนไม่ได้ติดตั้งอยู่ในรอบนั้นๆ แนะนำให้ทำการนำเครื่องหมายติ๊กถูกออกด้วย
       
  13. กรณีที่บางชิ้นงานที่ไม่ต้องการถ่าย Timelapse ให้ทำการปิดสวิตช์ Plugin Enabled ทุกครั้งก่อนทำการพิมพ์ เพื่อที่จะไม่ต้องให้หัวพิมพ์ทำการเลื่อนหลบจากการที่ Octolapse สั่งให้หัวพิมพ์หลบกล้อง ทั้งๆที่ในรอบนั้นไม่มีการถ่ายทำ Timelapse ซึ่ง็จะทำให้ระยะเวลาที่ใช้ในการพิมพ์นานขึ้นโดยไม่มีประโยชน์


     
  14. เมื่อเริ่มพิมพ์โมเดล ก่อนการพิมพ์จะมีการถามก่อนว่าโอเคกับตำแหน่ง Stabilizer ตาม Snapshot Plan ที่ตั้งไว้แล้วหรือไม่ ถ้าโอเคก็สามารถกด Accept and Continue ได้เลย



    หลังจากนั้นตัวเครื่องพิมพ์ก็จะเริ่มทำการพิมพ์และถ่ายทำ Timelapse โดยอัตโนมัติ
     
  15. หลังจากการพิมพ์โมเดลเสร็จสิ้น เราสามารถดาว์นโหลดวิดีโอ Timelapse ที่ได้จาก Octolapse โดยกดที่ปุ่ม Videos and Images...  ซึ่งจะพบกับไฟล์วิดีโอ Timelapse ให้ทำการกดปุ่มสัญลักษณ์ดาว์นโหลดด้านหลังเพื่อดาว์นโหลดไฟล์เข้าสู่อุปกรณ์ของคุณได้ทันที





     

เป็นยังไงบ้านครับ ไม่ยากเลยใช่ไหมครับ สำหรับการถ่ายทำ Timelapse แบบมืออาชีพด้วย Octolapse

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

สำหรับใครที่ยังไม่ได้อ่านบทความก่อนหน้าเกี่ยวกับวิธีการเพิ่มกล้องให้ Raspberry Pi ที่ใช้งาน Octoprint สามารถอ่านได้ที่นี่ :

Octoprint The Series - EP5. ถ่ายทำ Timelapse สุดเจ๋งด้วย Octolapse

อ่านบทความถัดไปเกี่ยวกับการใช้งาน Ai ในการตรวจจับข้อผิดพลาดในการพิมพ์ได้ที่นี่ :

...Coming Soon...

เพื่อความสะดวกในการเริ่มต้นใช้งาน Octoprint ทาง Cytron Thailand ได้จัดเตรียมชุดอุปกรณ์พร้อมใช้งาน Octoprint ไว้ให้คุณแล้ว หากสนใจสามารถคลิกเพื่อดูได้ ที่นี่!
Artillery Hornet Octoprint ready kit


โพสต์ที่เกี่ยวข้อง

Octoprint The Series - EP1. ทำความรู้จัก Octoprint และวิธีการติดตั้งใช้งาน

Octoprint The Series - EP1. ทำความรู้จัก Octoprint และวิธีการติดตั้งใช้งาน

บทความนี้จะช่วยให้คุณสามารถติดตั้ง Octoprint ลงบน Raspberry Pi ของคุณได้ พร้อมตั้งการตั้งค่าที่จะช่วยให้คุณสามารถใช้งาน Octoprint ได้อย่างลื่นไหล..
Octoprint The Series - EP2. เตรียมไฟล์และเริ่มพิมพ์โมเดลผ่าน Octoprint ครั้งแรก

Octoprint The Series - EP2. เตรียมไฟล์และเริ่มพิมพ์โมเดลผ่าน Octoprint ครั้งแรก

บทความนี้จะช่วยให้คุณตั้งค่า Octoprint เพิ่มเติมให้เหมาะสมกับเครื่องพิมพ์ของคุณ พร้อมทั้งเตรียมไฟล์สำหรับการพิมพ์โมเดล 3 มิติครั้งแรกผ่าน Octoprint ด้วย Cura..