สารบัญ:

Arduino Controller สำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติ: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Controller สำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติ: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Controller สำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติ: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Controller สำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติ: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Controller for DIY Automated Turntable with Camera Shutter for 360° Product Photography 2024, พฤศจิกายน
Anonim
Image
Image
รวบรวมชิ้นส่วนและไฟล์
รวบรวมชิ้นส่วนและไฟล์

มาสร้างคอนโทรลเลอร์ที่ใช้ Arduino กันซึ่งควบคุมสเต็ปเปอร์มอเตอร์และชัตเตอร์ของกล้อง ร่วมกับแท่นหมุนที่ขับเคลื่อนด้วยสเต็ปเปอร์มอเตอร์ นี่คือระบบที่มีประสิทธิภาพและต้นทุนต่ำสำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติหรือการวัดภาพถ่าย ชัตเตอร์กล้องอัตโนมัติมีพื้นฐานมาจากไลบรารีที่ยอดเยี่ยมจาก "Sebastian Setz" และใช้งานได้กับกล้องทริกเกอร์อินฟราเรดของ Nikon, Canon, Minolta, Olympus, Pentax, Sony

ฉันได้เตรียมคอนโทรลเลอร์สองเวอร์ชัน:

  • รุ่นพื้นฐานที่ทำงานด้วยปุ่มกดธรรมดาและไฟ LED แสดงสถานะ
  • รุ่นขั้นสูงที่ใช้แผงปุ่มกด 16x2 LCD + และมีเมนูสำหรับเปลี่ยนตัวแปร "ทันที" และไม่ใช่เฉพาะในซอร์สโค้ดเท่านั้น

ตัวควบคุมทำอะไร?

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

ขั้นตอนที่ 1: รวบรวมชิ้นส่วนและไฟล์

รวบรวมชิ้นส่วนและไฟล์
รวบรวมชิ้นส่วนและไฟล์
รวบรวมชิ้นส่วนและไฟล์
รวบรวมชิ้นส่วนและไฟล์

อะไหล่:

  • Arduino Uno (หรือคล้ายกัน)
  • เขียงหั่นขนม (เขียงหั่นขนมครึ่งขนาดพอดี)
  • Easydriver สเต็ปเปอร์มอเตอร์ไดร์เวอร์
  • 2X ฮีทซิงค์สำหรับ Easydriver (อุปกรณ์เสริม แต่แนะนำเป็นอย่างยิ่ง) https://www.sparkfun.com/products/11510 คุณจะต้องใช้เทปความร้อนเพื่อยึดฮีทซิงค์เข้ากับชิป หากคุณสั่งซื้อฮีทซิงค์ ตรวจสอบให้แน่ใจว่าได้รวมเทปเทอร์มอลหรือสามารถสั่งซื้อแยกต่างหากได้
  • LED อินฟราเรด 950nm (สำหรับทริกเกอร์กล้อง IR)
  • ตัวต้านทาน 220 โอห์ม (ตัวต้านทานล่วงหน้าสำหรับ LED อินฟราเรด)
  • องค์ประกอบเสียง Piezo (ไม่บังคับ หากคุณต้องการให้มีเสียงตอบรับ)
  • สายจัมเปอร์บางสาย
  • แหล่งจ่ายไฟภายนอกสำหรับ Steppermotor ฉันได้สร้างประสบการณ์ที่ดีกับอะแดปเตอร์แปลงไฟ 12V 1A เพื่อขับ 1A NEMA 17 Steppermotor จาก Trinamic ฉันยังมีอะแดปเตอร์แปลงไฟ 24V 3A ใช้งานอยู่ด้วย บอร์ด Easydriver รองรับสูงสุด 30V และ 750mA ต่อเฟส ข้อมูลเพิ่มเติมเกี่ยวกับ easydriver-specs ได้ที่นี่:
  • ซ็อกเก็ตสำหรับแหล่งจ่ายไฟภายนอกของสเต็ปเปอร์มอเตอร์
  • Bipolar NEMA 17 Steppermotor และ Turntable เช่น ลิงค์ FluxGarage „Automated Turntable With Steppermotor“Link:

เพิ่มสำหรับปุ่มกดควบคุมพื้นฐาน …

  • ปุ่มกด
  • ตัวต้านทาน 10k ohms (สำหรับปุ่มกด)
  • LED (สถานะนำ)
  • ตัวต้านทาน 220 โอห์ม (ตัวต้านทานล่วงหน้าสำหรับไฟ LED แสดงสถานะ)

… หรือเพิ่มสำหรับคอนโทรลเลอร์ขั้นสูงด้วยเมนู display+keypad:

Adafruit LCD Shield Kit พร้อมจอแสดงผลอักขระ 16x2 เช่น

ดาวน์โหลดโค้ด Arduino และไดอะแกรม Fritzing สำหรับคอนโทรลเลอร์พื้นฐานและขั้นสูง:https://github.com/FluxGarage/Controller-for-Steppp…

หากคุณต้องการเปิดเอกสาร Fritzing สำหรับคอนโทรลเลอร์ขั้นสูง อย่าลืมดาวน์โหลดและติดตั้งองค์ประกอบ adafruit:

โปรดทราบ: ในภาพ ฉันใช้ FluxGarage "Tinkerer's Baseplate" และ FluxGarage "Front Plate for 16x2 LCD + Keypad Shield" การใช้องค์ประกอบเหล่านี้เป็นทางเลือก หากคุณต้องการใช้เช่นกัน ให้คลิกที่ลิงก์สำหรับคำแนะนำที่เกี่ยวข้อง

ขั้นตอนที่ 2: ประกอบวงจร

ประกอบวงจร
ประกอบวงจร
ประกอบวงจร
ประกอบวงจร
ประกอบวงจร
ประกอบวงจร

บอร์ด Solder Easydriver สำหรับการใช้งานเขียงหั่นขนม:หากต้องการใช้ easydriver บนเขียงหั่นขนม คุณต้องบัดกรีส่วนหัวของพินตัวผู้บนบอร์ด วิธีที่ดีที่สุดคือการใส่ส่วนหัวของหมุดตัวผู้ลงในเขียงหั่นขนม วาง easydriver ไว้ด้านบน แล้วบัดกรีหมุด

การเดินสาย: เดินสายชิ้นส่วนต่างๆ ตามที่แสดงในภาพกราฟิกเกี่ยวกับ Fritzing สำหรับตัวควบคุมพื้นฐานหรือขั้นสูง ดาวน์โหลดไดอะแกรม Firtz บน github ค้นหาลิงก์ในขั้นตอนที่ 1

ตรวจสอบอีกครั้งว่าทุกอย่างเชื่อมต่อดังนี้:

  • Arduino ดิจิตอลพิน 02 = พิน dir ของEasydriver
  • Arduino ดิจิตอลพิน 03 = สเต็ปพินของEasydriver
  • Arduino digital pin 09 = เอาต์พุตสำหรับ piezo
  • Arduino ดิจิตอลพิน 12 = เอาต์พุตสำหรับ LED อินฟราเรด (วางตัวต้านทานล่วงหน้า 220 โอห์มก่อนนำ)

+ สำหรับตัวควบคุมพื้นฐาน:

  • Arduino digital pin 04 = อินพุตสำหรับปุ่มกด (วางตัวต้านทาน 10k ohms ก่อนกราวด์ของปุ่ม)
  • Arduino ดิจิตอลพิน 13 = เอาต์พุตสำหรับ LED แสดงสถานะ (วางตัวต้านทานล่วงหน้า 220 โอห์มก่อนไฟ LED)

+ สำหรับตัวควบคุมขั้นสูง:

วางจอแสดงผล + แผงปุ่มกดบน Arduino จริง ๆ แล้วใช้พินเหล่านั้น: Arduino analog pin A4 + A5 และ 5V + GND

Connect Steppermotor:การเดินสายไฟสเต็ปเปอร์มอเตอร์แบบไบโพลาร์ (4 สาย) เป็นเรื่องเกี่ยวกับการเชื่อมต่อคอยล์ทั้งสอง (A และ B) ของมอเตอร์เข้ากับพินด้านขวาของบอร์ด easydriver ลองดูภาพกราฟิกตรงกลางหน้านี้และที่ ข้อมูลจำเพาะของสเต็ปเปอร์มอเตอร์เฉพาะของคุณ:https://www.schmalzhaus.com/EasyDriver/index.html

คุณยังสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการเดินสายสเต็ปเปอร์มอเตอร์และ Easydriver ได้ที่นี่:

