IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Commande de banc photo macro pour focus stacking


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 6
    Par défaut Commande de banc photo macro pour focus stacking
    Bonjour,

    Je cherche a réaliser un banc photo pour faire du Focus stacking (empilage d'une série de photos pour photographier de petits sujets avec une grande profondeur de champ).
    Des solutions (chères !) existent dans le commerce mais je souhaite en profiter pour apprendre à utiliser les cartes arduino et leurs programmations.

    Pour cela, je dois commander de façon précise la position d'un chariot qui supporte l'appareil. L'utilisation d'un moteur pas à pas commandé par boutons poussoirs me paraît une évidence.

    La partie mécanique ne pose pas de problème particulier pour moi mais je bute sur la partie commande du moteur pas à pas par arduino.
    Je suis totalement novice en programmation.

    Je pensais que ce serait assez simple : j'appuie sur un bouton, le moteur fait 1 tour. J'appuie sur un autre et je reviens en position de départ (un nombre de tour déterminé en sens inverse ou avec un contact fin de course ?)...

    Sauf que je me perd totalement sur :
    - comment brancher mes boutons pour que la position soit reconnue par le programme ?
    - comment conditionner le fonctionnement du moteur à la position des boutons ?

    J'avais réussi à allumer des diodes par boutons poussoirs (bouton A LED 1, bouton B LED 2) mais ça ne marche pas avec un moteur. Le moteur tourne dans un sens puis dans l'autre en continu sans aucun effet des boutons...

    Je trouve des tas d'exemples mais plus je cherche, moins je trouve, avec des commandes parfois différentes pour faire à priori la même chose. L'embrouille totale !

    Quelqu'un pourrait-il me guider au moins pour un exemple de branchement et de programme simple, du genre "mon moteur fait un nombre de tour déterminé une seule fois quand j'appuie sur un bouton" ?

    Cela me servirait de base fiable pour comprendre le fonctionnement et avancer dans ma réflexion.

    Merci d'avance.

    Matériel dont je dispose :
    Carte arduino UNO
    Module moteur L298N
    Moteur Pas à Pas d'imprimante.
    Voici mon montage (qui fonctionne) mais sans les boutons poussoirs :
    Nom : Montage-arduino.jpg
Affichages : 627
Taille : 322,6 Ko
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour Cercope
    Citation Envoyé par Cercope Voir le message
    Je pensais que ce serait assez simple : j'appuie sur un bouton, le moteur fait 1 tour. J'appuie sur un autre et je reviens en position de départ (un nombre de tour déterminé en sens inverse ou avec un contact fin de course ?)...
    Mets le programme que tu as déjà fait en ligne.

    A+
    Cordialement
    jpbbricole

  3. #3
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 903
    Par défaut
    La partie mécanique ne pose pas de problème particulier pour moi
    Bravo si c’est le cas. J’en avais fabriqué un il y a quelques années et la partie mécanique était en fait le point le plus complexe. Vous voulez de la rigidité et une précision très fine dans le déplacement de la vis, il faut que l’attelage soit très bien construit. Les produits chinois que j’avais pris initialement ne me satisfaisant pas. J’ai acheté un rail photo macro allemand ensuite et c’était mieux


    Si vous cherchez “arduino focus stacking” vous trouverez pas mal de réponses pour la partie logiciel

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 6
    Par défaut
    Merci pour vos réponses.

    J'ai avancé un peu. J'arrive à commander un mouvement (pas exactement un tour mais c'est pas grave pour l'instant) en avant avec un bouton et idem dans l'autre sens.

    Le code n'est sans doute pas un modèle du genre, mais il fonctionne...

    Il faut que je rajoute une avance rapide et un retour rapide (par séquence de x tours ou mieux, jusqu'en fin de course). Mais je vais déjà pouvoir commencer mon montage.
    Je suis bien sûr preneur de toute amélioration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    /*
     Stepper Motor Control - one revolution
     
     This program drives a unipolar or bipolar stepper motor.
     The motor is attached to digital pins 8 - 11 of the Arduino.
     
     The motor should revolve one revolution in one direction, then
     one revolution in the other direction.
     
     
     Created 11 Mar. 2007
     Modified 30 Nov. 2009
     by Tom Igoe
     
     */
    // Utilisation des boutons
    // constantes ne vont pas changer. Elles déterminent ici la définition du numero de pin:
    const int boutonAPin = 2;     // numero de pin du boutonA
    const int boutonBPin = 3;    // numero de pin du boutonB
     
    // variables qui vont changer :
    int boutonAState = 0;         // variable pour la lecture du statut du boutonA
    int boutonBState = 0;         // variable pour la lecture du statut du boutonB
     
     
    //Gestion du moteur :
    // Bibliothèque moteur :
    #include <Stepper.h>
     
    // Paramètres du moteur :
     // changer ceci pour déterminer le nombre de pas par tour du moteur
    const int stepsPerRevolution = 1000; 
     
    // Initialise la librairie du moteur sur les pins 8 à 11:
    Stepper myStepper(stepsPerRevolution, 8, 9, 10,11);
     
    // Début du programme :
     
    void setup() {
     
      // Réglage de la vitesse à 50 rpm:
      myStepper.setSpeed(50);
     
      // Initialise le port série : 
      Serial.begin(9600);
     
     // Initialise le pin boutonA comme une entrée:
      pinMode(boutonAPin, INPUT_PULLUP);
      pinMode(boutonBPin, INPUT_PULLUP);
    }
     
     
    void loop() {
     
        // Lecture de la valeur du boutonA :
      boutonAState = digitalRead(boutonAPin);
       // Lecture de la valeur du boutonB :
      boutonBState = digitalRead(boutonBPin);
     
        // Vérification si le boutonA est pressé. Si oui, boutonAState est LOW:
      if (boutonAState == LOW) {
      // révolution d'un tour dans le sens horaire:
     
      Serial.println("clockwise");
      myStepper.step(stepsPerRevolution);
     
      delay(100);
     
      }
     
     
        // Lecture de la valeur du boutonB :
     // boutonBState = digitalRead(boutonBPin);
     
        // Vérification si le boutonB est pressé. Si oui, boutonBState est LOW:
     if (boutonBState == LOW) {
      // révolution d'un tour dans le sens antihoraire:
     
     
      Serial.println("clockwise");
      myStepper.step(-stepsPerRevolution);
     
      delay(100);
     
      }
      int boutonAState = 0;         // variable pour la lecture du statut du boutonA
    int boutonBState = 0;         // variable pour la lecture du statut du boutonB
     
    }

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 6
    Par défaut
    Si cela peut aider d'autres personnes, j'ai tourné en rond un bon moment avant de comprendre que les boutons poussoirs utilisés n'étaient pas connectés comme je croyais.

    Utilisant une petite platine avec 2 poussoirs, je pensais que le fil commun était le noir. J'obtenais un fonctionnement qui me semblait illogique.
    Je me suis posé des questions existentielles sur le programme.

    En regardant de plus près, le commun était le fil rouge... Evident si on regarde la platine en enlevant le gros tas de colle qui cachait tout.
    Et là, plus de problème !

    Comme quoi, il faut savoir prendre du recul et ne pas focaliser sur ce qu'on pense être la difficulté mais toujours regarder si la solution n'est pas beaucoup plus simple (comme le fil pas branché).
    Nom : Platine-bouton.jpg
Affichages : 540
Taille : 97,4 Ko

    Nom : IMG_20220313_160937.jpg
Affichages : 529
Taille : 1,29 Mo

  6. #6
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut Il n'y a pas photo
    Bonjour,

    La partie mécanique peut être résolue avec une certaine facilité si on détourne un axe Z de CNC. On trouve des chariots d'environ 10 cm (plus longs aussi mais ce n'est pas utile pour du focus stacking) équipés d'un pas à pas. Il n' y a plus que l'adaptation pour pouvoir le mettre sur un pieds photo mais le détournement d'un plateau Arca est assez simple.
    Les premiers prix sont inférieurs à 40 €(port compris).
    Nom : Axe Z.png
Affichages : 520
Taille : 343,1 Ko
    Celui-ci trouvé sur AliExpress n'est pas le meilleur, mais l'avantage de la tôle emboutie est une adaptabilité plus facile que celle de blocs d'aluminium sur rail.

    Il faut également prévoir une commande électrique de la prise de vue (sans mise au point ) qu'un Arduino où autre MCU peut très bien piloter (via un photo-transistor) sans induire de tremblement. Il faut détourner des câbles de télécommandes propres à la marque voire à la gamme d'appareils photo. Le projet Photoduino, aujourd'hui abandonné je crois, illustre bien ces techniques.

    On peut commencer avec des commandes boutons puis développer un vrai programmateur de prises de vue (distance entre deux photos, temps de stabilisation, déclenchement, nombre de photos etc.)

    Salutations

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 6
    Par défaut
    Merci pour l'info sur le matériel !
    Cela pourrait effectivement me simplifier la vie sur la partie mécanique, même si mon bricolage ne va pas mal.
    Concernant la gestion des prises de vue, j'envisagerai ça plus tard. Pour l'instant, les logiciels que j'utilise vont bien. Je cherche surtout la précision et la régularité des déplacements.
    Jusque là, l'avance était manuelle (donc très approximative) mais les résultats étaient encourageants.
    Cordialement.

    Un exemple avec des cristaux de Zalesiite (l'image couvre environ 4 mm). L'image est pas mal dégradée par la compression mais ça donne une idée...:
    Nom : Zalesiite.jpg
Affichages : 521
Taille : 217,3 Ko

  8. #8
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonsoir Cercope

    Ton programme du post #4 est une bonne base de départ, maintenant si tu veux le structurer de telle façon qu'il soit plus pratique, il faut, du moins pour moi, détailler une séquence complète de prise de vue.

    L'installation d'un contact de début de course est quasiment indispensable, il permet, au démarrage de faire le "zéro" du mobile.

    Ton installation/application est un classique de l'usage d'un moteur pas à pas.

    Penses-tu continuer à commander les déplacements avec des boutons ou envisages-tu à diversifier comme commander depuis un smartphone ou un PC?

    Cordialement
    jpbbricole

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2022
    Messages : 6
    Par défaut
    Je pense aller plus loin avec l'expérience (PC sûrement, smartphone, pourquoi pas ?) mais pour l'instant, je cherche surtout une solution "rustique" pour me concentrer sur l'aspect photo. Les boutons ont l'avantage de pouvoir commander simplement le mouvement en sachant exactement ce qu'on fait. Cela permet d'arrêter à tout moment le cycle des clichés.
    Si je lance une session en automatique, il faut gérer également la prise de vue pour ne pas déplacer l'appareil avant que le transfert d'image soit terminé et que l'APN soit de nouveau prêt.
    Pour le moment, je suis encore loin d'avoir les compétences nécessaires...mais je ne désespère pas !

  10. #10
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 903
    Par défaut
    Il y a un exemple de montage a soufflet ici

    https://forum.arduino.cc/t/focus-stacking/583983/14

Discussions similaires

  1. [XL-2007] Macro pour une commande spéciale
    Par Rhubarb dans le forum Excel
    Réponses: 2
    Dernier message: 25/01/2016, 19h00
  2. Réponses: 7
    Dernier message: 23/11/2015, 09h31
  3. [XL-2010] Macro pour calcul sur commande d'un onglet
    Par claire-abadie dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/04/2014, 16h26
  4. [XL-2007] Macro pour insertion de photo dans un commentaire
    Par wboyer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2013, 08h24
  5. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo