Pages: [1] 2 3 ... 13   Go Down
Author Topic: Protipo shield intervallometro  (Read 14693 times)
0 Members and 1 Guest are viewing this topic.
Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
Code:
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

« Last Edit: June 26, 2011, 08:03:02 am by lollotek » Logged

Veneto
Offline Offline
Full Member
***
Karma: 1
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bel progetto, attendo il codice aggiornato ma già che ci sei potresti mettere anche uno schema elettrico e magari la lista dei componenti?

Grazie
Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo schema elettrico a grandi linee è questo:



Fai conto che comunque non ho inventato nulla di particolare, ma solo messo nello stesso circuito il controllo per il motore (trovato nei tutorial arduino) ma senza alimentazione esterna, e poi ho aggiunto 2 fotoaccoppiatori.

Per la connessioni dei fili del motore dipende da motore a motore, io ho usato come riferimento questa guida (ma anche altri post di quel sito mi sono stati di aiuto).

adesso vedo se trovo anche il codice..
« Last Edit: June 26, 2011, 07:00:29 am by lollotek » Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho messo codice e video in testa al post
« Last Edit: June 26, 2011, 08:05:51 am by lollotek » Logged

Veneto
Offline Offline
Full Member
***
Karma: 1
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Che velocità...grazie  smiley-grin
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 517
Posts: 12318
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, complimenti!
Ma il motore quanto assorbe in lavoro? riesci a fare tutto con i 500mA dei +5V di Arduino?
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, complimenti!
Ma il motore quanto assorbe in lavoro? riesci a fare tutto con i 500mA dei +5V di Arduino?

Ad essere onesto sono stato molto grezzo. lo stepper l'ho preso ad una fiera tra del materiale usato, quindi non ne conoscevo le esatte specifiche, ho visto però l'etichetta che indicava 6 volt, quindi l'ho attaccato così com'era. Vedendo che funzionava non mi sono posto altri problemi smiley-grin
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

WOW complimenti, ottimo!!! Lo provo anch'io!
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ci siamo quasi...ho trovato un ULN2803AG, andrà bene lo stesso?
Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda, non saprei che differenze ci siano tra quello che ho usato e quello che hai trovato,  ti conviene cercare qualche data sheet, almeno per vedere se la piedinatura è la stessa.
oppure speriamo nell'intervento di qualcuno di più esperto.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok mi sono informato, sono identici!!!  Prima di farlo vorrei sapere se si possono apportate queste modifiche:

mi piacerebbe che il movimento del motore sia regolabile, tipo: avanza di 1cm, attendi "tot" secondi o minuti, scatta una foto, e poi avanzi ancora di 1 cm..

Credi che sia possibile? quali valori dovrei modificare?

chiedo questo perchè se facessi un dolly lungo 1mt o 2mt, il time lapse finirebbe presto! così invece posso fare dei time lapse che durano quanto mi pare!!

Oppure montare la camera sul motore, e fare dei time lapse dove la camera ruota su se stessa..

che te ne pare?
Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

per mettere un'attesa dopo il movimento basta un delay..

Code:
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();

   [b]delay(1000); // qui metti in millisendi quanto vuoi attendere prima di scattare [/b]
   
}

per la lunghezza del movimento invece non saprei dirti bene, io ho replicato la chiamata alla rotate finchè non si muoveva di un tot che mi soddisfacesse.
ciao
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grande!! bene non mi resta che provare!!! Così potrò anche fare dei video time lapse a 360, se monto la camera direttamente sul motore!
Logged

ITALY
Offline Offline
Newbie
*
Karma: 0
Posts: 46
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bravissimo !
Ciao .anche io mi sono avventurato in questa impresa. Impresa perchè proprio di questo si tratta!
Ho realizzato un dolly autocostruito, con un profilato di alluminio, guide e motore; Ho acquistato arduino uno e ......quì incominciano le notti insonni!
Scherzi a parte sono riuscito a far funzionare  il tutto con Arduino uno + shield x controllo motore acquistato da robotstore (quello con L298p da 2 A)
Siccome non sono molto afferrato nel gestire il codice sono andato x vari tentativi cercando di capire cosa stavo facendo! alla fine sono riuscito a farlo funzionare ...questo benedetto motore!
Per lo scatto mi servo di un intervallometro Nikon!
Ora ti domanderai: "che vuole allora questo qua?"
Siccome per variare la velocità del motore devo variare dei parametri nello Sketch, qiundi bisogna servirsi del pc tramite il programma di caricamento Sketch!  Questa si è rivelata una scomodità eccelsa!(con la barra, il carrello ,il motore, la fotocamera,ecc.ecc.... pure il PC?)
Ho visto su robotstore un lcd shield 16x2 e mi sono chiesto se con questi sarei riuscito a variare gli stessi parametri installando sullo shield controllo motore e Arduino  questo LCD.
Ti ringrazio anticipatamente di una tua risposta in merito ed eventualmente una qualche dritta x poter scrivere uno Sketch per sta roba qua!
Anche perchè di sicuro quello che ti descrivono nella documentazione che ne accompagna l'acquisto, non servirà alcunchè!
Spero e ne sono sicuro di essermi rivolto alla persona giusta!
Ciao.

« Last Edit: October 25, 2011, 01:19:40 pm by bombardone » Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prima del display dovresti capire quali parametri vuoi variare e come, la soluzione più comoda e pratica è usare uno o più potenziometri.
Ovviamente se metti anche la parte dell'intervallometro da arduino riduci anche gli aggeggi da portarti dietro, peró se sei comodo così ovviamente non è necessario.
Magari anche se posti il tuo codice potrebbe aiutare..
Logged

Pages: [1] 2 3 ... 13   Go Up
Jump to: