PDA

Visualizza Versione Completa : INTERVALLOMETRO per DSLR



RobertoV
30-01-2021, 20:37
Ebbene sì, ci ho preso gusto ;) il mio essere smanettone e la folle passione per l'astrofotografia... attenzione sono comunque un neofita di sessantadue anni, non mi abbandonano mai.
Capita che mio figlio non usi una Sony alpha 7 ii, fantastica full frame con sensibilità ISO da fantascienza, ha però un limite, non ha la funzione intervallometro che invece ho sulla mia mirrorless LUMIX G7.
Sai che c'è, mi sono detto, l'elettronica non mi fa paura, la programmazione la masticavo bene trent'anni fa, ma è come andare in bicicletta, non si dimentica, o no? :rolleyes:
E allora ecco qua la lista della spesa:
1. Un pulsante PHOLSY S8, , nella versione per Sony, ma ce ne sono per svariati modelli, costo €12,99
( https://www.amazon.it/PHOLSY-dellotturatore-Fotocamere-Telecomando-Multiterminale/dp/B01N4PPFDM/ref=sxts_sxwds-bia-wc-rsf-lq2a1_0?__mk_it_IT=ÅMÅŽÕÑ&cv_ct_cx=pholsy+s8&dchild=1&keywords=pholsy+s8&pd_rd_i=B01N4PPFDM&pd_rd_r=99a034df-f7a1-482b-89df-13ef695900e7&pd_rd_w=tNYn9&pd_rd_wg=c7wW5&pf_rd_p=08de6719-3ac4-4ed2-9c8d-55f6f5840377&pf_rd_r=H11E4RKXMWHYR2FN7M25&psc=1&qid=1612029122&s=electronics&sr=1-1-569cd1f4-72a6-4f1d-b3c5-cf7f1ae39fbb )
2. Un modulo Arduino Nano, clone ma va benissimo e con €19,99 te ne danno 5
( https://www.amazon.it/Longruner-V3-0-ATMEGA328P-micro-controller-Arduino/dp/B072LPHG92/ref=pd_sbs_6?pd_rd_w=8EYue&pf_rd_p=68f0bd4d-f848-4718-a0a9-b8cb636b1a86&pf_rd_r=0SGBR4ANB37N9H4DZCEA&pd_rd_r=ba9b0a8d-e864-44d1-a691-771dcc60a04f&pd_rd_wg=aDXKQ&pd_rd_i=B072LPHG92&psc=1 )
3. Un mini relè reed HE721A0510, con bobina eccitazione 5V e diodo di protezione, questo relè assorbe 10mA, contro 20mA massimi che posso essere richiesti alla porta digitale di Arduino. Costo €1,62. Si può trovare su un negozio di elettronica oppure su FARNELL
( https://it.farnell.com/hamlin/he721a0510/rel-reed-spst-no-200v-0-5a-tht/dp/9561757 )
4. Un mini interruttore, anche questo lo trovate a 80 centesimi in qualsiasi negozio di elettronica.

Ho smontato il pulsante PHOLSY e ho rimosso le lamelle interne che servivano come interruttore, perché troppo ingombranti e ho quindi incollato con colla a caldo il pulsante altrimenti ballava. Sempre con colla a caldo ho fissato il modulo Arduino, e fatti due fori, uno per la presa USB e l’altro per l’interruttore. Collegare il mini relè reed al pin 2 (attenzione alla polarità: 2 reed -> 2 Nano, 6 reed -> GND) e l'interruttore al pin 3 verso GND, io ho messo una resistenza di full-up, ma volendo si può programmare il piedino in PULLUP.

42137

Due parole sull’interruttore, l’ho pensato per riprogrammare il tempo di scatto, nel caso lo si voglia modificare il tempo di scatto in corsa, però in questa prima versione l’ho usato solo come stop. Ci si potrà comunque sbizzarrire per farci le funzioni che ognuno vorrà, oppure risparmiate 80 centesimi e non lo mettete affatto.
La connessione

42138

Per il codice Arduino faccio una premessa, il 99% dei programmatori che leggeranno il codice si metteranno prima a ridere poi mi insulteranno… non si scrive così un codice! Vabbè, so già che hanno ragione, evidentemente non sono rimasto più al passo

Comunque questo è il codice, così potete fare copia e incolla. Nella prima parte si debbono settare le variabili generali, così come descritto, poi non c’è da fare altro che collegare il connettore di uscita del PHOLSY alla Sony, nell’apposita presa per lo scatto remoto sulla sinistra della macchina e una battery pack sul connettore USB di Arduino, e il gioco è fatto.

//Intervallometro
Il dispositivo è alimentato da una battery pack
// Qui vengono inseriti i valori di defaiult
int otturatore=1000; //impostare il tempo di apertura, default 1 secondo
int numeroScatti=5; //impostare numero scatti
int delaybetweenshot=1000; //impostare il ritardo tra uno scatto e l'altro, default 1s
int firstdelay=2000; //impostrare il tempo di attesa dopo l'inserimento della battery pack
// Fine valori da inserire

int debounceDelay=20;
int button_pin=3;
int rele_pin=2;
boolean flagInt_0=true;
boolean flagInt_1=false;

boolean debounce(int pin) //funzione antirimbalzo
{
boolean state;
boolean previousState;
previousState = digitalRead(pin);
for(int counter=0; counter < debounceDelay; counter++) {
delay(1);
state = digitalRead(pin);
if( state != previousState) {
counter = 0;
previousState = state; }
}
return state;
}
void setup() {
pinMode(rele_pin,OUTPUT); //relè otturatore
pinMode(button_pin,INPUT); //ingresso interuttore
int initdelay=2000; //attesa inizio scatti dopo connessione battery pack, default 2 secondi
Serial.begin(9600);
delay(initdelay); //attende prima di eseguire il programma
Serial.println("Shutter Ready");
Serial.print("Otturatore=");
Serial.println(otturatore);
Serial.print("Numero scatti=");
Serial.println(numeroScatti);
}

void loop() {
if(debounce(button_pin)==LOW and flagInt_0==true) {
flagInt_0=false; //esegue il ciclo solo una volta, fino a nuovo valore otturatore
for (int i = 0; i < numeroScatti; i++)
{
digitalWrite(rele_pin, HIGH); // apre otturatore
digitalWrite(13, HIGH);
delay(otturatore); // attende tempo scatto
digitalWrite(rele_pin, LOW); // chiude otturatore
digitalWrite(13, LOW);
delay(delaybetweenshot); // ritardo tra un ciclo e l'altro
if(debounce(button_pin)==HIGH) break;
Serial.print("Scatto");
Serial.println(i);
}
}
}

42136

Buoni scatti e cieli sereni ;)
RobertoV

Huniseth
31-01-2021, 02:19
Bravo, un gran lavoro .. ma .... il pulsante pholsy non è un intervallometro?

etruscastro
31-01-2021, 10:26
RobertoV ci sarebbe da cambiare il colore del testo che proprio si fa fatica a leggerlo, se non puoi più farlo tu dimmi se vuoi farlo e di colore lo vuoi che lo faccio io.

RobertoV
31-01-2021, 11:27
grazie Huniseth, no, purtroppo è solo un mero pulsante con tre lamelle all'interno, praticamente un rudimentale pulsante.
Ciao
Roberto

RobertoV
31-01-2021, 11:30
grazie etruscastro, me ne sono accorto solo dopo la pubblicazione, se sapessi come farlo lo farei io, ma non ho trovato il modo di modificare un post già pubblicato.
Grazie ancora se lo farai per me, spiegandomi come fare per la prossima volta ;):angel:
Ciao
Roberto

etruscastro
31-01-2021, 12:22
hai superato il tempo massimo consentito per la modifica.
altrimenti avresti potuto variare il colore molto semplicemente come una qualsiasi pagina word.

gspeed
31-01-2021, 12:25
Complimenti! Anche la programmazione con Arduino :cool:

Però un peccato dover andar lì a premere un bottone, fossi in te aggiungerei il bluetooth :biggrin::biggrin::biggrin:

PS:


per rendere il codice più leggibile io lo inserisco nel tag QUOTE

RobertoV
31-01-2021, 14:16
grazie gspeed, mi hai letto nel pensiero... :angel: diciamo che il mio obiettivo a lungo termine è quello di integrare la funzione intervallometro nel codice di aGotino, così da controllare il tutto con il modulo bluetooth già presente, così sarà possibile anche variare sia il numero di scatti e/o il tempo di scatto, standosene al calduccio :cool::)
ciao
Roberto

Huniseth
31-01-2021, 17:54
Devo capire il problema.. l'intervallometro con tanto di display costa 15 euro. Lo uso sulla Canon.

RobertoV
31-01-2021, 18:08
Devo capire il problema.. l'intervallometro con tanto di display costa 15 euro. Lo uso sulla Canon.

...appunto Huniseth per la Canon, ma non per la Sony, per la quale, purtroppo, ci vogliono almeno 50 euro, mentre in casa avevo tre modulini Arduino (avanzati dal progetto aGotino) che non aspettavano altro che di essere utilizzati ;)

gspeed
31-01-2021, 18:20
.... il mio obiettivo a lungo termine è quello di integrare la funzione intervallometro nel codice di aGotino...

Direi che ti basta, al posto della funzione delay() - che blocca l'esecuzione di altro codice - memorizzare il momento in cui fai aprire l'interruttore e controllare (con un if) ad ogni ciclo (loop) se è ora di chiuderlo.

Ma l'interruttore PHOLSY S8 l'hai usato solo come scatola e filo, giusto?

Huniseth
31-01-2021, 19:16
Ecco l'inghippo... ma perchè non funziona? Spinotto diverso?