Πίνακας περιεχομένων:

Arduino Controller for Automated 360 ° Photo Product: 5 Steps (with Pictures)
Arduino Controller for Automated 360 ° Photo Product: 5 Steps (with Pictures)

Βίντεο: Arduino Controller for Automated 360 ° Photo Product: 5 Steps (with Pictures)

Βίντεο: Arduino Controller for Automated 360 ° Photo Product: 5 Steps (with Pictures)
Βίντεο: 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 status.
  • Μια προηγμένη έκδοση που χρησιμοποιεί ασπίδα πληκτρολογίου LCD + 16x2 και έτσι έχει ένα μενού για την αλλαγή των μεταβλητών «εν κινήσει» και όχι μόνο στον πηγαίο κώδικα.

Τι κάνει ο ελεγκτής;

Εάν ενεργοποιήσετε μια "φωτογράφιση" πιέζοντας το κουμπί, το πικάπ εκτελεί μια πλήρη περιστροφή, χωρισμένο σε προκαθορισμένο αριθμό βημάτων. Μετά από κάθε βήμα περιστροφής, ο ελεγκτής κάνει ένα μικρό διάλειμμα και στη συνέχεια ενεργοποιεί την κάμερα. Θα μπορείτε να αλλάξετε τις μεταβλητές της ταχύτητας περιστροφής, τον χρόνο καθυστέρησης και τον αριθμό των βημάτων στον πηγαίο κώδικα (για απλή έκδοση χειριστηρίου) ή στο μενού οθόνης (προηγμένη έκδοση ελεγκτή).

Βήμα 1: Συγκέντρωση εξαρτημάτων και αρχείων

Συγκεντρώστε μέρη και αρχεία
Συγκεντρώστε μέρη και αρχεία
Συγκεντρώστε μέρη και αρχεία
Συγκεντρώστε μέρη και αρχεία

Μέρη:

  • Arduino Uno (ή παρόμοιο)
  • Breadboard (ταιριάζει σε ψωμί με μισό μέγεθος)
  • Easydriver Stepper Motor Driver
  • 2X Heatsink for Easydriver (προαιρετικό αλλά συνιστάται ιδιαίτερα) https://www.sparkfun.com/products/11510Θα χρειαστείτε θερμική ταινία για να στερεώσετε τη ψύκτρα στο τσιπ. Εάν παραγγείλετε τη ψύκτρα σας, βεβαιωθείτε ότι έχει τοποθετηθεί η κολλητική ταινία ή ότι μπορεί να παραγγελθεί ξεχωριστά.
  • Υπέρυθρο LED 950nm (για σκανδάλη κάμερας IR)
  • Αντίσταση 220 ohms (προ-αντιστάσεις για υπέρυθρο LED)
  • Στοιχείο ήχου Piezo (προαιρετικό, εάν θέλετε να έχετε ήχους ανατροφοδότησης)
  • Μερικά καλώδια βραχυκυκλωτήρων
  • Εξωτερικό τροφοδοτικό για Steppermotor Έκανα καλές εμπειρίες με έναν προσαρμογέα ισχύος 12V 1A για να οδηγήσω ένα 1A NEMA 17 Steppermotor από την Trinamic. Είχα επίσης ένα τροφοδοτικό 24V 3A σε χρήση. Ο πίνακας Easydriver υποστηρίζει έως 30V και 750mA ανά φάση. Περισσότερα για τα χαρακτηριστικά του easydriver εδώ:
  • Υποδοχή για εξωτερική τροφοδοσία steppermotor
  • Διπολικό NEMA 17 Steppermotor and Turntable π.χ. ο σύνδεσμος FluxGarage «Αυτόματο πικάπ με Steppermotor»:

Προσθήκη για βασικό χειριστήριο με κουμπιά…

  • Κουμπί ώθησης
  • Αντίσταση 10k ohm (για το κουμπί)
  • LED (κατάσταση οδήγησης)
  • Αντίσταση 220 ohm (προ-αντιστάσεις για κατάσταση LED)

… OR προσθήκη για προηγμένο χειριστήριο με οθόνη+μενού πληκτρολογίου:

Adafruit LCD Shield Kit με 16x2 Character Display, π.χ

Κατεβάστε τους κωδικούς Arduino και τα διαγράμματα Fritzing για βασικό και προηγμένο χειριστήριο:

Εάν θέλετε να ανοίξετε το έγγραφο Fritzing για τον προηγμένο ελεγκτή, φροντίστε να κάνετε λήψη και εγκατάσταση των στοιχείων adafruit:

Παρακαλώ σημειώστε: Στις εικόνες χρησιμοποιώ το FluxGarage „Tinkerer's Baseplate“και το FluxGarage „Front Plate for 16x2 LCD + Keypad Shield“. Η χρήση αυτών των στοιχείων είναι προαιρετική, αν θέλετε επίσης να τα χρησιμοποιήσετε, κάντε κλικ στους συνδέσμους για τα σχετικά εκπαιδευτικά.

