Fotografare le gocce. Arduino e laser per un tutorial futuristico !

Siamo finalmente giunti a una nuova ed entusiasmante puntata della serie di tutorial su Arduino e il fai-da-te fotografico.

Il tutorial odierno orbiterà attorno ad un argomento semplice, ma allo stesso tempo spaziale. Sarà l’utilizzo del laser e della fotoresistenza per creare un trigger a barriera laser. L’applicazione? In verità più di una, dal fotografare le gocce, al creare un vero fotofinish, ad altri mille usi, limitati solo dalla vostra creatività.ARDUINO FOTOGRAFIA tutorial

Il principio su cui si regge questo tipo di trigger è molto semplice da capire, portiamo un esempio pratico cosi si rende tutto più chiaro. Avete presente le gare di corsa, quelle dove il primo classificato raggiunge il traguardo e con il petto sudaticcio strappa la fascia all’arrivo? Bene il principio di funzionamento è lo stesso. Volendo ancora di più semplificare, ricorriamo ad un altro esempio super-stereotipato. La classica scena dei film, dove il ladro furbisssssssimo di turno cerca di entrare in un caveau di banca e immancabilmente deve superare i temuti raggi laser. Se con il suo corpo atletico interrompe per sbaglio un raggio laser, l’allarme suonerà e lui finirà al fresco.

Per chiarezza, no, non dovete farvi 42km di maratona per seguire il tutorial e no, non dovete per forza essere provetti ladri di banca per sfuggire ai temuti raggi laser.

Demenze a parte, il principio su cui si basa questo trigger è quello della barriera. Come il concetto espresso prima con i raggi laser della banca, se il raggio laser che noi puntiamo sulla fotoresistenza viene interrotto (anche per una frazione di secondo), Arduino, che monitora la fotoresistenza, se ne accorge e fa scattare la fotocamera.

fotografare le gocce

Un utilizzo classico e diffusissimo di questo tipo di trigger è per fotografare le gocce nel loro “splash“, anglofonicamente “drop photography. Si prepara una bacinella piena d’acqua e si lascia cadere con un contagocce dall’alto una goccia. Ovviamente bisogna fare in modo che la goccia passi proprio per il raggio laser, interrompendolo, e quindi innescando lo scatto della fotocamera. Come si diceva prima, in realtà, questo trigger può essere usato anche per una miriade di scopi diversi, ma ne accenneremo meglio a fine articolo.

Bene, andiamo a vedere il materiale che ci serve, e le istruzioni per la realizzazione del piccolo trigger.

  • 1x Arduino UNO R3 (va bene qualsiasi versione, tipo Duemilanove, ecc)  circa 20 euro
  • 1x fotoresistenza  circa 20 centesimi
  • 1x laser (può andar bene qualunque laser, attenzione a maneggiarli) circa 1 euro
  • 1x led, va bene di qualunque colore, forma, dimensione… circa 10 centesimi
  • 1x Bottone semplice circa 30 centesimi 
  • 1x Protoboard Solderless (è la basetta con tutti i fori per i contatti) circa 9 euro compresi i cavetti
  • 12x Cavetti “Dupont” maschio-maschio
  • 2x Fotoaccoppiatori (detti anche Optoisolatori) 4N35 circa 1 euro
  • 3x Resistenza da 220 OHM circa 10 centesimi
  • 2x Resistenza da 10K OHM circa 5 centesimi
  • 1x cavetto reflex dipende quale trovate, intorno alle 5-10 euro
  • 1x cavetto PC sync flash, dipende quale trovate, intorno alle 5-10 euro

Spesa totale (orientativa) sulle 40-50 euro

Specifichiamo che gran parte del materiale può essere recuperato dal progetto passato su Arduino, quello riferito alla fotografia High Speed. In particolare ci recuperate tutte le parti “costose“, tipo l’Arduino e i cavetti per reflex e flash, ma pure la protoboard. Insomma di costo vivo per questo progetto si e no sono 3 euro. In più alcune parti del montaggio saranno le medesime del passato tutorial, in particolare quelle riguardo al cablaggio del collegamento a reflex e flash, quindi potrete anche prendere quello che avete realizzato per il tutorial sull’High Speed e semplicemente rimontarlo su questo progetto…

Per evitare inutile ridondanza e fastidioso copia-incolla tra articoli, quando arriveremo al punto del suddetto cablaggio, vi chiederò di dirigervi sul tutorial precedente. So che è più comodo avere tutto in un articolo, ma i passi da seguire per determinati elementi (appunto i collegamenti flash e reflex) sono identici, e i concetti sono i medesimi, quindi il contenuto di quel tutorial vale a “base” per gli altri a seguire.

Dopo aver racimolato il materiale disponetelo davanti a voi, non è che sia moltissimo, però fa comodo avere tutto a portata di mano in una vista d’insieme. (in foto non ci sono i due fotoaccoppiatori perchè in quel momento li stavo usando per un altro progetto che non potevo interrompere, comunque il materiale è questo…); dovreste perciò trovarvi una vista del genere

fotografare gocce arduino

Iniziamo adesso a metterci le mani.

Ho pronto tutto il materiale, come collego il tutto?

Ottimo, a seguire trovi un’immagine realizzata da me, dove viene mostrato esattamente come tutto deve essere collegato. Noterai a destra un led rosso capovolto…nel programma che uso per fare i disegnini non c’era il laser, e perciò ho usato un led rosso per simulare appunto la presenza di un laser. Come puoi notare i cavetti di quel laser sono “attaccati al nulla“, perchè teoricamente il laser dovrebbe avere un’alimentazione autonoma da Arduino (se avete uno di quei puntatori a penna ancora meglio).

Bene, preparato tutto il materiale, e montato come qui sopra esposto, dovreste ritrovarvi con una disposizione fedele alla foto dei componenti eletronici.

Per quanto riguarda la parte del collegamento di flash e camera, è il momento di dirigervi sul precedente articolo su Arduino per trovare una guida esauriente alla questione.

Preparato l’hardware, ovviamente ora tocca passare alla parte software di codice da scrivere per dire ad Arduino quello che deve fare. Per chi stesse leggendo questo articolo senza prima aver letto quello precedente (Fotografia High Speed … semplicissima (e low-cost) con Arduino !!) consigliamo a questo punto di andarsi a dare una lettura anche a quell’articolo, in quanto li si entra più nel dettaglio riguardo anche a una eventuale prima installazione di Arduino e dei software che servono per poterlo usare. Avendo scritto tutto li, sorvoliamo e passiamo direttamente al codice.

Potete copiarlo in due modi, o con un sempice copia-incolla da qui, oppure andando alla relativa pagina su GitHub e copiandolo da li. Abbiamo messo a disposizione gratuitamente il codice anche su GitHub in modo che sia anche più facile da condividerlo come link se qualcuno di voi ne avesse necessità. Aprite perciò il vostro fidato Arduino IDE e copiateci questo codice, scritto appositamente per voi da On50mm Blog Fotografico.

// Trigger LASER
// A cura di : On50mm Blog Fotografico 
// http://blog.giorgiocasiello.com
          
// Mettere reflex in modalità BULB dopo aver messo a fuoco già la scena (fuoco manuale).
          
const int LDR = 0; // pin analogico LDR
const int led = 2; // pin digitale led
const int bottone = 3; // pin digitale bottone
const int outpin = 10; // pin comando reflex
const int flashpin = 9; // pin comando flash
byte RitardoLettura = 5; // tempo ritardo per la lettura sensore in secondi
int soglia = 100; // soglia laser, più alto, più si aumenta la sensibilità
byte caduta = 50; // ritardo goccia interrompe laser e goccia che si schianta
boolean calibrazione = 0;
int Calibra = 0;

void setup() {
  pinMode(outpin, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(flashpin, OUTPUT);
  pinMode(bottone, INPUT);  
  }

void loop(){
if (calibrazione == 0){
    boolean reading = digitalRead(bottone); // controllo, il bottone è premuto?
    if (reading == HIGH) { //se il bottone risulta premuto 
        digitalWrite(led, HIGH); // prima della calibrazione, led lampeggia una volta        
	delay(100); 
        digitalWrite(led, LOW);         
	delay (RitardoLettura * 1000);         
	Calibra = analogRead(LDR);
        delay(100);         
        digitalWrite(led, HIGH); // dopo aver calibrato lampeggia il led 2 volte
        delay(100);
        digitalWrite(led, LOW);
        delay(100);         
        digitalWrite(led, HIGH);
        delay(100);
        digitalWrite(led, LOW);
        calibrazione = 1;
        }      
 }
 
  int Lettura = analogRead(LDR);
  if(calibrazione ==1 && Lettura < (Calibra - soglia)){
  delay(caduta);
  digitalWrite(outpin, HIGH); // ...apri l'otturatore della reflex
  delay(50);
  digitalWrite(flashpin, HIGH); // lampeggia il flash
  delay(50);
  digitalWrite(flashpin, LOW); // termina il segnale del flash
  digitalWrite(outpin, LOW); // chiudi otturatore reflex 
    
  delay(5000); // tra 5s puoi provare nuovamente
  }
}
  

Una volta caricato il codice su Arduino il grosso del lavoro ormai è fatto. Qui di seguito andiamo perciò a discutere di come Arduino “ragiona“, nel controllo di questo trigger. Leggete con attenzione questa parte perchè verranno anche spiegati il significato delle variabili scelte, e sopratutto verrà indicato dove andare a mettere le mani (a livello di codice) se vogliamo variare qualche parametro.

Essenzialmente i parametri che possono essere modificati per adattare l’uso del trigger alle varie situazioni sono :

  • Soglia
  • Caduta

La variabile soglia, come dice il nome stesso, indica quale è lo scarto da considerare per valutare quando c’è effettivamente l’interruzione del raggio laser. Il funzionamento è questo. Il raggio laser viene puntato sulla fotoresistenza, poi premendo il pulsante arduino memorizza il valore di luce rilevato dalla fotoresistenza. Non appena un corpo, cadendo, interrompe il raggio laser, la fotoresistenza legge un valore più basso di luce. In base al valore di soglia scelto, noi gli diciamo quanto deve essere lo scarto tra valore memorizzato e valore letto affinché venga riconosciuta l’interruzione.

Se paradossalmente mettiamo come soglia 0, allora arduino perde sensibilità e scatta sempre, perché qualunque oscillazione di luce porterebbe a un valore più basso di quello memorizzato. Viceversa con un valore troppo alto arduino non scatta mai perché non trova mai una condizione che soddisfi i requisiti. Giocate perciò attorno al valore segnato, che in genere va bene.

La variabile caduta, invece, ha un tipo di importanza diversa. Questa variabile è del tutto personale e dipende da come voi posizionerete il vostro progetto per il funzionamento. Il significato è questo: quando la goccia interrompe il raggio laser, dopo un tot tempo impatta con l’acqua nella bacinella (caso standard). È logico pensare che se tra raggio laser e bacinella ci passano 5cm è una cosa, se ci passa 1m è un’altra. La variabile caduta tiene conto di questa distanza per regolare il ritardo nello scatto. È logico pensare che se tra raggio e bacinella ci passa 1m, se facciamo scattare la foto appena viene interrotto il raggio faremo una foto dove la goccia non ha ancora fatto in tempo a impattare, quindi è ancora per aria… Sapendo ciò, dovete regolarvi in base a come organizzate il vostro set.

A questo punto, spiegato e realizzato l’hardware, spiegato e caricato il software, passiamo alla fase finale riguardante il “come” procedere per l’uso.

Ah, dimenticavo, avete recuperato la parte del precedente articolo dove si parlava di connessione alla reflex e al flash?

 

Montato il tutto ecco il procedimento da seguire per usare il trigger :

  • Il trigger va a energia elettrica (ma va?!) quindi se lo stacchi dal pc e non lo alimenti non funzionerà
  • Posiziona il trigger in modo che non sia di intralcio, possibilmente in modo che eventuali schizzi non lo bagnino (in fondo ci sono parti elettroniche che non amano l’acqua…)
  • Posiziona la reflex puntata verso la scena, disponi il flash e regolane la potenza dopo uno scatto di prova (se non hai flash non è un problema, basta scena ben illuminata).
  • Connetti reflex e flash al trigger e assicurati che anche questi siano protetti da eventuali schizzi
  • Posiziona il laser in modo stabile, regolalo in modo che il “punto” del laser cada esattamente sulla fotoresistenza senza muoversi (fondamentale)
  • Premi il bottone, non appena vedi un lampeggio del led allontanati e attendi 5 secondi, dopo tale tempo arduino farà una lettura della luce del laser e la memorizzerà.
  • Solo quando vedi 2 lampeggi del led vuol dire che il trigger è pronto a rilevare la goccia che cade.
  • Facendo cadere una goccia, magari con un contagocce, cerca di interrompere il raggio laser, essendo la goccia trasparente se la soglia è alta e non centri il raggio, potrebbe non essere riconosciuta l’interruzione
  • Una volta fatto lo scatto il sistema attende 5 secondi per poter riprovare con una nuova goccia

Ricorda che una volta fatta la calibrazione con la memorizzazione della luce del laser non serve fare la procedura a ogni tentativo. Quindi fatta la prima volta non serve più e ogni 5 secondi puoi provare con una goccia diversa. Attenzione, se spegni arduino o gli viene a mancare energia, la variabile memorizzata scompare, quindi serve una nuova calibrazione.
Prima si accennava anche ad altri usi, come ad esempio il fotofinish. Vi basterà posizionare la barriera laser all’arrivo di un percorso per immortalare il vincitore. La barriera si può usare ancora in mille altri modi, sbizzarrite la vostra fantasia, ce l’avete apposta !!

Bene, l’articolo è concluso e come sempre se avete dubbi, suggerimenti, richieste di aiuto, non esitate a scrivere nei commenti. Nel limite del possibile cerchiamo sempre di rispondere a ogni commento, quindi se chiedete aiuto non vi sarà negato almeno un tentativo di soluzione…ovviamente lo spazio dei commenti lo potete usare anche per segnalazioni e proposte per il futuro articolo sul fai-da-te con Arduino !!

Vi lascio con una foto che ho realizzato con questo sistema qualche tempo fa, non tanto per vanagloria personale quanto per dimostrare che come “aggeggio” è assolutamente funzionante e anzi se usato bene sa dare delle belle soddisfazioni…

D R O P • I M P A C T

© Giorgio Casiello

 

A presto, sempre qui con noi, sempre qui su On50mm Blog Fotografico !!

2 Responses to “ Fotografare le gocce. Arduino e laser per un tutorial futuristico ! ”

  1. Ciao, ho seguito tutto alla perfezione e funziona bene senza intoppi!
    Volevo porti una domanda! È possibile implementare dei comandi per controllare il gocciolamento di un’elettrovalvola allo stesso programma scritto nella guida?

    • Giorgio Casiello

      Ciao Mario, come dice un vecchio saggio “Niente (o quasi) è impossibile”. Ci sono diversi modi per implementare quello che dici, ma dipende dal tipo di elettrovalvola e dal funzionamento che vuoi avere. Si potrebbe istruire arduino per comandare la valvola e attendere la goccia, sincronizzando gli eventi. Purtroppo però questa cosa esula dell’interesse del sito e quel (poco) di tempo che gratuitamente dedico agli articoli deve essere volto ad approfondire temi fotografici.
      Ciao!

Lascia un commento