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 :

Délai timelapse programmable


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut Délai timelapse programmable
    Bonjour à toute la communauté

    Nouveau inscrit et débutant dans la programmation Arduino

    Voilà, j'envisage de refaire mon timelapse conçu il y a une quarantaine d'années composé à l'époque d'un clavier 12 touches et de 6 afficheurs 7 segments (2 segments pour le délai entre 2 photos et 4 segments pour le nombre de photos.
    Aujourd'hui je voudrais refaire la même chose avec un nano mais je me passerai du clavier dans un 1er temps, qui est remplacé par un bouton +, un bouton- et un bouton start.

    J'ai fait le programme jusqu'à l'affichage de la valeur du délai avec les boutons + et - Lorsque j'appuerai sur le bouton start le décompte commencera jusqu'à 0, repartira à la valeur choisie et décrémentera la variable "photos''. Quand la variable "photos" sera à 0, on stoppe le décompte

    Là où je bloque c'est comment faire la boucle pour commencer le décompte avec le bouton start et mettre en mémoire la variable "délai" qui sert à 2 choses: le décompte et la décrémentation/incrémentation du nombre de photos?
    Par avance merci aux contributeurs qui passeraient par ici

    Voila le code:

    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
     
     
     #include <Adafruit_LiquidCrystal.h>
    Adafruit_LiquidCrystal aff(10, 11, 5 , 4, 3, 2);
     
    #define valeurMin 0
    #define valeurMax 3000
     
     
    const int bp1 = 7; //bouton incrémentation
    const int bp2 = 8; //bouton décrémentation
    const int bp_start = 9;
     
     
    int etat_bp1 = 0;
    int etat_bp2 = 0;
    int etat_bp_start = 0;
     
    int delai = 1;          //delai entre 2 photos
    int photos = 1500;      // nb photos
     
    void setup() {
     
      aff.begin(16, 2);
      pinMode(bp1, INPUT_PULLUP);
      pinMode(bp2, INPUT_PULLUP);
      pinMode (bp_start, INPUT_PULLUP);
     
      aff.setCursor (4, 0);
      aff.print("Timelaps");
      aff.setCursor(7, 1);
      aff.print("V1");
     
      delay (1500);
      tone (6, 5900, 200);
      delay (600);
      tone (6, 4400, 150);
      delay(200);
      tone (6, 4600, 150);
      delay(200);
      tone (6, 4900, 250);
     
      aff.clear();
      tone (6, 5000, 350);
    }
     
    void loop() {
      aff.setCursor(0, 0);
      aff.print("Photos");
      aff.setCursor(11, 0);
      aff.print("Delai");
     
      aff.setCursor(12, 1);
      aff.print (delai);
      aff.setCursor(1, 1);
      aff.print (photos);
     
      if (digitalRead(bp1) == LOW) {
        if (delai < valeurMax)
        delai++;
        delay(100);
        tone(6, 4900, 80);
        while ((digitalRead(bp1) == LOW));
        aff.clear();
      }
     
      if (digitalRead(bp2) == LOW) {
        if (delai > valeurMin)
        delai--;
        delay(100);
        tone(6, 4900, 80);
        while ((digitalRead(bp2) == LOW));
        aff.clear();
      }
    }
    Images attachées Images attachées  

  2. #2
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Bonjour

    L’idéal pour ce genre de code c’est de faire une machine à états.

    Comment allez vous régler le nombre de photos ?

    (Un encodeur rotatif avec Bouton intégré serait plus sympa au niveau interface pour régler les valeurs.)

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonjour,

    Le réglage du nombre de photos sera identique au réglage du délai, pas à l'unité mais par centaine. A ce niveau là la précision n'est pas primordiale.

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Moi je suis Canon (5D Mark III et IV) et on peut hacker l'OS de l'appareil (projet Magic Lantern ou CHDK par exemple) directement pour ajouter des fonctions - c'est assez fun.

    Je me suis aussi développé avec Arduino un rail motorisé, un gestionnaire de prises de gouttes d'eau (droplets), le déclenchement sur évènement externe (à la trigger trap) etc. Le fait que l'on puisse commander la mise au point, le shutter ou des flash cobra assez simplement donne beaucoup de possibilités créatives

  5. #5
    Membre chevronné Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 986
    Par défaut
    Je viens de voir ça :
    https://magiclantern.fm/
    c'est génial en effet

    Sur SONY j'ai un gros soucis c'est le réglage du volume du micro pas possible vidéo c'est très gênant surtout avec le micro externe

    Dans le délire photo, avant d'avoir un oscilloscope numérique j'utilisait mon oscilloscope analogique avec l'appareil photo pour prendre des mesures

    Mine de rien, c'était très pratique.

    A bientôt

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Intéressant. Je ne savais pas qu'on pouvait flasher un Canon, moi qui en possède un, je vais pouvoir m'occuper si le confinement se prolonge encore quelques années

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    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 582
    Par défaut Tropisme ?
    Bonjour,

    Je me trompe ou il y a un réel tropisme entre électronique et photographie ?

    Pour moi c'est Nikon (24x36) et Fuji (APS).

    Il y a beaucoup de projets électroniques imaginables en photo :
    • une plateforme panoramique qui suit un véhicule (ou un animal) avec un sujet net sur un filé d'arrière plan impeccable (à la main je tiens la moitié du challenge : le flou). Je pensais détourner une plateforme panoramique programmable mais les mouvements sont loin d'être fluides.
    • un successeur à photoduino avec des détecteurs "intelligents" (auto identification) et sans fil (2.4 GHz bien sûr)
    • un porte appareil mobile télécommandable pour traquer le chat à hauteur... de chat (avec les retours Wifi intégrés ou pas) Je pense que le principal doit déjà exister sur le net. Peut être qu'il y a plus de travail de mécanique que d'électronique.
    • un light stick (tremble Dark Vador). J'en ai programmé et cablé un, mais ça consomme un max (140 leds tricolores intelligentes à 60 mA par triplet).

    Oui, je me disperse un peu

    Salutations

  8. #8
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Bonsoir

    comme c'est presque le nouvel an, voici un petit cadeau:

    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    #include <simpleBouton.h> // http://forum.arduino.cc/index.php?topic=375232.0
     
    const byte pinPlus      = 2; // pin bouton incrémentation
    const byte pinMoins     = 3; // bouton décrémentation
    const byte pinStartStop = 4; // bouton démarrage
     
    //Cablage : pin---BP---GND
    simpleBouton boutonPlus(pinPlus);      // 2 fonctions: + ou appui long = entrée/sortie modif période 
    simpleBouton boutonMoins(pinMoins);   // 2 fonctions: - ou appui long = entrée/sortie modif photo
    simpleBouton boutonStartStop(pinStartStop); // appui long on lance ou arrête la prise de vues
     
    const unsigned long appuiLong = 1000ul; // 1 seconde d'appui déclenche
    unsigned long dureeAppuiStartStop, dureeAppuiPlus, dureeAppuiMoins;
     
    const unsigned long unitePeriode = 100ul; // nombre de millisecondes dans une unité de période, ici en 10ème de secondes
    long periodeDeclenchement = 5;            // ici 5 dixième de seconde = photo toutes les demi secondes
     
     
    unsigned long chronoDeclenchement;
     
    long nombreDePhotos = 20;
    long compteurPhoto = 0;
     
    enum : uint8_t {REPOS, MODIF_DUREE, MODIF_PHOTO, ACTIF} etatCourant = REPOS;
     
    void afficheParametres()
    {
      Serial.print(F("Période de déclenchement: ")); Serial.print((unitePeriode * periodeDeclenchement) / 1000.0, 2); Serial.println(F(" s."));
      Serial.print(F("Nb Photos: ")); Serial.println(nombreDePhotos);
    }
     
    void modeRepos()
    {
      etatCourant = REPOS;
      Serial.println(F("Mode Repos"));
      afficheParametres();
    }
     
    void modeDuree()
    {
      etatCourant = MODIF_DUREE;
      Serial.println(F("Mode modification durée"));
      afficheParametres();
    }
     
    void modePhoto()
    {
      etatCourant = MODIF_PHOTO;
      Serial.println(F("Mode modification nombre de photos"));
      afficheParametres();
    }
     
    void modeActif()
    {
      compteurPhoto = 0;
      chronoDeclenchement = millis();
      etatCourant = ACTIF;
      Serial.println(F("Action !!"));
      afficheParametres();
    }
     
    void changeDuree(int8_t d)
    {
      periodeDeclenchement += d;
      if (periodeDeclenchement <= 0) periodeDeclenchement = 1;
      Serial.print(F("Période de déclenchement: ")); Serial.print((unitePeriode * periodeDeclenchement) / 1000.0, 2); Serial.println(F(" s."));
    }
     
    void changePhoto(int8_t d)
    {
      nombreDePhotos += d;
      if (nombreDePhotos <= 0) nombreDePhotos = 1;
      Serial.print(F("Nombre de Photos: ")); Serial.println(nombreDePhotos);
    }
     
    void prendrePhoto()
    {
      compteurPhoto++;
      Serial.print(F("click, c'est dans la boîte. ["));
      Serial.print(compteurPhoto);
      Serial.print(F(" / "));
      Serial.print(nombreDePhotos);
      Serial.println(F("]"));
      chronoDeclenchement = millis();
    }
     
    void verification()
    {
      static bool appuiLongPlusValide = false;
      static bool appuiLongMoinsValide = false;
      static bool appuiLongStartStopValide = false;
     
      dureeAppuiStartStop = boutonStartStop.dureeEnfonce();
      dureeAppuiPlus = boutonPlus.dureeEnfonce();
      dureeAppuiMoins = boutonMoins.dureeEnfonce();
      boutonPlus.actualiser();
      boutonMoins.actualiser();
      boutonStartStop.actualiser();
     
      // on notifie l'utilisateur quand il a atteint l'appui long
      if (boutonPlus.estEnfonce() && (dureeAppuiPlus >= appuiLong) && !appuiLongPlusValide) {
        Serial.println(F("beep: appui long Durée"));
        appuiLongPlusValide = true;
      } else if (boutonPlus.estRelache()) appuiLongPlusValide = false;
     
      if (boutonMoins.estEnfonce() && (dureeAppuiMoins >= appuiLong) && !appuiLongMoinsValide) {
        Serial.println(F("beep: appui long Nombre de Photos"));
        appuiLongMoinsValide = true;
      } else  if (boutonMoins.estRelache()) appuiLongMoinsValide = false;
     
      if (boutonStartStop.estEnfonce() && (dureeAppuiStartStop >= appuiLong) && !appuiLongStartStopValide) {
        Serial.println(F("beep: appui long Start/Stop"));
        appuiLongStartStopValide = true;
      } else  if (boutonStartStop.estRelache()) appuiLongStartStopValide = false;
     
    }
     
    void action()
    {
      verification();
     
      switch (etatCourant) {
        case REPOS:
          if (boutonPlus.vientDEtreRelache() && (dureeAppuiPlus >= appuiLong))
            modeDuree(); // passage en mode modif durée
     
          else if (boutonMoins.vientDEtreRelache() && (dureeAppuiMoins >= appuiLong))
            modePhoto(); // passage en mode modif photo
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
          break;
     
        case MODIF_DUREE:
          if (boutonPlus.vientDEtreRelache())
            if (dureeAppuiPlus >= appuiLong) modeRepos(); // on sort du mode
            else changeDuree(+1);  // c'était une incrémentation
     
          else if (boutonMoins.vientDEtreRelache())
            if (dureeAppuiMoins >= appuiLong) modePhoto();
            else changeDuree(-1); // c'était une décrémentation
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
     
          break;
     
        case MODIF_PHOTO:
          if (boutonPlus.vientDEtreRelache())
            if (dureeAppuiPlus >= appuiLong) modeDuree();
            else changePhoto(+1);  // c'était une incrémentation
     
          else if (boutonMoins.vientDEtreRelache())
            if (dureeAppuiMoins >= appuiLong) modeRepos(); // on sort du mode
            else changePhoto(-1); // c'était une décrémentation
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeActif();
          break;
     
        case ACTIF:
          if (boutonPlus.vientDEtreRelache() && (dureeAppuiPlus >= appuiLong))
            modeDuree(); // arrêt et passage en mode modif durée
     
          else if (boutonMoins.vientDEtreRelache() && (dureeAppuiMoins >= appuiLong))
            modePhoto(); // arrêt et passage en mode modif photo
     
          else if (boutonStartStop.vientDEtreRelache() && (dureeAppuiStartStop >= appuiLong))
            modeRepos(); // on sort du mode prise de vues
          else if (millis() - chronoDeclenchement >= unitePeriode * periodeDeclenchement) {
            prendrePhoto();
            if (compteurPhoto >= nombreDePhotos) {
              Serial.println(F("*** FIN DE CYCLE ***"));
              modeRepos(); // on sort du mode
            }
          }
          break;
      }
    }
     
    void setup() {
      Serial.begin(115200);
      modeRepos(); // état initial
    }
     
    void loop() {
      action();
    }
    il vous faudra installer la bibliothèque SimpleBouton qui comme son nom l'indique permet de gérer des boutons et simplifie grandement la vie (à télécharger depuis ce forum).

    Il faudra régler les pins qui correspondent à vos 3 boutons, ici j'ai pris 2,3 et 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const byte pinPlus      = 2; // pin bouton incrémentation
    const byte pinMoins     = 3; // bouton décrémentation
    const byte pinStartStop = 4; // bouton démarrage
    Par défaut un appui court sur un bouton ne fait RIEN, sauf si on est dans un mode particulier (ça évite les erreurs).

    Pour passer dans un mode particulier, il faut faire un appui long, c'est à dire tenir un des boutons appuyé pendant "un certain temps". Ce temps est par défaut de 1 seconde, il est réglable dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const unsigned long appuiLong = 1000ul; // 1 seconde d'appui déclenche
    Un appui long sur le bouton PLUS sert à passer en mode modification de la période entre 2 prises de vues
    Un appui long sur le bouton MOINS sert à passer en mode modification du nombre de photos à prendre
    Un appui long sur le bouton START/STOP sert à lancer ou arrêter le time lapse

    Une fois qu'on a basculé dans un mode de modification, les boutons PLUS et MOINS jouent leur rôle, ils modifient la valeur qui est en cours d'édition.

    Un appui long sur le même bouton sort du mode d'édition
    Un appui long sur un autre bouton passe dans le mode associé à cet autre bouton

    Il y a un beep (ici juste un message) pour notifier l'utilisateur quand il a tenu le bouton appuyé assez longtemps pour déclencher le mode.

    La gestion du temps se fait en dixième de seconde. L'unité associée au compteur de période de déclenchement est définie par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const unsigned long unitePeriode = 100ul; // nombre de millisecondes dans une unité de période, ici en 10ème de secondes

    Voilà donc pour résumer vous lancez chargez et lancez l'application et ouvrez la console série à 115200 bauds.
    Vous verrez

    Mode Repos
    Période de déclenchement: 0.50 s.
    Nb Photos: 20


    si vous tenez le bouton + appuyé plus d'une seconde et vous le relâchez, vous verrez:

    beep: appui long Durée
    Mode modification durée
    Période de déclenchement: 0.50 s.
    Nb Photos: 20


    ensuite si vous appuyez sur + et - vous modifiez donc la durée (période). Par exemple en appuyant et relâchant 5 fois (courtes) sur le bouton +, on voit

    Période de déclenchement: 0.60 s.
    Période de déclenchement: 0.70 s.
    Période de déclenchement: 0.80 s.
    Période de déclenchement: 0.90 s.
    Période de déclenchement: 1.00 s.


    ensuite si je tiens appuyé pendant plus d'une seconde la bouton MOINS, je passe en modification du nombre de prises de vues

    beep: appui long Nombre de Photos
    Mode modification nombre de photos
    Période de déclenchement: 1.00 s.
    Nb Photos: 20


    si j'appuie 3 fois sur le bouton moins, je vais voir:

    Nombre de Photos: 19
    Nombre de Photos: 18
    Nombre de Photos: 17


    Si je tiens maintenant le bouton MOINS appuyé longtemps, je repasse en mode repos

    beep: appui long Nombre de Photos
    Mode Repos
    Période de déclenchement: 1.00 s.
    Nb Photos: 17


    On a bien modifié la Période de déclenchement ainsi que le nombre de photos à prendre.

    Je n'ai plus qu'à tenir appuyé longtemps le bouton Start/Stop pour lancer et vous verrez défiler dans la console une prise de vue toutes les secondes (période choisie) jusqu'à avoir pris 17 photos et on repasse en mode repos.

    beep: appui long Start/Stop
    Action !!
    Période de déclenchement: 1.00 s.
    Nb Photos: 17
    click, c'est dans la boîte. [1 / 17]
    click, c'est dans la boîte. [2 / 17]
    click, c'est dans la boîte. [3 / 17]
    click, c'est dans la boîte. [4 / 17]
    click, c'est dans la boîte. [5 / 17]
    click, c'est dans la boîte. [6 / 17]
    click, c'est dans la boîte. [7 / 17]
    click, c'est dans la boîte. [8 / 17]
    click, c'est dans la boîte. [9 / 17]
    click, c'est dans la boîte. [10 / 17]
    click, c'est dans la boîte. [11 / 17]
    click, c'est dans la boîte. [12 / 17]
    click, c'est dans la boîte. [13 / 17]
    click, c'est dans la boîte. [14 / 17]
    click, c'est dans la boîte. [15 / 17]
    click, c'est dans la boîte. [16 / 17]
    click, c'est dans la boîte. [17 / 17]
    *** FIN DE CYCLE ***
    Mode Repos
    Période de déclenchement: 1.00 s.
    Nb Photos: 17


    un nouvel appui long sur START/STOP relance 17 prises de vues, mais si vous appuyez longuement sur un des boutons pendant le time lapse, ça arrête le processus et déclenche le mode associé au bouton choisi (si c'est Start/Stop ça fait stop, sinon on passe en mode édition d'un des 2 paramètres).

    exemple ici je ré-appuie sur Start/Stop à la 7ème photo et je relâche un peu plus tard (donc la 8ème a été prise)


    beep: appui long Start/Stop
    Action !!
    Période de déclenchement: 1.00 s.
    Nb Photos: 17
    click, c'est dans la boîte. [1 / 17]
    click, c'est dans la boîte. [2 / 17]
    click, c'est dans la boîte. [3 / 17]
    click, c'est dans la boîte. [4 / 17]
    click, c'est dans la boîte. [5 / 17]
    click, c'est dans la boîte. [6 / 17]
    click, c'est dans la boîte. [7 / 17]
    beep: appui long Start/Stop // ici j'ai appuyé
    click, c'est dans la boîte. [8 / 17]
    Mode Repos. // ici j'ai relâché
    Période de déclenchement: 1.00 s.
    Nb Photos: 17



    Le code est un exemple de machine à état. Si vous avez des questions, j'y répondrais volontiers l'année prochaine

    Joyeuses fin d'année à toutes et tous.

  9. #9
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonjour et bonne année

    Merci pour le cadeau, je vais le déballer tranquillement après dissipation des bulles

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    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 582
    Par défaut Clic 2021
    Bonjour,

    Comment est commandé l'appareil photo ?

    Normalement il y a deux boucles sèches. L'une pour la mise au point l'autre pour le déclenchement. La solution qui respecte le mieux la boucle sèche est le relais mais une solution à base d'optocoupleur fonctionne aussi.

    Il y avait un projet intéressant qui s'appelait Photoduino qui marchait bien mais n'est plus maintenu. Il utilisait différents déclencheurs (son, lumière etc) et commandait appareil photo et flashes voire des valves. Regarder les solutions qu'il utilise est assez intéressant (il utilise notamment des optocoupleurs pour piloter les appareils photos).

    Entre autres (câble Nikon N1) :
    Nom : Câble Nikon N1.png
Affichages : 260
Taille : 506,9 Ko
    Que ce soit Nikon ou Canon le jack 3.5 mm présente les broches dans le même ordre. Il suffit donc de prévoir une prise femelle châssis bien câblée et de lui adjoindre un câble de télécommande de la marque et modèle cible. Ceci ne vaut que pour ces deux marques, il faut donc vérifier pour les autres.

    Bon courage

  11. #11
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonjour

    L'appareil photo est commandé par une boucle sèche via le contact d'un relais, je préfère cette solution certes moins élégante à celle d'un mosfet. La mise au point est réglée manuellement au début, de cette façon il n'y aura pas délai dû justement à la mise au point ce qui peut être gênant pour du timelapse à 0,5 sec. De plus une mise au point automatique génère des irrégularités sur le résultat final

  12. #12
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    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 582
    Par défaut
    Bonjour Fermor,

    Je présume donc que l'appareil travaille en manuel à sensibilité fixe pour figer également l'exposition.

    Bonne continuation.

  13. #13
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Très vintage- super cool!!

  14. #14
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Merci mais je trouve que c'était plus facile à faire que la gymnastique arduino
    Mais je m'y ferai

  15. #15
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    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 582
    Par défaut Old is but good is
    Bonjour Fermor,

    Très nostalgique. Même le travail du bois participe de l'ambiance.

    Il n'y a pas une poussière, il a fait une toilette pour la photo ?

    Je crois voir un 555 avec un multi-tours. Tu sais que certains se sont amusés à transformer fonctionnellement un micro-contrôleur 8 pattes en émulation de 555 ?

    Bon, le chemin classique est plutôt celui de ton projet actuel.

    Merci de cette photo.

  16. #16
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonjour Guesset

    Non pas de toilettage pour la photo, juste bien emballé dans sa boîte et la boite dans une valise avec tous les accessoires, émetteur 2,4 pour la prise de vue à distance, batterie li-ion.

    Le 555 c'est pour fabriquer la seconde, même si la précision n'est pas top ça suffit largement pour l'application

  17. #17
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Bonjour Jay M

    J'ai mis en pratique le code que tu as eu la bonne idée de poster

    Je l'ai modifié pour l'adapter à l'afficheur, ajouté des bips touche longs et courts
    Je mettrai par la suite un afficheur 20x4 pour éviter les incontournables lcd.clear suivis des nombreux lcd.setCursor et autres lcd.print qui apportent une lourdeur au programme

    Encore merci

  18. #18
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Parfait! N’hésitez pas à partager

  19. #19
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Par défaut
    Oui je vais le faire mais je ne connais pas le poids d'une vidéo sur le forum

  20. #20
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Citation Envoyé par Fermor Voir le message
    je ne connais pas le poids d'une vidéo sur le forum
    Le plus simple est de créer un compte YouTube pour vos projets techniques (utilisez un mail dédié Si vous voulez protéger votre vie privée). Vous faites votre vidéo et l’exportez sur YouTube et vous ne Postez que le lien vers YouTube ici. Le logiciel du forum se chargera de la rendre visible directement dans votre post.

Discussions similaires

  1. Introduction d'un délai dans un programme
    Par Ubuntuhuit dans le forum C++
    Réponses: 3
    Dernier message: 13/05/2017, 10h47
  2. Délai creation programme import/export excel
    Par cirtey dans le forum C#
    Réponses: 1
    Dernier message: 31/01/2009, 23h26
  3. Réponses: 1
    Dernier message: 15/02/2008, 17h50
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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