Table tournante et shutter automatique

Bonjour,

Je ne connais rien à arduino, mais je comprends bien qu'il y a une tonne de possibilité par contre! Dans l'optique de faire de la photogrammétrie de miniature (scan 3D), je regarde pour une table tournante, hors, tout ce qui existe en ce sens et qui automatise les prises de photo n'est compatible qu'avec des appareils DSLR, l'appareil que je possède est de très bonne qualité, voir meilleur que certain modèle DSLR, je ne souhaite pas investir dans un nouvel appareil.

Avec un arduino, serait-il possible de faire tourner un moteur de 10 ou 13 degré, arrêté, prendre une photo via un "shutter" fillaire relié à mon appareil et répéter l'opération jusqu'au tour complet?

J'ai vu qu'avec un arduino on peut faire tourner un moteur en ce sens, prendre des photos en "timelapse", mais combiné les 2 fonctions, est-ce possible?

Si oui, quel matériel me faudra-t-il?

Merci!

Seb

c'est faisable et pas super compliqué dans l'absolu mais si vous n'y connaissez rien ça va être un projet difficile pour vous

en gros le programme boucle sur un truc comme cela:

attendre l'appui du bouton
pour A variant de 0 à 350 avec un pas de 10 faire
 {
   faire tourner le moteur à l'angle A (ou avancer de x pas correspondant à cet angle) et attendre d'arriver à cette position
   attendre une seconde pour stabiliser l'objet
   déclencher le premier optocoupleur pour la mise au point
   attendre 1 seconde pour stabilisation
   déclencher le second optocoupleur pour prendre la photo
}
attendre le relâchement du bouton

(à voir si vous êtes en mise-au-point manuelle juste faire le déclenchement)

il vous faut un arduino, un pilote de servo ou de moteur pas à pas (faudrait voir le moteur que vous avez sur votre table tournante) et deux optocoupleur pour le déclencheur "shutter" et un peu de programmation plus peut être un bouton pour déclencher le processus et des alimentations adaptées pour le moteur et l'arduino

bonjour,
c'est ca que tu cherche?

shadowseb:
Bonjour,

Je ne connais rien à arduino, mais je comprends bien qu'il y a une tonne de possibilité par contre! Dans l'optique de faire de la photogrammétrie de miniature (scan 3D), je regarde pour une table tournante, hors, tout ce qui existe en ce sens et qui automatise les prises de photo n'est compatible qu'avec des appareils DSLR, l'appareil que je possède est de très bonne qualité, voir meilleur que certain modèle DSLR, je ne souhaite pas investir dans un nouvel appareil.

Avec un arduino, serait-il possible de faire tourner un moteur de 10 ou 13 degré, arrêté, prendre une photo via un "shutter" fillaire relié à mon appareil et répéter l'opération jusqu'au tour complet?

J'ai vu qu'avec un arduino on peut faire tourner un moteur en ce sens, prendre des photos en "timelapse", mais combiné les 2 fonctions, est-ce possible?

Si oui, quel matériel me faudra-t-il?

Merci!

Seb

Bonsoir
comme déjà repondu + haut , ce n'est pas en soit tres compliqué
une fois defini la bonne motorisation et la bonne commande de prises de vue

pourquoi cette notion de 10 ou 13 ° ?

10 Pourquoi pas : 360°/10 çà fait ...36 , tu travaille avec un appareil "argentique" ? :grin:

13 ?

C'est quoi exactement ton appareil ?

Bonjour!

Dsl de tarder ma réponse, énormément de travail en ce moment.

Mon appareil est un canon sx50hs. J’ai 2 télécommandes filaire (Une de canon, et l’autre une marque générique/chinois), dont une sera utilisé, je vais couper le fils. Je n’ai pas d’infra rouge, alors je dois faire avec les fils.

Point de vu montage, je n’aurai pas de problème en soit, j’ai déjà suivi une formation approfondi en électronique, et notre montage finale était un ascenseur avec affichage d’étage, uniquement électronique sans aucune forme de programmation. Mon problème principale sera la programmation en elle même, je n’ai pas de connaissance à proprement parler.

Quand je parle de 30 ou 36 photos par 360 degrés, le 30 fait référence à 30 images par seconde, mais 36 me va.

J’ai d’Ailleurs acheté un kit incluant un moteur pas a pas ( ce kit: https://www.ebay.com/itm/Ultimate-Starter-Kit-UNO-R3-Arduino-LCD-Stepper-Servo-Ultrasonic-Motor-1602/112685733559?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2648 )

shadowseb:
Quand je parle de 30 ou 36 photos par 360 degrés, le 30 fait référence à 30 images par seconde, mais 36 me va.

Vas-y mollo!

Tu prends un cliché toutes les deux secondes; c'est déjà bien.
La table, surtout en construction amateur, vibre.

Je n'avais pas en tête ça non plus lol juste que 30 images seconde pour un film est un standard xD

en terme de programmation d'action, je verrais plus quelque chose du genre en loop

faire 10 degré au moteur
attendre 2 seconde
enclencher le focus pendant 2 seconde
enclencher la prise de photo
attendre 2 seconde

jusqu'au un tour complet, enclencher une alarme sonore pendant 3 secondes

mettre le tout en stand by

recommencer le processus après avoir appuyer sur un bouton

Je le verrais comme ça personnellement. Je regarde des vidéos depuis un moment, mais rien n'explique vraiment ce que je cherche

shadowseb:
enclencher le focus pendant 2 seconde

Si tu fais du 3D, utilise une focale fixe, sinon le résultat ne sera pas bon.
Penses a faire tourner au moins 50% de l'eclairage avec l'objet: un eclairage identique dans toutes les directions, ca rend un objet mort.

RIN67630:
Si tu fais du 3D, utilise une focale fixe, sinon le résultat ne sera pas bon.
Penses a faire tourner au moins 50% de l'eclairage avec l'objet: un eclairage identique dans toutes les directions, ca rend un objet mort.

Je ne te suis pas? Le plus important pour nous est le rendu final, car l'objectif ne sera pas d'utiliser le fichier dans un contexte virtuel mais d'avoir le plus de détail possible pour ensuite l'imprimer en 3D, qui sera peinturer par la suite

shadowseb:
Je ne te suis pas? Le plus important pour nous est le rendu final, car l’objectif ne sera pas d’utiliser le fichier dans un contexte virtuel mais d’avoir le plus de détail possible pour ensuite l’imprimer en 3D, qui sera peinturer par la suite

Tout à fait - oui il faut l’éclairage max sur chaque photo puisque ce que vous voulez faire au final c’est bâtir un modèle 3D (photogrammétrie)

J’ai pas mal avancé, bon pour des habitués ce que j’ai fait c’est probablement rien, mais j’ai réussi à déterminer le nombre de photo pour que sa position finale soit identique au départ, et ça me donne 32 photos. Mes premiers essaies sont de 44 photos (J’ai collé un ruban à mesurer de couture autour d’une table tournante, et la circonférence est de 44 pouces) puis à 22 photos (1/2) et les résultats de mes 2 tests sont excellent, donc 32 photos pour moi est parfait. Voici mon premier code test:

#include <Stepper.h>

int nombreDePas = 48*64;
int photo;

Stepper monMoteur (nombreDePas,9,11,10,6);

void setup() {
monMoteur.setSpeed(10);
photo=0;
}

void loop() {
monMoteur.step(64);
delay(50);
photo=photo+1;
if (photo >= 32)
{
delay(1000);
photo=0;
}
}

Pour le moment, après 32 loops, ça s’arrête exactement à sa position de départ, attend 1 seconde puis recommence les loops

très bien

utilisez les code tags autour du code plutôt que quote
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)


pour le delay(50); n'oubliez pas que votre objet va sans doute vibrer un peu à cause du mouvement, donc il vaut mieux attendre un peu plus longtemps avant de déclencher la photo

shadowseb:
J'ai pas mal avancé, bon pour des habitués ce que j'ai fait c'est probablement rien, mais j'ai réussi à déterminer le nombre de photo pour que sa position finale soit identique au départ, et ça me donne 32 photos. Mes premiers essaies sont de 44 photos (J'ai collé un ruban à mesurer de couture autour d'une table tournante, et la circonférence est de 44 pouces) puis à 22 photos (1/2) et les résultats de mes 2 tests sont excellent, donc 32 photos pour moi est parfait. Voici mon premier code test:

Pour le moment, après 32 loops, ça s'arrête exactement à sa position de départ, attend 1 seconde puis recommence les loops

Mets tout simplement après photo = 0;
while (1);

Quand tu veux refaire un cycle tu appuies sur Reset.

RIN67630:
Mets tout simplement après photo = 0;
while (1);

Quand tu veux refaire un cycle tu appuies sur Reset.

C’est exactement la commande que j’ai trouvé!

J-M-L:
très bien

utilisez les code tags autour du code plutôt que quote
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l’IDE avant de copier le code pour qu’il soit indenté correctement)


pour le delay(50); n’oubliez pas que votre objet va sans doute vibrer un peu à cause du mouvement, donc il vaut mieux attendre un peu plus longtemps avant de déclencher la photo

C’est uniquement le temps des tests, question que je n’attends pas 3 minutes pour confirmer que ça fonctionne :slight_smile:
Voici le code qui sera fort probablement final, je ne vois pas quoi faire de plus en terme de programmation

#include <Stepper.h>

int nombreDePas = 48 * 64;
int photo;

Stepper monMoteur (nombreDePas, 9, 11, 10, 6);

void setup() {
  monMoteur.setSpeed(1);
  photo = 0;
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}

void loop() {
  monMoteur.step(64);
  delay(1000);
  digitalWrite(2, HIGH);
  delay(1500);
  digitalWrite(3, HIGH);
  delay(1000);
  digitalWrite(3, LOW);
  digitalWrite(2, LOW);
  delay(2000);
  photo = photo + 1;
  if (photo >= 32)
  {
    digitalWrite(4, HIGH);
    delay(250);
    digitalWrite(4, LOW);
    delay(250);
    digitalWrite(4, HIGH);
    delay(250);
    digitalWrite(4, LOW);
    delay(250);
    digitalWrite(4, HIGH);
    delay(250);
    digitalWrite(4, LOW);
    delay(250);
    digitalWrite(4, HIGH);
    delay(250);
    digitalWrite(4, LOW);
    delay(250);
    digitalWrite(4, HIGH);
    delay(3000);
    digitalWrite(4, LOW);
    while (1) { }
  }
}

Sur pinMode 2 et 3 il y aura un transistor sauf si vous avez une meilleure idée, je veux laisser mon appareil photo gérer son propre courant au lieu de lui en injecter qui vient de l’arduino. L’appariel photo a une batterie de 7.4v .

Sur le pinMode 4, c’est un active buzzer

Le code pourrait-il être plus efficace?

Bon et bien finalement terminé la partie électronique et programmation de mon projet! Ça fonctionne parfaitement! Reste à recevoir ma Tevo Tornado pour imprimer ma table :slight_smile:

Le code

const int stepPin = 3; 
const int dirPin = 4;
int photo;
 
void setup() {
    pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
  photo=0;
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(2,OUTPUT);
}

void loop() {
  digitalWrite(7,LOW);
  delay(3000);
  digitalWrite(8,LOW);
  delay(500);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
  delay(1000);
  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 8; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(12000); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(12000); 
  }
photo=photo+1;
delay(250);
if (photo >= 25)
{
  digitalWrite(2,HIGH);
  delay(250);
  digitalWrite(2,LOW);
  delay(250);
  digitalWrite(2,HIGH);
  delay(250);
  digitalWrite(2,LOW);
  delay(250);
  digitalWrite(2,HIGH);
  delay(250);
  digitalWrite(2,LOW);
  delay(250);
  digitalWrite(2,HIGH);
  delay(250);
  digitalWrite(2,LOW);
  delay(250);
   digitalWrite(2,HIGH);
  delay(3000);
  digitalWrite(2,LOW);
  while(1) { }
}
}

Bravo !

Attention aux courants forts dans une breadboard (je crois voir les fils du moteur en provenance de votre plaque d’essai sous le plastic marron ou relais) - perso je ne dépasserai pas 0.5A sur celles chinoises à bas coût et historique incertain - 1 ou 2A Max sur une de super bonnne qualité avec des connexions de faible résistance - car P = UI et U=RI donc P = RI2 —> la puissance dissipée varie en fonction de la résistance et du carré de l’intensité qui y circule et donc Dégagement de chaleur au niveau de la plaque