Βήμα 2: Συναρμολόγηση κυκλώματος

Συναρμολόγηση κυκλώματος
Συναρμολόγηση κυκλώματος
Συναρμολόγηση κυκλώματος
Συναρμολόγηση κυκλώματος
Συναρμολόγηση κυκλώματος
Συναρμολόγηση κυκλώματος

Solder Easydriver για χρήση σε breadboard: Για να χρησιμοποιήσετε το easydriver σε ένα breadboard, πρέπει να κολλήσετε μερικές ανδρικές κεφαλίδες καρφιτσών στον πίνακα. Ο καλύτερος τρόπος είναι να βάλετε τις αρσενικές κεφαλίδες καρφιτσών στο ψωμί, να τοποθετήσετε τον οδηγό στην κορυφή και στη συνέχεια να κολλήσετε τις καρφίτσες.

Καλωδίωση: Συνδέστε τα μέρη όπως φαίνεται στο σχετικό γραφικό Fritzing για τον βασικό ή τον προηγμένο ελεγκτή. Κατεβάστε τα διαγράμματα Firtzing στο github, βρείτε τους συνδέσμους στο βήμα 1.

Ελέγξτε ξανά εάν όλα είναι συνδεδεμένα ως εξής:

  • Arduino digital pin 02 = dir pin του Easydriver
  • Arduino digital pin 03 = step step of Easydriver
  • Digitalηφιακή ακίδα Arduino 09 = έξοδος για πίεζο
  • Digitalηφιακός ακροδέκτης Arduino 12 = έξοδος για υπέρυθρες λυχνίες LED (τοποθετήστε 220 ohms αντίσταση πριν από το led)

+ για το Basic Controller:

  • Arduino digital pin 04 = είσοδος για κουμπί (τοποθετήστε αντίσταση 10k ohm πριν από τη γείωση του κουμπιού)
  • Digitalηφιακή ακίδα Arduino 13 = έξοδος για LED κατάστασης (τοποθετήστε 220 ohms αντίσταση πριν από το led)

+ για Advanced Controller:

Τοποθετήστε την ασπίδα οθόνης+πληκτρολογίου στο arduino, στην πραγματικότητα χρησιμοποιούνται αυτές οι ακίδες: αναλογική ακίδα Arduino A4+A5 και 5V+GND

Σύνδεση Steppermotor: Η καλωδίωση διπολικών βηματικών κινητήρων (4 καλώδια) αφορά τη σύνδεση των δύο πηνίων (Α και Β) του κινητήρα στις δεξιές ακίδες της πλακέτας του easydriver. Ρίξτε μια ματιά στο γραφικό στη μέση αυτής της σελίδας και στο προδιαγραφές του συγκεκριμένου βηματικού κινητήρα σας:

Μπορείτε επίσης να βρείτε περισσότερες πληροφορίες σχετικά με την καλωδίωση του βηματικού κινητήρα σας και του Easydriver εδώ:

Σύνδεση εξωτερικού τροφοδοτικού Η πλακέτα Easydriver διαθέτει δύο ξεχωριστές ακίδες τροφοδοσίας στην επάνω δεξιά πλευρά (M+ και Ground). Ενώ η ίδια η πλακέτα αποκτά ενέργεια από το Arduino, η ξεχωριστή είσοδος παρέχει ισχύ για τον κινητήρα. Εάν χρησιμοποιείτε έναν τυπικό προσαρμογέα τροφοδοσίας «εκτός κουτιού» και μια πρίζα, θα πρέπει να συνδέσετε το καλώδιο «+» στον πείρο «M+» του οδηγού και το σύρμα «-» στον πείρο «GND» του easydriver. Συνήθως το «+» βρίσκεται στην εσωτερική πλευρά, ενώ το «-» βρίσκεται στην εξωτερική πλευρά του βύσματος. Προσοχή όμως, ορισμένοι προσαρμογείς ισχύος επιτρέπουν την αλλαγή της πολικότητας! Εάν συνδέσετε τον οδηγό σας με λάθος καλώδιο, μπορεί και πιθανόν να υποστεί ζημιά, λάβετε αυτό υπόψη.

Βήμα 3: Ανεβάστε τον πηγαίο κώδικα στο Arduino

Ανεβάστε τον πηγαίο κώδικα στο Arduino
Ανεβάστε τον πηγαίο κώδικα στο Arduino

Κατεβάστε τον πηγαίο κώδικα Arduino στο Github:

Λήψη του Arduino IDE:

www.arduino.cc/en/Main/Software

Κατεβάστε τις βιβλιοθήκες τρίτων και αντιγράψτε τις στο φάκελο της βιβλιοθήκης του IDE:… για το κλείστρο της κάμερας: https://github.com/dharmapurikar/Arduino/tree/mast…….. για την οθόνη Adafruit 16x2+Shield πληκτρολόγιο: https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

