Dolly Photo tempi in millisecondi – terza parte

Una caratteristica del Dolly Photo è senza dubbio la rapidità di esecuzione della sequenza fotografica, ecco perché ho realizzato il Dolly Photo tempi in millisecondi:

dolly photo tempi in millisecondi

La versione 1.0 del Dolly Photo gestisce il tempo di attesa tra un passo ed il successivo in secondi ( minimo 1 ) rallentando l’eseguzione della sequenza fotografica.

Alcuni fotografi mi hanno segnalato che se avessi la possibilità di regolare i tempi di attesa tra un passo ed il successivo in millisecondi potresti programmare maggiori scatti o spostare la macchina in minor tempo a parità di numero di passi da eseguire.

Ho deciso dunque di modificare tutta la gestione dei tempi nel Dolly Photo versione 2, da cui il salto di release da 1.0 a 2.0.

Dolly Photo  tempi in millisecondi

In pratica potrai gestire i tempi:

  • di attesa tra un passo ed il successivo
  • di pausa prima dello scatto
  • di pausa dopo lo scatto

in millisecondi, ossia 1/1000 di secondo.

Dolly Photo  tempi in millisecondi

Cosa comporta la gestione Dolly Photo tempi in millisecondi

La modifica nella gestione dei tempi comporta innanzitutto che l’impostazione dei parametri nel Dolly non avviene più in secondi, per cui inserendo 1 ad esempio come tempo di pausa tra un passo ed il successivo otterrai che i passi si susseguiranno ad un millisecondo l’uno dall’altro.

Se vorrai fermare lo slider durante una sequenza di time-lapse prima dello scatto per 1 secondo, come nella versione 1.0, dovrai impostare 1000 al posto di 1.

Lo sketch per la gestione Dolly Photo versione 2

Lo sketch è il medesimo pubblicato nel precedente articolo: Dolly Photo automatizzare il ritorno carrello – seconda parte di seguito ti riporto le linee specifiche per la gestione dei tempi per mostrarti dove intervenire quando vorrai modificare il tuo Dolly Photo.

     case 2:
        if ( (ctrlButton( analogRead( BUTTON )) == 3 ) && intervalloScatto <= 9999999)  { intervalloScatto += 10; lcd.clear();  }
        if ( (ctrlButton( analogRead( BUTTON )) == 2 ) && intervalloScatto >= 1)        { intervalloScatto -= 1; lcd.clear();  }

        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], intervalloScatto);
      break;

      case 4:
        if ( (ctrlButton( analogRead( BUTTON )) == 3 ) && tempoAltPrima <= 9999999)  { tempoAltPrima += 10; lcd.clear();  }
        if ( (ctrlButton( analogRead( BUTTON )) == 2 ) && tempoAltPrima >= 1)        { tempoAltPrima -= 1; lcd.clear();  }

        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], tempoAltPrima);
      break;

      case 6:
        if ( (ctrlButton( analogRead( BUTTON )) == 3 ) && tempoAltDopo <= 9999999)  { tempoAltDopo += 10; lcd.clear();  }
        if ( (ctrlButton( analogRead( BUTTON )) == 2 ) && tempoAltDopo >= 1)        { tempoAltDopo -= 1; lcd.clear();  }

        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], tempoAltDopo);
      break;

nella funzione impostazioni() in cui setti i valori di funzionamento del Dolly Photo modifica le linee contenenti il comando sprintf() cambiando l’unità di misura da s (secondi) in ms (millisecondi);

la stessa operazioni ricordati di eseguirla anche nelle linee della funzione di verifica():

    switch ( setModeLevel ) {

      case 0:
        sprintf(buffer, "%s %d", secondario[(setModeLevel+1)], passiXscatto);
      break;

      case 2:
        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], intervalloScatto);
      break;

      case 4:
        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], tempoAltPrima);
      break;

      case 6:
        sprintf(buffer, "%s %dms", secondario[(setModeLevel+1)], tempoAltDopo);
      break;

      case 8:
        sprintf(buffer, "%s %d", secondario[(setModeLevel+1)], numeroScatti);
      break;

    }

passa quindi alla funzione avvio() che ha il compito di eseguire la sequenza di foto come da impostazioni:

/**********************************************************/   

    for ( int passo=1; passo <= passiXscatto; passo++ ) {

      lcd.setCursor(7, 1);
      lcd.print( "passo:" );
      lcd.setCursor(13, 1);
      lcd.print( passo );  

      if ( ctrlButton( analogRead( BUTTON )) == 3 ) { if ( !pausa() ) return; }

      nFase = fase( nFase );
      nFase++;
      int _intervallo = intervalloScatto;
      if ( !ctrlDelay( _intervallo )) return;

    }

/**********************************************************/

modifica le linee relative alle variabili _intervallo e ctrlDelay( _intervallo ) in modo che il valore impostato in fase di impostazione coincida con quello inviato alla funzione di controllo del tempo: ctrlDelay().

/**********************************************************/

    int _tempo = tempoAltPrima;
    if ( !ctrlDelay( _tempo )) return;

/**********************************************************/

Esegui le modifiche anche nei punti relativi al tempo di attesa prima dello scatto (vedi sopra) ed al tempo di attesa dopo lo scatto:

/**********************************************************/   

    _tempo = tempoAltDopo;
    if ( !ctrlDelay( _tempo )) return;

/**********************************************************/

Queste sono le uniche modifiche che devi eseguire sul Dolly Photo tempi in millisecondi.

Il video del Dolly Photo versione 2

Buon time-lapse !!!

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/dolly-photo-tempi-in-millisecondi-terza-parte.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.