เชื่อมต่อแหล่งจ่ายไฟภายนอกบอร์ด Easydriver มีพินไฟฟ้าสองตัวแยกกันที่ด้านขวาบน (M+ และกราวด์) ในขณะที่ตัวบอร์ดเองได้รับพลังงานจาก Arduino อินพุตแยกต่างหากจะให้พลังงานสำหรับสเต็ปเปอร์มอเตอร์ หากคุณใช้อะแดปเตอร์แปลงไฟแบบ "แกะกล่อง" ทั่วไปและซ็อกเก็ต คุณควรเชื่อมต่อสาย "+" กับพิน "M+" ของ easydriver และสาย "-" กับหมุด "GND" ของ easydriver โดยปกติ “+” จะอยู่ที่ด้านใน ในขณะที่ “-” จะอยู่ด้านนอกของปลั๊ก แต่โปรดระวัง อะแดปเตอร์แปลงไฟบางตัวอนุญาตให้เปลี่ยนขั้วได้! หากคุณต่อสาย easydriver ของคุณไม่ถูกต้อง มันอาจจะและอาจเสียหายได้ พึงระลึกไว้เสมอว่า

ขั้นตอนที่ 3: อัปโหลดซอร์สโค้ดไปยัง Arduino

อัปโหลดซอร์สโค้ดไปยัง Arduino
อัปโหลดซอร์สโค้ดไปยัง Arduino

ดาวน์โหลดซอร์สโค้ด Arduino ได้ที่ Github:https://github.com/FluxGarage/Controller-for-Steppermotor-Turntable-and-IR-Camera-Shutter

ดาวน์โหลด Arduino IDE:

www.arduino.cc/en/Main/Software

ดาวน์โหลดไลบรารีบุคคลที่สามและคัดลอกไปยังโฟลเดอร์ไลบรารีของ IDE ของคุณ:… สำหรับชัตเตอร์กล้อง:https://github.com/dharmapurikar/Arduino/tree/mast…… สำหรับ Adafruit 16x2 Display+Keypad Shield:https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

รหัสได้รับการทดสอบและทำงานได้ดีกับ Arduino IDE ล่าสุด (1.8.7 บน windows) และ Arduino Uno + Easydriver Stepper motor Driver + Adafruit 16x2 Display + Keypad Shield + สเต็ปเปอร์มอเตอร์ Trinamic และกล้อง Nikon D60

ปรับโค้ดเพื่อใช้งานกับกล้องเฉพาะของคุณ: ตามที่กล่าวไว้ ฉันใช้ไลบรารี „multiCameraIrControl.h“โดย Sebastian Setz เพื่อให้ใช้งานได้กับกล้องของคุณ คุณต้องลบเครื่องหมายทับความคิดเห็นก่อนชื่อผู้ผลิตกล้องของคุณ และแน่นอนว่าเพิ่มเครื่องหมายทับก่อนชื่อผู้ผลิตรายอื่นๆ ทั้งหมด:

// ตั้งค่าประเภทกล้องNikon D5000(12);//Canon D5(12);//Minolta A900(12);//Olympus E5(12);//Pentax K7(12);//Sony A900(12);

ทำการปรับที่คล้ายกันในฟังก์ชัน "snap":

// ถ่ายภาพโมฆะ snap(){D5000.shotNow();//D5.shotNow();//A900.shotNow();//E5.shotNow();//K7.shotNow();//A900.shotNow();}

โปรดทราบ: ขออภัย ฉันยังไม่สามารถทดสอบกล้อง IR ทริกเกอร์อื่นๆ ได้นอกจาก Nikon D60 ของฉันเอง ไลบรารีชัตเตอร์ของกล้องควรทำงานร่วมกับกล้องหลายตัวของผู้ผลิตหลายราย ไม่เพียงเฉพาะรุ่นของกล้องที่กล่าวถึงในโค้ดเท่านั้น จะดีมากถ้าคุณโพสต์ความคิดเห็นเกี่ยวกับประสบการณ์ของคุณกับกล้อง Canon, Minolta, Olympus, Pentax หรือ Sony

ขั้นตอนที่ 4: ใช้งานคอนโทรลเลอร์

ใช้งานคอนโทรลเลอร์
ใช้งานคอนโทรลเลอร์
ใช้งานคอนโทรลเลอร์
ใช้งานคอนโทรลเลอร์

โค้ดตามลำดับของคอนโทรลเลอร์ใช้ทำอะไร? หากคุณกดปุ่ม "การถ่ายภาพ" จะทำงาน การถ่ายภาพแต่ละครั้งเป็นการวนซ้ำตามลำดับต่อไปนี้:

  1. กล้องถูกทริกเกอร์
  2. ความล่าช้าสั้น
  3. Steppermotor จะหมุนจำนวนองศาที่กำหนดไว้ล่วงหน้า
  4. ความล่าช้าสั้น

การถ่ายภาพขึ้นอยู่กับชุดของตัวแปรที่กำหนดพฤติกรรมที่แน่นอน คุณสามารถเปลี่ยนตัวแปรเหล่านี้ได้ในซอร์สโค้ด (สำหรับเวอร์ชันคอนโทรลเลอร์อย่างง่าย) หรือในเมนูแสดงผล (เวอร์ชันคอนโทรลเลอร์ขั้นสูง)

การใช้งานตัวควบคุมพื้นฐาน:

บนตัวควบคุมพื้นฐาน ไฟ LED แสดงสถานะจะแสดงเมื่อระบบพร้อมที่จะดำเนินการ ไฟ LED จะดับลงเมื่อคุณเริ่มถ่ายภาพ คุณสามารถหยุดการถ่ายภาพโดยกดปุ่มค้างไว้จนกว่า "เสียงขัดจังหวะ" จะปรากฏขึ้นและเครื่องเล่นแผ่นเสียงจะหยุดลง ดูวิดีโอในส่วนด้านบนของคำแนะนำนี้เพื่อดูสิ่งนี้ใน "ชีวิตจริง"

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

การยิงแบบ int = 20; // จำนวนขั้นตอนสำหรับการปฏิวัติเต็มรูปแบบ ควรเป็น 10, 20 หรือ 40float ความเร็วในการถ่ายภาพ = 0.01; // ความเร็วในการหมุน: ตัวเลขใดก็ได้ตั้งแต่.01 -> 1 โดยที่ 1 เร็วที่สุด - ช้ากว่าจะแรงกว่า (ช้ากว่า = ดีกว่าสำหรับวัตถุ "หนัก") int การถ่ายภาพดีเลย์ = 1,000; // แบ่งหน่วยเป็นมิลลิวินาทีก่อนและหลังการหมุนแต่ละครั้ง

การใช้งานตัวควบคุมขั้นสูง:

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

  • ST = จำนวนขั้น อาจเป็น 10, 20 หรือ 40
  • SP = ความเร็วในการหมุน ได้ 1-5 ขณะที่ 1 ช้าที่สุด
  • DE = หน่วงเวลาก่อนและหลังแต่ละขั้นตอนในสิบวินาที อาจเป็น 5, 10, 25, 50
  • LI = กำหนดว่าไฟพื้นหลังของจอแสดงผลเปิดหรือปิดขณะถ่ายภาพ สามารถเป็น 1 = เปิดหรือ 0 = ปิด

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

ขั้นตอนที่ 5: เริ่มถ่ายภาพ

เริ่มยิง
เริ่มยิง

หากคุณได้สร้างคอนโทรลเลอร์ + เครื่องเล่นแผ่นเสียงของคุณเองและกล้องของคุณพร้อมแล้ว คุณก็พร้อมแล้วที่จะเริ่มถ่ายภาพ … เกือบ ให้ฉันแบ่งปันการเรียนรู้บางส่วนจากการทดลองของฉันเอง:

  • ใช้เต็นท์แสงส่องวัตถุของคุณอย่างสม่ำเสมอ คุณสามารถหาบทช่วยสอนดีๆ มากมายได้ที่นี่ที่ Instrucables.com ซึ่งจะแสดงวิธีสร้างไลท์บ็อกซ์แบบ DIY นอกจากนี้ยังมีเต๊นท์แสงสิ่งทอราคาไม่แพงที่สามารถซื้อได้ในร้านค้าออนไลน์หลายแห่ง
  • ใช้หลอดไฟที่มีอุณหภูมิสีเท่ากัน (เคลวิน)
  • ปรับโฟกัสวัตถุบนจานหมุนด้วยตนเอง ปิดใช้งานการโฟกัสอัตโนมัติของกล้อง
  • ปิดระบบป้องกันภาพสั่นไหวของกล้องหากใช้ขาตั้งกล้อง
  • เลือกช่วงการวัดในพื้นหลัง โดยที่วัตถุที่ถ่ายจะไม่ปรากฏ เมื่อทำเช่นนี้ คุณจะหลีกเลี่ยงการกะพริบในลำดับภาพของคุณ อีกวิธีหนึ่งคือการตั้งเวลาเปิดรับแสงของกล้องด้วยตนเอง ฯลฯ
  • หากคุณต้องการรวมภาพ 360 องศาในเว็บไซต์ของคุณ ให้ใช้ปลั๊กอินจาวาสคริปต์ เช่น “ปลั๊กอิน Jquery Reel” โดย Petr Vostřel นามแฝง „PISI” → https://jquery.vostrel.cz/reel„360 Degrees Product Viewer“โดย „Codyhouse “→

นี่คือผลลัพธ์ของการยิงของฉัน (สร้างด้วยการตั้งค่าด้านบน):https://www.fluxgarage.com/turntable_360viewer.html

แนะนำ: