สารบัญ:
- ขั้นตอนที่ 1: รวบรวมชิ้นส่วนและไฟล์
- ขั้นตอนที่ 2: ประกอบวงจร
- ขั้นตอนที่ 3: อัปโหลดซอร์สโค้ดไปยัง Arduino
- ขั้นตอนที่ 4: ใช้งานคอนโทรลเลอร์
- ขั้นตอนที่ 5: เริ่มถ่ายภาพ
วีดีโอ: Arduino Controller สำหรับการถ่ายภาพผลิตภัณฑ์ 360° แบบอัตโนมัติ: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
มาสร้างคอนโทรลเลอร์ที่ใช้ 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 ได้ที่ 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: ใช้งานคอนโทรลเลอร์
โค้ดตามลำดับของคอนโทรลเลอร์ใช้ทำอะไร? หากคุณกดปุ่ม "การถ่ายภาพ" จะทำงาน การถ่ายภาพแต่ละครั้งเป็นการวนซ้ำตามลำดับต่อไปนี้:
- กล้องถูกทริกเกอร์
- ความล่าช้าสั้น
- Steppermotor จะหมุนจำนวนองศาที่กำหนดไว้ล่วงหน้า
- ความล่าช้าสั้น
การถ่ายภาพขึ้นอยู่กับชุดของตัวแปรที่กำหนดพฤติกรรมที่แน่นอน คุณสามารถเปลี่ยนตัวแปรเหล่านี้ได้ในซอร์สโค้ด (สำหรับเวอร์ชันคอนโทรลเลอร์อย่างง่าย) หรือในเมนูแสดงผล (เวอร์ชันคอนโทรลเลอร์ขั้นสูง)
การใช้งานตัวควบคุมพื้นฐาน:
บนตัวควบคุมพื้นฐาน ไฟ 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
แนะนำ:
การปรับเปลี่ยนเซอร์โวเป็นการหมุน 360° และมอเตอร์เกียร์: 4 ขั้นตอน
การปรับเปลี่ยนเซอร์โวเป็นการหมุน 360 องศาและมอเตอร์เกียร์: ในคำแนะนำนี้ฉันจะแสดงวิธีแก้ไขเซอร์โว 9g สำหรับการหมุน 360 องศา ซึ่งจะมีประโยชน์มากหากคุณวางแผนที่จะสร้างรถแลนด์โรเวอร์ขนาดเล็กด้วยการใช้ไมโครคอนโทรลเลอร์ gpio ขั้นต่ำ นอกจากนี้ หากคุณมีเซอร์โวที่เสียหาย คุณสามารถแปลงค่าเหล่านั้น
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: 17 ขั้นตอน (พร้อมรูปภาพ)
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: โครงการนี้เป็นวิวัฒนาการของคำสั่งก่อนหน้าของฉัน: APIS - ระบบชลประทานพืชอัตโนมัติฉันใช้ APIS มาเกือบปีแล้วและต้องการปรับปรุงจากการออกแบบก่อนหน้านี้: ความสามารถในการ ตรวจสอบโรงงานจากระยะไกล นี่คือวิธีที่
360° Time Lapse Mount ราคาถูกมาก V2.0: 4 ขั้นตอน
360° Time Lapse Mount V2.0 ราคาถูกมาก: นี่คือการอัปเกรดของ 360° เม้าท์ไทม์แล็ปส์ราคาถูกมาก v1.0 ที่นี่ ในเวอร์ชันนี้ ฉันจะทำการเมานต์เพื่อใช้ GoPro ของฉันโดยไม่มีเคสและเสียบสายไฟเพื่อทำให้ไทม์แล็ปส์นานกว่าอายุการใช้งานแบตเตอรี่
วิธีใช้เครื่องสแกนเลเซอร์ RPLIDAR 360° กับ Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
วิธีใช้เครื่องสแกนเลเซอร์ RPLIDAR 360° กับ Arduino: ฉันเป็นแฟนตัวยงของการสร้างหุ่นยนต์ซูโม่ และฉันมักจะมองหาเซ็นเซอร์และวัสดุใหม่ที่น่าสนใจเพื่อใช้สร้างหุ่นยนต์ที่ดีขึ้น เร็วขึ้น และฉลาดขึ้น ฉันพบข้อมูลเกี่ยวกับ RPLIDAR A1 ซึ่งคุณสามารถซื้อได้ในราคา $99 ที่ DFROBOT.com ฉันบอกว่าฉันอิน
กล้องติดตามลูกบอล 180°: 5 ขั้นตอน (พร้อมรูปภาพ)
กล้องติดตามลูกบอล 180°: ยินดีต้อนรับสู่โครงการแรกของฉัน! ฉันตื่นเต้นที่จะแบ่งปันสิ่งที่ฉันทำและแสดงขั้นตอนในการสร้างกล้องติดตามของคุณเอง โครงการนี้เกิดขึ้นได้โดยใช้ไลบรารี OpenCV ร่วมกับ Python