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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    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 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    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 à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    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 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

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

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

  6. #6
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 328
    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 328
    Points : 4 145
    Points
    4 145
    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 : 244
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
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    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

  8. #8
    Expert confirmé

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

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

    Bonne continuation.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

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

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Oui c'est tout à fait ça

    Voici la réalisation de 1983 composée de circuits logiques de l'époque.
    Images attachées Images attachées  

  10. #10
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    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 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Fermor
    Citation Envoyé par Fermor Voir le message
    Voici la réalisation de 1983 composée de circuits logiques de l'époque.
    Magnifique, souvenirs, souvenirs...

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

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

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

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

  13. #13
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 328
    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 328
    Points : 4 145
    Points
    4 145
    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.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

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

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    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

  15. #15
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2020
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    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

  16. #16
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

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

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

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

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

  18. #18
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    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.

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

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

    Informations forums :
    Inscription : Décembre 2020
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Voilà une petite video du projet
    https://www.dropbox.com/s/xb9yvur2eg...00852.MP4?dl=0

    Et une autre de l'ancien système
    https://www.dropbox.com/s/xb9yvur2eg...00852.MP4?dl=0 [/url]

  20. #20
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 328
    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 328
    Points : 4 145
    Points
    4 145
    Par défaut Remerciements
    Bonjour Fermor,

    Merci de tes vidéos. A quoi correspond la tension (ou ce qui paraît tel) à droite de la deuxième ligne ?

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

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