Ο κωδικός έχει δοκιμαστεί και λειτουργεί άψογα με το τελευταίο Arduino IDE (1.8.7 στα παράθυρα) και το 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":

// Πάρτε ένα στιγμιότυπο λήψης εικόνας () {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 shootsteps = 20; // αριθμός βημάτων για πλήρη περιστροφή, πρέπει να είναι 10, 20 ή 40float shootingspeed = 0,01. // ταχύτητα περιστροφής: οποιοσδήποτε αριθμός από.01 -> 1 με 1 τον πιο γρήγορο - Ο πιο αργός είναι ισχυρότερος (πιο αργός = καλύτερος για «βαριά» αντικείμενα) int shootdelay = 1000; // σπάσιμο σε χιλιοστά του δευτερολέπτου πριν και μετά από κάθε περιστροφή

Λειτουργία του προηγμένου ελεγκτή:

Κατά την ενεργοποίηση του προηγμένου ελεγκτή, εμφανίζεται ένα logosplash FluxGarage για 4 δευτερόλεπτα. Μετά από αυτό, ο ελεγκτής είναι έτοιμος να εκτελέσει και εμφανίζει μια λίστα με το ρυθμιζόμενο σύνολο μεταβλητών:

  • ST = Αριθμός Βημάτων, μπορεί να είναι 10, 20 ή 40
  • SP = Ταχύτητα περιστροφής, μπορεί να είναι 1-5 ενώ το 1 είναι το πιο αργό
  • DE = Η καθυστέρηση πριν και μετά από κάθε βήμα στο δέκατο του δευτερολέπτου, μπορεί να είναι 5, 10, 25, 50
  • LI = Καθορίζει εάν η λυχνία φόντου της οθόνης είναι αναμμένη ή σβηστή κατά τη λήψη. Μπορεί να είναι 1 = ενεργοποιημένο ή 0 = απενεργοποιημένο

Μπορείτε να περιηγηθείτε στους τύπους μεταβλητών με το αριστερό και το δεξί κουμπί και να αλλάξετε τις τιμές με τα κουμπιά πάνω και κάτω. Ξεκινήστε μια φωτογράφιση πατώντας το κουμπί επιλογής και διακόψτε μια φωτογράφιση κρατώντας πατημένο το κουμπί επιλογής έως ότου εμφανιστεί ο «ήχος διακοπής». Ρίξτε μια ματιά στο βίντεο στην κορυφαία ενότητα για να το δείτε στην "πραγματική ζωή".

Βήμα 5: Ξεκινήστε τη λήψη

Έναρξη λήψης
Έναρξη λήψης

Εάν έχετε δημιουργήσει το δικό σας χειριστήριο + πικάπ και η κάμερα είναι στη θέση του, είστε έτοιμοι να ξεκινήσετε τη λήψη… σχεδόν. Επιτρέψτε μου να μοιραστώ μερικές γνώσεις από τα δικά μου πειράματα:

  • Χρησιμοποιήστε μια ελαφριά σκηνή για να φωτίσετε ομοιόμορφα τα αντικείμενά σας. Μπορείτε να βρείτε πολλά καλά σεμινάρια εδώ στο installables.com που δείχνουν πώς να δημιουργήσετε ένα DIY lightbox. Επίσης, υπάρχουν φθηνές ελαφριές σκηνές υφάσματος που μπορούν να αγοραστούν σε πολλά ηλεκτρονικά καταστήματα.
  • Χρησιμοποιήστε λαμπτήρες με την ίδια θερμοκρασία χρώματος (Kelvin)
  • Εστιάστε το αντικείμενο στο πικάπ χειροκίνητα, απενεργοποιήστε την αυτόματη εστίαση της κάμεράς σας
  • Απενεργοποιήστε τον σταθεροποιητή εικόνας της κάμεράς σας, εάν εργάζεστε με τρίποδο
  • Επιλέξτε μια περιοχή μέτρησης στο παρασκήνιο, όπου το αντικείμενο λήψης δεν θα εμφανίζεται. Με αυτόν τον τρόπο, θα αποφύγετε να τρεμοπαίξετε στην ακολουθία των εικόνων σας. Ένας άλλος τρόπος είναι να ρυθμίσετε χειροκίνητα τους χρόνους έκθεσης της κάμεράς σας κ.λπ.
  • Αν θέλετε να συμπεριλάβετε τις 360-Εικόνες σας στον ιστότοπό σας, χρησιμοποιήστε plugins javascript όπως «Jquery Reel Plugin» από τον Petr Vostřel ψευδώνυμο «PISI» → https://jquery.vostrel.cz/reel έγχρωμο360 Degrees Product Viewer «από« Codyhouse «→

Αυτό είναι το αποτέλεσμα ενός από τα γυρίσματά μου (δημιουργήθηκε με τη ρύθμιση παραπάνω):

Συνιστάται: