Table des matières:

Contrôleur Arduino pour la photographie de produits automatisée à 360 ° : 5 étapes (avec photos)
Contrôleur Arduino pour la photographie de produits automatisée à 360 ° : 5 étapes (avec photos)

Vidéo: Contrôleur Arduino pour la photographie de produits automatisée à 360 ° : 5 étapes (avec photos)

Vidéo: Contrôleur Arduino pour la photographie de produits automatisée à 360 ° : 5 étapes (avec photos)
Vidéo: Arduino Controller for DIY Automated Turntable with Camera Shutter for 360° Product Photography 2024, Juillet
Anonim
Image
Image
Rassembler des pièces et des fichiers
Rassembler des pièces et des fichiers

Construisons un contrôleur basé sur Arduino qui contrôle un moteur pas à pas et un obturateur de caméra. Associé à un plateau tournant entraîné par un moteur pas à pas, il s'agit d'un système puissant et peu coûteux pour la photographie ou la photogrammétrie automatisée de produits à 360°. L'obturateur automatique de l'appareil photo est basé sur une excellente bibliothèque de "Sebastian Setz" et fonctionne pour les appareils photo déclenchés par infrarouge de Nikon, Canon, Minolta, Olympus, Pentax, Sony.

J'ai préparé deux versions du contrôleur:

  • Une version de base qui se commande avec un simple bouton poussoir et une led d'état.
  • Une version avancée qui utilise un écran LCD 16x2 + clavier et dispose donc d'un menu pour changer les variables "à la volée" et pas seulement dans le code source.

Que fait le contrôleur ?

Si vous déclenchez un « photoshooting » en appuyant sur le bouton, le plateau tournant effectue un tour complet, divisé en un nombre prédéfini d'étapes. Après chaque pas de rotation, le contrôleur fait une courte pause puis déclenche la caméra. Vous pourrez modifier les variables de la vitesse de rotation, du temps de retard et du nombre de pas dans le code source (pour la version contrôleur simple) ou dans le menu d'affichage (version contrôleur avancé).

Étape 1: Rassemblez les pièces et les fichiers

Rassembler des pièces et des fichiers
Rassembler des pièces et des fichiers
Rassembler des pièces et des fichiers
Rassembler des pièces et des fichiers

Les pièces:

  • Arduino Uno (ou similaire)
  • Planche à pain (la planche à pain demi-taille convient)
  • Pilote de moteur pas à pas Easydriver
  • Dissipateur thermique 2X pour Easydriver (facultatif mais FORTEMENT recommandé) https://www.sparkfun.com/products/11510Vous aurez besoin de ruban thermique pour fixer le dissipateur thermique sur la puce. Si vous commandez votre dissipateur thermique, assurez-vous que le ruban thermique est inclus ou peut être commandé séparément.
  • LED infrarouge 950nm (pour déclencheur de caméra IR)
  • Résistance 220 ohms (pré-résistances pour infrarouge-LED)
  • Élément sonore piézo (facultatif, si vous souhaitez avoir des sons de retour)
  • Quelques fils de cavalier
  • Alimentation externe pour moteur pas à pas J'ai fait de bonnes expériences avec un adaptateur secteur 12V 1A pour piloter un moteur pas à pas 1A NEMA 17 de Trinamic. J'utilisais également un adaptateur secteur 24V 3A. La carte Easydriver prend en charge jusqu'à 30V et 750mA par phase. Plus d'informations sur les spécifications d'easydriver ici:
  • Prise pour alimentation externe du moteur pas à pas
  • Moteur pas à pas bipolaire NEMA 17 et plateau tournant, par ex. le lien FluxGarage « Plateau tournant automatisé avec moteur pas à pas »:

Ajouter pour le bouton-poussoir de base …

  • Bouton
  • Résistance 10k ohms (pour le bouton poussoir)
  • LED (LED d'état)
  • Résistance 220 ohms (pré-résistances pour LED d'état)

… OU ajouter pour contrôleur avancé avec menu affichage+clavier:

Kit de protection LCD Adafruit avec écran 16x2 caractères, par ex

Téléchargez les codes Arduino et les diagrammes Fritzing pour les contrôleurs de base et avancés:

Si vous souhaitez ouvrir le document Fritzing pour le contrôleur avancé, assurez-vous de télécharger et d'installer les éléments adafruit:

Remarque: sur les photos, j'utilise le FluxGarage « Base du bricoleur » et le FluxGarage « Plaque avant pour écran LCD 16x2 + clavier ». L'utilisation de ces éléments est facultative, si vous souhaitez également les utiliser, cliquez sur les liens pour les instructables concernant.

Étape 2: Assembler le circuit

Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit

Carte à souder Easydriver pour une utilisation sur une planche à pain: afin d'utiliser l'easydriver sur une planche à pain, vous devez souder des en-têtes de broches mâles sur la carte. Le meilleur moyen est de mettre les en-têtes de broches mâles dans la planche à pain, de poser l'easydriver sur le dessus, puis de souder les broches.

Câblage: Câblez les pièces comme indiqué dans le graphique Fritzing concernant le contrôleur de base ou avancé. Téléchargez les diagrammes de Firtzing sur github, trouvez les liens à l'étape 1.

Vérifiez si tout est connecté comme suit:

  • Broche numérique Arduino 02 = broche dir d'Easydriver
  • Broche numérique Arduino 03 = broche d'étape d'Easydriver
  • Pin numérique Arduino 09 = sortie pour piezo
  • Arduino digital pin 12 = sortie pour LED infrarouge (placez la pré résistance 220 ohms avant la LED)

+ pour le contrôleur de base:

  • Broche numérique Arduino 04 = entrée pour bouton-poussoir (placez la résistance de 10k ohms avant la masse du bouton)
  • Broche numérique Arduino 13 = sortie pour LED d'état (placez la pré-résistance 220 ohms avant la LED)

+ pour le contrôleur avancé:

Empilez l'écran + le blindage du clavier sur l'arduino, en fait ces broches sont utilisées: broche analogique Arduino A4+A5 et 5V+GND

Connecter le moteur pas à pas: le câblage des moteurs pas à pas bipolaires (4 fils) consiste à connecter les deux bobines (A et B) du moteur aux broches droites de la carte easydriver. Jetez un œil au graphique au milieu de cette page et au spécifications de votre moteur pas à pas spécifique:

Vous pouvez également trouver plus d'informations sur le câblage de votre moteur pas à pas et de l'Easydriver ici:

Connectez l'alimentation externe La carte Easydriver a deux broches d'alimentation séparées sur le côté supérieur droit (M+ et Terre). Alors que la carte elle-même est alimentée par l'Arduino, l'entrée séparée alimente le moteur pas à pas. Si vous utilisez un adaptateur secteur "prêt à l'emploi" et une prise, vous devez connecter le fil "+" à la broche "M+" de l'easydriver et le fil "-" à la broche "GND" d'easydriver. Habituellement, le « + » est sur le côté intérieur, tandis que le « - » est sur le côté extérieur de la fiche. Mais attention, certains adaptateurs secteur permettent d'inverser la polarité ! Si vous câblez votre easydriver de manière incorrecte, il peut et sera probablement endommagé, gardez cela à l'esprit.

Étape 3: télécharger le code source sur Arduino

Télécharger le code source sur Arduino
Télécharger le code source sur Arduino

Téléchargez le code source Arduino sur Github:

Téléchargez l'IDE Arduino:

www.arduino.cc/en/Main/Software

Téléchargez les bibliothèques tierces et copiez-les dans le dossier de la bibliothèque de votre IDE:… pour l'obturateur de la caméra: https://github.com/dharmapurikar/Arduino/tree/mast…… github.com/adafruit/Adafruit-RGB-LCD-Shiel…

Le code est testé et fonctionne correctement avec le dernier Arduino IDE (1.8.7 sur Windows) et Arduino Uno + Pilote de moteur pas à pas Easydriver + Écran Adafruit 16x2 + Protection de clavier, + un moteur pas à pas Trinamic et un appareil photo Nikon D60.

Ajustez le code pour qu'il fonctionne avec votre appareil photo spécifique: comme mentionné, j'ai utilisé la bibliothèque « multiCameraIrControl.h » de Sebastian Setz. Pour que cela fonctionne pour votre appareil photo, vous devez supprimer les barres obliques de commentaire avant le nom du fabricant de votre appareil photo et bien sûr ajouter des barres obliques avant tous les autres noms de fabricant:

// Définir le type d'appareil photoNikon D5000(12);//Canon D5(12);//Minolta A900(12);//Olympus E5(12);//Pentax K7(12);//Sony A900(12);

Faites le même ajustement dans la fonction « snap »:

// Prendre une photo void snap(){D5000.shotNow();//D5.shotNow();//A900.shotNow();//E5.shotNow();//K7.shotNow();//A900.shotNow();}

Remarque: Malheureusement, je n'ai pas encore pu tester d'autres appareils photo à déclenchement infrarouge que mon propre Nikon D60. La bibliothèque d'obturateurs d'appareils photo doit fonctionner avec plusieurs appareils photo de différents fabricants, et pas seulement avec les modèles d'appareils photo spécifiques mentionnés dans le code. Ce serait formidable si vous postiez un commentaire sur vos expériences avec votre appareil photo Canon, Minolta, Olympus, Pentax ou Sony.

Étape 4: utiliser le contrôleur

Utiliser le contrôleur
Utiliser le contrôleur
Utiliser le contrôleur
Utiliser le contrôleur

Que fait le code respectivement le contrôleur ? Si vous appuyez sur le bouton, un « photoshooting » est déclenché. Chaque Photoshooting est une boucle finie de la séquence suivante:

  1. La caméra est déclenchée
  2. Délai court
  3. Le moteur pas à pas fera pivoter un nombre prédéfini de degrés
  4. Délai court

Une séance photo est basée sur un ensemble de variables qui déterminent son comportement exact. Vous pouvez modifier ces variables dans le code source (pour la version contrôleur simple) ou dans le menu d'affichage (version contrôleur avancé).

Utilisation du contrôleur de base:

Sur le contrôleur de base, la LED d'état indique lorsque le système est prêt à fonctionner. La LED s'éteint lorsque vous démarrez une séance photo. Vous pouvez interrompre une séance photo en maintenant le bouton enfoncé jusqu'à ce que le « son d'interruption » apparaisse et que le plateau tournant s'arrête. Jetez un œil à la vidéo dans la section supérieure de cette instructable pour voir cela dans la « vraie vie ».

Les variables de la prise de vue se trouvent dans la section supérieure du code et peuvent être modifiées pour modifier la prise de vue. Ci-dessous, vous pouvez voir les valeurs initiales:

pas de prise de vue int = 20; // nombre de pas pour une révolution complète, doit être de 10, 20 ou 40vitesse de prise de vue flottante = 0,01; // vitesse de rotation: n'importe quel nombre de 0,01 -> 1 avec 1 étant le plus rapide - Le plus lent est le plus fort (plus lent = mieux pour les objets "lourds") int shootingdelay = 1000; // pause en millisecondes avant et après chaque rotation

Utilisation du contrôleur avancé:

Lorsque vous allumez le contrôleur avancé, un logo FluxGarage s'affiche pendant 4 secondes. Après cela, le contrôleur est prêt à fonctionner et affiche une liste de l'ensemble réglable de variables:

  • ST = nombre d'étapes, peut être 10, 20 ou 40
  • SP = vitesse de rotation, peut être de 1 à 5 tandis que 1 étant le plus lent
  • DE = Délai avant et après chaque pas en dixième de seconde, peut être 5, 10, 25, 50
  • LI = Détermine si le rétroéclairage de l'écran est allumé ou éteint pendant la prise de vue. Peut être 1 = activé ou 0 = désactivé

Vous pouvez parcourir les types de variables avec les boutons gauche et droit et modifier les valeurs avec les boutons haut et bas. Démarrez une séance photo en appuyant sur le bouton de sélection et interrompez une séance photo en maintenant le bouton de sélection enfoncé jusqu'à ce que le « son d'interruption » apparaisse. Jetez un œil à la vidéo dans la section supérieure de cette instructable pour voir cela dans la « vraie vie ».

Étape 5: commencer à filmer

Démarrer la prise de vue
Démarrer la prise de vue

Si vous avez construit votre propre contrôleur + platine et que votre appareil photo est en place, vous êtes prêt à commencer à filmer… ou presque. Permettez-moi de partager quelques enseignements de mes propres expériences:

  • Utilisez une tente lumineuse pour éclairer uniformément vos objets. Vous pouvez trouver beaucoup de bons tutoriels ici sur instructables.com qui montrent comment créer une lightbox diy. En outre, il existe des tentes légères textiles bon marché qui peuvent être achetées dans de nombreuses boutiques en ligne.
  • Utilisez des ampoules avec la même température de couleur (Kelvin)
  • Focalisez manuellement l'objet sur la platine, désactivez l'autofocus de votre appareil photo
  • Désactivez le stabilisateur d'image de votre appareil photo si vous travaillez avec un trépied
  • Sélectionnez une plage de mesure en arrière-plan, où l'objet pris n'apparaîtra pas. Ce faisant, vous éviterez le scintillement de votre séquence d'images. Une autre façon est de régler manuellement les temps d'exposition de votre appareil photo, etc.
  • Si vous souhaitez inclure vos 360-Images dans votre site Web, utilisez des plugins javascript comme "Jquery Reel Plugin" par Petr Vostřel alias "PISI" → https://jquery.vostrel.cz/reel"360 Degrees Product Viewer" par "Codyhouse “→

C'est le résultat d'un de mes tournages (créé avec le réglage ci-dessus):

Conseillé: