Eccovi qua la mia prima versione di intervallometro per DSLR.
Un intervallometro serve per pilotare gli scatti di una macchina fotografica con un tempo regolare, questa tecnica viene principalmente utilizzata per l'effetto timelapse, cioè quei filmati in cui si vedono in poco tempo eventi di più lunga durata. questo è un video che ho realizzato con il circuito:
video intervallometro
Per il progetto mi sono ispirato al videotutorial per lo sviluppo di un "intervalluino":
link videotutorial
Il concetto controllare una macchina reflex semiprofessionale è molto semplice, basta sfruttare l'ingresso per il telecomando con cavo (tipicamente di tipo jack come quello audio), e chiudere i 2 contatti (fuoco e scatto) in base alla necessità. Per fare ciò si utilizzando dei fotoaccoppiatori.
Quelli che ho utilizzato sono a 4 pin, ma tipicamente sono a 6 (anche se cmq le porte usate rimangono 4).
Al circuito ho anche aggiunto un per un motorino unipolare, predisponendo così lo shield anche per un carrellino, detto anche dolly
a seguire alcune foto:
codice:
int shutter_on = 200; //tempo di pressione per attivare la cam, da settare intorno i 100 e 300
int shutter_off = 1500; // tempo di attesa prima di attivare il motorino
int wakeup = 300; //time to activate wakeup (focus)
int wakewait =200; //time between wake and shutter
int outpin = 13; //uscita per lo scatto
int wakepin = 12; //uscita per la messa a fuoco
// init motorino
int motorPin1 =8;
int motorPin2 =9;
int motorPin3 =10;
int motorPin4 =11;
int delayTime = 500;
void setup() {
// init dei pin per lo scatto
pinMode(outpin, OUTPUT); //outpin gives output
pinMode(wakepin, OUTPUT); //wakepin gives output
// tempistiche per lo scatto, modificare in base alle esigenze
shutter_on = 200;
// init dei pin per il motorino
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
/////////// Loop ////////////
void loop(){
digitalWrite(wakepin, HIGH); //turn wakeup/focus on
delay(wakeup); //keep focus
digitalWrite(wakepin, LOW); //turn wakeup off
delay(wakewait); //wait
digitalWrite(outpin, HIGH); //press the shutter
delay(shutter_on); //wait the shutter release time
digitalWrite(outpin, LOW); //release shutter
delay(shutter_off); //wait for next round
rotate3();
}
void rotate3(){
// in base al numero delle chiamate il motorino farà più o meno scatti
rotate();
rotate();
rotate();
}
void rotate(){
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
}
Il progetto comunque è lasciato a metà, ci sono molte possibilità di espansione, ho anche fatto prove con fotoreristenze per regolare la durata dello scatto (in modalità bulb).
Una delle idee che avevo era quella di creare qualcosa di modulare come comunque altri progetti, ma comunque di puntare alla creazione di un prodotto facile da usare e dal basso costo. Per fare ciò ho pensato di eliminare la configurazione da display abbassando i costi e togliendo menù macchinosi, ma di gestire tutto tramite un programmino ad hoc. Per ora però è tutto "parcheggiato"
Gli altri progetti basati su arduino per pilotare DSLR sono:
Camera axe
Photoduino