สารบัญ:
- ขั้นตอนที่ 1: หลักการทำงาน:
- ขั้นตอนที่ 2: บอร์ดของ Motion Controller
- ขั้นตอนที่ 3: รหัส Arduino
- ขั้นตอนที่ 4: รหัส Arduino 1 - ตำแหน่งหน้าแรกของราง
- ขั้นตอนที่ 5: Arduino Code 2 - ปุ่มกดแบบ Dual Function
- ขั้นตอนที่ 6: รหัส Arduino 3 – โหมดทาส
- ขั้นตอนที่ 7: รหัส Arduino 4 – Quad Ramping
- ขั้นตอนที่ 8: รหัส Arduino 5 – การผสานรวมกับ LRTimelapse Pro-Timer
- ขั้นตอนที่ 9: Arduino Code 6 – ตัวแปรและค่าของการตั้งค่า
- ขั้นตอนที่ 10: คำสองสามคำเกี่ยวกับรถไฟ
วีดีโอ: Motion Control Slider สำหรับ Time Lapse Rail: 10 ขั้นตอน (พร้อมรูปภาพ)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คำแนะนำนี้จะอธิบายวิธีสร้างมอเตอร์ไทม์แลปส์โดยใช้สเต็ปมอเตอร์ที่ขับเคลื่อนโดย Arduino เราจะเน้นที่ Motion Controller เป็นหลักซึ่งขับเคลื่อนสเต็ปมอเตอร์ สมมติว่าคุณมีรางที่ต้องการใช้มอเตอร์อยู่แล้ว
ตัวอย่างเช่น เมื่อทำการรื้อเครื่องจักร ฉันพบรางสองรางที่สามารถแปลงเป็นรางไทม์แลปส์ได้ รางหนึ่งใช้สายพานเพื่อขับเคลื่อนตัวเลื่อนและอีกรางหนึ่งใช้สกรู รูปภาพในคำแนะนำนี้แสดงรางที่ขับเคลื่อนด้วยสกรู แต่หลักการเดียวกันนี้ใช้กับรางที่ขับเคลื่อนด้วยสายพาน มีเพียงไม่กี่พารามิเตอร์ที่ต้องเปลี่ยนระหว่างการทดสอบเดินเครื่อง
ขั้นตอนที่ 1: หลักการทำงาน:
สำหรับการถ่ายภาพเหลื่อมเวลา ฉันใช้ Intervalometer ที่เรียกว่า LRTimelapse Pro-Timer ซึ่งออกแบบโดย Gunther Wegner นี่คือโอเพ่นซอร์ส Intervalometer คุณภาพสูงสำหรับช่างภาพไทม์แลปส์ มาโคร และแอสโทร ที่คุณสามารถสร้างได้ด้วยตัวเอง กุนเธอร์ ขอขอบคุณสำหรับเครื่องมือที่ยอดเยี่ยมนี้ที่คุณทำให้ชุมชนไทม์แลปส์ใช้งานได้ (สำหรับข้อมูลเพิ่มเติม โปรดดูที่ lrtimelapse-pro-timer-free)
ฉันเพิ่งเพิ่มรหัสเพื่อควบคุมสเต็ปเปอร์มอเตอร์
หลักการทำงาน: Time Lapse Rail ทำงานในโหมด Slave วิธีนี้ค่อนข้างน่าเชื่อถือ หมายความว่าฉันกำลังใช้ LRTimelapse Pro-Timer Intervalometer เพื่อตั้งค่าจำนวนช็อตและช่วงเวลาระหว่างช็อต เครื่องวัดระยะห่างจะส่งสัญญาณไปที่กล้องเพื่อลั่นชัตเตอร์ หลังจากถ่ายภาพแล้ว กล้องจะส่งสัญญาณกลับไปที่ตัวควบคุมการเคลื่อนไหวเพื่อเลื่อนแถบเลื่อนของรางในลำดับการย้าย/ถ่าย/เคลื่อนที่ สัญญาณเพื่อเริ่มซีเควนซ์มาจากแฟลชฮอทชูของกล้อง แฟลชของกล้องถูกตั้งค่าเป็น Rear-curtain Synchro ดังนั้นสัญญาณจะถูกส่งไปยังตัวควบคุมการเคลื่อนไหวเมื่อม่านของกล้องปิดลง ซึ่งหมายความว่าตัวเลื่อนจะเคลื่อนที่เมื่อปิดชัตเตอร์เท่านั้น ดังนั้นจะทำงานโดยไม่คำนึงถึงความยาวของการเปิดรับแสง
วัสดุ: ต้องใช้สายเคเบิลสองเส้นจากตัวควบคุมการเคลื่อนไหวไปยังกล้อง (เฉพาะรุ่นของกล้อง) 1) สายเคเบิลลั่นชัตเตอร์ของกล้องพร้อมแจ็ค 2.5 มม. และ 2) อะแดปเตอร์เสียบปลั๊กร้อนพร้อมสายเสียบแฟลช PC Sync แบบเสียบกับตัวผู้พร้อมสาย 3.5 มม. แจ็ค
ขั้นตอนที่ 2: บอร์ดของ Motion Controller
ฮาร์ดแวร์: การเคลื่อนที่ของตัวเลื่อนใช้สกรูที่เชื่อมต่อกับ NEMA 17 Stepper motor สเต็ปเปอร์มอเตอร์ขับเคลื่อนโดย EasyDriver ที่ควบคุมโดย Arduino UNO ในการใช้คอนโทรลเลอร์กับพาวเวอร์แบงค์อื่น (ตั้งแต่ 9v ถึง 30v) ฉันได้เพิ่มโมดูลแหล่งจ่ายไฟที่เข้ากันได้กับ LM2596 DC-DC Arduino เพื่อปรับแรงดันไฟฟ้า ดู “Arduino Wiring. PDF” ที่แนบมาด้วย
สายเคเบิลลั่นชัตเตอร์ของกล้องถูกเสียบเข้ากับคอนโทรลเลอร์โดยใช้แจ็ค 2.5 มม. แจ็คต่อสายตามแผนผังที่พบใน ลั่นชัตเตอร์. PDF” ที่แนบมา สายเคเบิลของ Hot Shoe Adapter เสียบเข้ากับคอนโทรลเลอร์โดยใช้แจ็ค 3.5 มม. การมี 2 ขนาดที่แตกต่างกันจะช่วยหลีกเลี่ยงการเสียบสายเคเบิลเข้ากับพอร์ตที่ไม่ถูกต้อง
ขั้นตอนที่ 3: รหัส Arduino
ก่อนการเข้ารหัส คุณควรแยกความแตกต่างระหว่างการกระทำต่างๆ ที่คุณต้องการทำให้สำเร็จ Arduino อนุญาตให้ใช้สิ่งที่เรียกว่าเป็นโมฆะ โมฆะเป็นส่วนหนึ่งของโปรแกรม (บรรทัดของรหัส) ที่สามารถเรียกได้ตลอดเวลาตามความจำเป็น ดังนั้น การดำเนินการแต่ละอย่างบนช่องว่างที่แยกจากกันทำให้โค้ดมีการจัดระเบียบและทำให้การเข้ารหัสง่ายขึ้น
Sketch Logics.pdf ที่แนบมาแสดงการกระทำที่ฉันต้องการบรรลุและตรรกะที่อยู่เบื้องหลัง
ขั้นตอนที่ 4: รหัส Arduino 1 - ตำแหน่งหน้าแรกของราง
โมฆะแรกใช้เพื่อส่งรางไปยังตำแหน่งโฮมเมื่อสตาร์ทคอนโทรลเลอร์
ตัวควบคุมมีสวิตช์สลับทิศทาง เมื่อสตาร์ทเครื่อง ตัวเลื่อนจะเคลื่อนที่ไปในทิศทางที่เลือกโดยปุ่มสลับ จนกว่าจะถึงสวิตช์จำกัดที่ส่วนท้ายของราง จากนั้นจะเคลื่อนกลับตามระยะทางที่ผู้ใช้กำหนด (นี่คือ 0 หรือค่าที่ตรงกับปลายด้านตรงข้ามของราง) นี่คือตำแหน่งเริ่มต้นสำหรับตัวเลื่อน
โมฆะนี้ได้รับการทดสอบโดยใช้รหัสที่พบในไฟล์แนบที่เรียกว่า BB_Stepper_Rail_ini.txt
ขั้นตอนที่ 5: Arduino Code 2 - ปุ่มกดแบบ Dual Function
โมฆะที่สองใช้เพื่อเลื่อนตัวเลื่อนด้วยตนเอง สิ่งนี้มีประโยชน์เมื่อคุณตั้งค่ากล้องของคุณโดยให้ครอบคลุมก่อนที่จะเริ่มลำดับไทม์แลปส์
ตัวควบคุมมีปุ่มกดที่มีสองฟังก์ชัน: 1) กดสั้นๆ (น้อยกว่าหนึ่งวินาที) เลื่อนตัวเลื่อนตามจำนวนที่ผู้ใช้กำหนด 2) กดยาว (มากกว่าหนึ่งวินาที) เลื่อนตัวเลื่อนไปที่ตรงกลางหรือปลายราง ทั้งสองฟังก์ชันจะส่งตัวเลื่อนไปในทิศทางที่เลือกโดยสวิตช์สลับ
โมฆะนี้ได้รับการทดสอบโดยใช้รหัสที่พบในไฟล์แนบที่เรียกว่า BB_Dual-function-push-button.txt
ขั้นตอนที่ 6: รหัส Arduino 3 – โหมดทาส
ช่องว่างที่สามใช้เพื่อเลื่อนตัวเลื่อนตามจำนวนที่กำหนดหลังจากการยิงแต่ละครั้ง แฟลชกล้องต้องตั้งค่าเป็น "ม่านหลัง" ในตอนท้ายของการถ่ายภาพ สัญญาณแฟลชจะถูกส่งจากแฟลชฮอทชูไปยังคอนโทรลเลอร์ สิ่งนี้จะเริ่มต้นลำดับและเลื่อนตัวเลื่อนตามจำนวนที่กำหนด ระยะทางสำหรับการเคลื่อนไหวแต่ละครั้งคำนวณโดยการหารความยาวของรางด้วยจำนวนช็อตที่เลือกใน LRTimelapse Pro-Timer อย่างไรก็ตาม ระยะสูงสุดสามารถกำหนดได้เพื่อหลีกเลี่ยงการเคลื่อนไหวอย่างรวดเร็วเมื่อจำนวนช็อตต่ำ
โมฆะนี้ได้รับการทดสอบโดยใช้รหัสที่พบในไฟล์แนบที่เรียกว่า Slave mode.txt
ขั้นตอนที่ 7: รหัส Arduino 4 – Quad Ramping
โมฆะที่สี่เป็นตัวเลือกที่เพิ่มเข้ามาเพื่อการผ่อนคลายที่ราบรื่นยิ่งขึ้น หมายความว่าระยะทางของการเคลื่อนไหวแต่ละครั้งจะค่อยๆเพิ่มขึ้นตามค่าที่ตั้งไว้และเมื่อสิ้นสุดรางจะลดลงในลักษณะเดียวกัน ส่งผลให้เมื่อดูลำดับเหลื่อมเวลาสุดท้าย การเคลื่อนไหวของกล้องจะเร็วขึ้นที่จุดเริ่มต้นของรางและช้าลงที่ปลายราง เส้นโค้งการเร่งความเร็ว Quad ทั่วไปจะแสดงในรูปภาพที่แนบมา (การค่อยๆ เข้าและออก) สามารถกำหนดระยะห่างของทางลาดได้
ฉันทดสอบอัลกอริธึมใน Excel และได้ตั้งค่าเส้นโค้งการเร่งความเร็วและการชะลอตัวตามภาพที่แนบมา โมฆะนี้ได้รับการทดสอบโดยใช้รหัสที่พบในไฟล์แนบที่เรียกว่า BB_Stepper_Quad-Ramping-calculation.txt
หมายเหตุ: ไม่ควรใช้การไล่ระดับแบบสี่เลนกับการไล่ระดับแสงแบบ Bulb โดยที่ความยาวการเปิดรับแสงเปลี่ยนไปหรือการเพิ่มช่วงห่างระหว่างช่วงภาพที่เปลี่ยน
ขั้นตอนที่ 8: รหัส Arduino 5 – การผสานรวมกับ LRTimelapse Pro-Timer
LRTimelapse Pro-Timer เป็น Open Source DIY Intervalometer ฟรีสำหรับช่างภาพไทม์แลปส์ มาโคร และแอสโตร ซึ่ง Gunther Wegner เปิดให้ชุมชนช่างภาพไทม์แลปส์ใช้งานได้ หลังจากสร้างยูนิตสำหรับกล้องของฉันแล้ว ฉันพบว่ามันดีมากจนฉันเริ่มคิดว่าจะขับรถรางอย่างไร LRTimelapse Pro-Timer 091_Logics.pdf ที่แนบมานี้เป็นคู่มือสั้นๆ ที่แสดงวิธีการไปยังส่วนต่างๆ ของโปรแกรม
BB_Timelapse_Arduino-code.pdf ที่แนบมาแสดงโครงสร้างของ LRTimelapse Pro-Timer Free 0.91 และเส้นสีเขียวของโค้ดที่ฉันเพิ่มเพื่อใช้งานตัวเลื่อน
BB_LRTimelapse_091_VIS.zip มีโค้ด Arduino หากคุณต้องการลองใช้
เอกสาร BB_LRTimer_Modif-Only.txt ที่แนบมาแสดงรายการส่วนเพิ่มเติมที่ฉันทำกับ Pro-Timer ทำให้ง่ายต่อการรวมเข้ากับ Pro-Timer เวอร์ชันใหม่เมื่อ Gunther เปิดให้ใช้งาน
ขั้นตอนที่ 9: Arduino Code 6 – ตัวแปรและค่าของการตั้งค่า
ระยะพิทช์ของสกรูอาจแตกต่างกันไป หรือหากใช้สายพาน ระยะพิทช์ของสายพานและจำนวนฟันบนรอกก็อาจแตกต่างกันเช่นกัน นอกจากนี้ จำนวนขั้นต่อการหมุนของสเต็ปเปอร์มอเตอร์และความยาวของรางอาจแตกต่างกัน ส่งผลให้จำนวนขั้นในการข้ามความยาวของรางเปลี่ยนจากรางหนึ่งไปอีกรางหนึ่ง
ในการปรับคอนโทรลเลอร์ให้เข้ากับรางต่างๆ ตัวแปรบางตัวสามารถปรับได้ในโปรแกรม:
- คำนวณจำนวนขั้นที่สอดคล้องกับความยาวของรางระหว่างลิมิตสวิตช์ ป้อนค่าในตัวแปร: endPos แบบยาว (เช่น ค่านี้คือ 126000 สำหรับรางที่ขับเคลื่อนด้วยสกรูที่แสดงในคำแนะนำนี้)
- ในการดูองค์ประกอบเฟรมที่จุดเริ่มต้น ตรงกลาง และจุดสิ้นสุดของรางเมื่อใช้เอฟเฟกต์การขยาย ฉันใช้ตัวเลือกการกดแบบยาวกับปุ่มกด ป้อนจำนวนขั้นตอนที่ตรงกับตรงกลางของรางในตัวแปร: midPos แบบยาว (เช่น ค่านี้คือ 63000 สำหรับรางที่ขับเคลื่อนด้วยสกรูที่แสดงในคำแนะนำนี้)
- ใน LRTimelapse Pro-Timer คุณต้องป้อนจำนวนภาพที่คุณต้องการถ่าย โปรแกรมแบ่งความยาวของรางด้วยตัวเลขนี้ หากคุณถ่ายภาพ 400 ภาพและรางของคุณคือ 1 เมตร การเคลื่อนไหวของตัวเลื่อนแต่ละตัวจะเท่ากับ 1,000:400= 2.5 มม. สำหรับ 100 ภาพ ค่าจะเป็น 10 มม. นี่มากเกินไปสำหรับการย้ายครั้งเดียว ดังนั้นคุณอาจตัดสินใจที่จะไม่ใช้รางของคุณเต็มความยาว ป้อนการเคลื่อนไหวสูงสุดที่อนุญาตในตัวแปร: const int maxLength (เช่น ค่านี้คือ 500 สำหรับรางที่ขับเคลื่อนด้วยสกรูที่แสดงในคำแนะนำนี้)
- เมื่อกดปุ่มน้อยกว่าหนึ่งวินาที มันจะเลื่อนตัวเลื่อนตามระยะทางที่กำหนดซึ่งสามารถตั้งค่าได้ในตัวแปร: int inchMoveval (เช่น ค่านี้คือ 400 สำหรับรางที่ขับเคลื่อนด้วยสกรูที่แสดงในคำแนะนำนี้)
- Quad Ramping ช่วยให้เข้าและออกได้อย่างราบรื่น คุณสามารถเลือกได้ว่าทางลาดจะอยู่ที่จุดเริ่มต้นและจุดสิ้นสุดของรางเท่าใด ค่านี้ป้อนเป็นเปอร์เซ็นต์ของความยาวของรางในตัวแปร: อัตราส่วนลอย (เช่น 0.2 = 20% ของความยาวของราง)
ขั้นตอนที่ 10: คำสองสามคำเกี่ยวกับรถไฟ
รางมีความยาวหนึ่งเมตร มันทำจากตัวเลื่อนแบริ่งเชิงเส้นโหลดหนักที่ยึดติดกับแถบการอัดรีดอลูมิเนียมแบบ slotted ฉันซื้อแถบอัดรีดและอุปกรณ์เสริมจาก RS.com (ดูรูปที่แนบ rs items.jpg) รางมีสี่ขา แต่ยังสามารถติดตั้งบนขาตั้งกล้องได้ด้วยสกรูมาตรฐาน
Spanning: หัวบอลของขาตั้งกล้อง (ตามภาพที่แนบ) ติดตั้งอยู่บนตัวเลื่อน แขนเล็ก ๆ เชื่อมต่อหัวกับสกรู หากคุณเลื่อนสกรูออกจากรางด้านหนึ่ง คุณจะได้มุมระหว่างสกรูกับราง เมื่อตัวเลื่อนเคลื่อนไปตามรางจะทำให้เกิดการหมุนของหัวบอล หากคุณไม่ต้องการคลี่คลายสกรูให้ขนานกับราง
คอนโทรลเลอร์ติดตั้งอยู่บนตัวเลื่อน ฉันเลือกตัวเลือกนั้น - แทนที่จะใช้ตัวควบคุมที่ปลายด้านหนึ่งของราง - เพื่อหลีกเลี่ยงไม่ให้สายเคเบิลหลายเส้นวิ่งไปตามราง ฉันมีสายเคเบิลเพียงเส้นเดียวระหว่างพาวเวอร์แบงค์กับคอนโทรลเลอร์ สายเคเบิลอื่นๆ ทั้งหมด ไปที่สเต็ปมอเตอร์ ลิมิตสวิตช์ สายชัตเตอร์ไปยังกล้อง และสายซิงโครจากกล้องทั้งหมดจะเคลื่อนที่พร้อมกับคอนโทรลเลอร์
สกรูกับเข็มขัด: สำหรับการถ่ายภาพเหลื่อมทั้งสองแบบทำงานได้ดี สายพานช่วยให้เคลื่อนที่ได้เร็วกว่าเมื่อเทียบกับสกรู ซึ่งอาจเป็นประโยชน์ในกรณีที่คุณต้องการเปลี่ยนรางให้กลายเป็นตัวเลื่อนวิดีโอ ข้อดีอย่างหนึ่งของการออกแบบสกรูคือ เมื่อคุณวางรางในแนวตั้งหรือทำมุม ในกรณีที่ไฟฟ้าดับ ตัวเลื่อนจะอยู่นิ่งและจะไม่ตก ฉันขอแนะนำอย่างยิ่งให้ระมัดระวังเมื่อคุณทำสิ่งเดียวกันกับรางที่ขับเคลื่อนด้วยสายพาน ในกรณีที่ไฟดับหรือหากพลังงานหมด กล้องจะเลื่อนลงไปที่ด้านล่างของรางโดยยอมรับความเสี่ยงเอง!