Fotocamere Antiche: Come costruire con Arduino un misuratore di velocità dell’otturatore

Spazio Chirale Tutorial   •   9 luglio, 2019

La splendida fotocamera ritratta nella foto è una folding che riprende su lastre di vetro nel formato 82 X 107 mm., detto anche “1/4 di lastra“, realizzata a mano nel 1900 dal celebre chimico e costruttore di apparecchi fotografici  Dr. Rudolf Krugener di Francoforte, per conto del produttore londinese George Houghton, titolare del marchio registrato Klito, e venduta da un ottico di Manchster, di nome A. Franks, ad un ignoto acquirente che probabilmente non l’ha mai usata.

Sebbene l’origine di questo apparecchio sia facilmente identificabile da alcuni particolari costruttivi caratteristici di Krugener e dalle etichette apposte sullo chassis, nulla sappiamo della sua storia fino al momento in cui è arrivata nel nostro Spazio Chirale a seguito di un’asta vinta dai nostri ricercatori, sempre a caccia di materiale significativo per i nostri studi.

Le condizioni pressoché perfette del corpo macchina, del soffietto e dei relativi accessori rivelano che la macchina non è mai stata usata.

Di sicuro si tratta di un oggetto molto raro poiché monta un’ottica costituita da una semplice lente a menisco e un otturatore a rotazione con due sole opzioni: la classica “T” e la “I” che identifica lo scatto Istantaneo di cui non è indicato il valore della relativa velocità. I diaframmi sono costituiti da una serie di fori circolari posti su un disco montato frontalmente rispetto alla lente.

Sappiamo che Krugener ha costruito macchine che saranno marchiate Klito da Houghton fino al 1912 e nella quasi totalità dei modelli conosciuti e classificati dai siti di collezionismo è presente un obiettivo più complesso e un otturatore centrale di maggiore complessità.

Il modello in nostro possesso è quindi uno degli esemplari della primissima serie.

L’assenza di un otturatore con regolazione dei tempi può apparire una limitazione, ma in realtà non rappresentava ai tempi un problema in quanto la sensibilità tipica delle lastre fotografiche in vetro era di circa 2-3 ISO e solo alla fine del secolo XIX iniziarono a comparire lastre con emulsione da 25 ISO. Quest’ultimo fatto, unitamente alle indicazioni dei numeri “f” riportati sul selettore dei diaframmi che variano da f12 a f34, lascia pensare che la velocità di scatto nella posizione I potrebbe essere tra 1/20 e 1/30 di secondo, sufficiente a scattare all’aperto nelle giornate di normale illuminazione solare con una certa adattabilità dell’esposizione.

Inutile dire che il nostro scopo è quello di utilizzare la macchina facendola scattare per la prima volta nella sua vita, rendendo giustizia a questo gioiello. Per questo abbiamo subito ordinato due scatole di lastre fotografiche di vetro da 2 ISO e da 25 ISO.

Ebbene sì! Nel 2019 è possibile acquistare lastre fotografiche vergini con le stesse caratteristiche che si avevano nella prima metà dell’800 o nella seconda metà, a seconda delle preferenze. Tutto merito di Internet e della coda lunga di Anderson, e se non sapete di cosa stiamo parlando poco importa perché basta andare sul sito e-commerce Etsy a questo link e completare l’acquisto delle lastre che vi aggradano, grazie all’opera di Jason Jane, ingegnere ottico e fotografo residente nel Michigan (USA), che ha deciso di avviare una produzione artigianale per riportare in vita questa antica tecnologia.

Con le lastre da 2 ISO i tempi di esposizione dovranno essere necessariamente di alcuni secondi, per cui utilizzeremo la modalità T con cronometraggio manuale.

Sarebbe interessante anche l’uso della modalità I, ma quanto sarà il tempo effettivo di esposizione e soprattutto quanto affidabile?

Servirebbe uno shutter meter. Un dispositivo di questo tipo tornerebbe utile anche per verificare l’accuratezza degli otturatori in tutti i casi in cui ci dovessimo trovare a valutare l’affidabilità di fotocamere d’epoca.

Realizzare uno shutter meter non è difficile. Si tratta di emettere un fascio luminoso che attraversi l’obiettivo e collocare sul dorso aperto della fotocamera un sensore che registri il tempo durante il quale viene percepito il passaggio di luce.

Con Arduino è una roba che si implementa velocemente.

Se state pensando di utilizzare come sensore un fotoresistore come quello qui raffigurato, presente in tutti gli starter kit Arduino, toglietevelo subito dalla testa.

La variazione di resistenza nelle transizioni luminose di un componente di questo tipo impiega dai 20 ai 30 millisecondi. Un tempo dello stesso ordine di grandezza dell’intervallo che intendiamo misurare. Sui tempi veloci, semplicemente non faremmo in tempo ad accorgerci che l’otturatore è stato aperto.

Abbiamo quindi bisogno di un sensore che reagisca velocemente in modo da poter rilevale tempi almeno fino ad 1/1000 di secondo che sono il limite per un otturatore meccanico.

Fotodiodi e fototransistor sono componenti idonei, tuttavia, cercando nel ricco panorama di sensori e componenti cinesi a basso costo che proliferano sul mercato maker, una soluzione rapida e a bassissimo costo è costituita dall’impiego dei due componenti raffigurati sotto. Entrambi possono essere acquistati su siti come Ebay, Amazon o Aliexpress al prezzo di pochi euro.

Il primo è una sorgente laser, normalmente utilizzata come puntatore, dispone di tre terminali, ma è sufficiente collegarne due a GND e a +5V per attivare il fascio luminoso. Sui siti di e-commerce lo trovate spesso indicato come laser sensor, ma ovviamente la denominazione è scorretta trattandosi di un semplice attuatore.

Il sensore di laser, infatti è il secondo componente sopra raffigurato. Si tratta di un semplice sensore digitale. Sul PCB sono presenti i classici tre terminali +Vcc, GND e Signal (S). Una volta alimentato, il sensore fornisce sul terminale S un valore che, a seconda dei modelli, può essere ALTO (+Vcc) o BASSO (GND). Se il sensore viene illuminato da un raggio laser, dopo un tempo di latenza di pochi microsecondi, il valore sul terminale S viene invertito.

Una volta acquistati i due componenti potete testarne il funzionamento con un semplice sketch Arduino e determinare il tipo di transizione che effettua il sensore. Ad esempio quelli in nostro possesso mostrano un valore ALTO in assenza di illuminazione laser che diviene BASSO se il sensore è colpito dal raggio.

Il codice sorgente che presentiamo è quindi sviluppato per gestire questo comportamento, ma è facilmente modificabile per gestire sensori che hanno il comportamento inverso.

Il principio su cui è basato il prototipo di shutter meter è molto semplice e può essere logicamente riassunto nei passi seguenti:

Per posizionare la sorgente laser di fronte all’apertura dell’otturatore della nostra splendida Folding Klito del 1900, abbiamo utilizzato una “terza mano” da banco di elettronica. La sorgente è collegata a +5V e GND direttamente sulla sezione POWER della scheda Arduino UNO.

  • La sorgente laser è sempre alimentata e viene posizionata di fronte all’obiettivo della macchina fotografica.

  • Il sensore di rilevamento del raggio laser è collegato ad un PIN digitale di Arduino configurabile come interrupt (ad esempio il PIN 2 in Arduino UNO) e viene posizionato sul retro della fotocamera, il cui dorso deve essere aperto o rimosso, in modo che quando l’otturatore viene aperto, il sensore viene colpito dal fascio luminoso. Mantenendo aperto l’otturatore utilizzando la posizione T o B  è facile allineare sensore e sorgente.

  • Una volta allineati sensore e sorgente, l’otturatore può essere chiuso e il test di misura può essere effettuato impostando la ghiera dei tempi ed effettuando lo scatto.

  • Quando l’otturatore si apre a seguito dello scatto, il sensore cambia stato e viene registrato il marcatore del tempo in quell’istante.

  • Quando l’otturatore si chiude al termine dello scatto, il sensore cambia nuovamente stato e viene registrato il marcatore del tempo corrente in questo istante.

  • La velocità dell’otturatore è quindi calcolata effettuando la differenza tra i marcatori temporali rilevati all’apertura e alla chiusura dell’otturatore.

Nel nostro prototipo abbiamo collegato il segnale del sensore laser al PIN 2 di Arduino UNO e abbiamo utilizzato la gestione del relativo interrupt per rilevare le misure dei tempi.

Il codice sorgente lo trovate a questo link: https://github.com/spaziochirale/ArduinoShutterMeter

Coloro che hanno seguito i nostri corsi di livello base su Arduino e tutti coloro che conoscono la programmazione delle Interrupt Service Routine non avranno alcuna difficoltà nell’interpretare l’algoritmo.

In ogni caso riportiamo alcuni dettagli sulla struttura del codice.

  • Per rilevare il marcatore del tempo corrente abbiamo utilizzato la funzione di libreria Arduino micros() che fornisce il numero di microsecondi intercorsi dall’accensione della scheda. I dati restituiti sono numeri interi potenzialmente molto grandi e quindi di tipo unsigned long.

  • Poiché su un singolo PIN è possibile installare una sola ISR, la nostra routine che abbiamo denominato shutterEvent() e installata sul PIN 2, viene invocata per qualsiasi transizione di stato del sensore (mode CHANGE) e al suo interno determina quale sia stata la transizione (da ALTO a BASSO o da BASSO ad ALTO) leggendo il valore corrente sul PIN 2.

  • Come prima cosa la nostra ISR registra il valore corrente del tempo, invocando la micros() e aggiornando la variabile globale now.  Come è noto, all’interno della ISR la funzione micros() non viene incrementata, cioè fornisce sempre lo stesso valore poiché gli interrupts, e quindi anche la gestione del timer interno al microcontrollore, sono disabilitati, ma nel nostro caso, a noi serve esattamente il marcatore temporale nell’istante dell’evento che ha invocato l’interrupt.

  • Come seconda azione la nostra ISR determina se l’evento che ne ha causato l’invocazione sia stato l’apertura o la chiusura dell’otturatore. Ricordiamo che il nostro sensore varia da ALTO a BASSO quando viene illuminato e tra BASSO e ALTO quando il raggio laser viene interrotto.

  • La funzione ISR shutterEvent() registra il tipo di evento impostando ad 1 le variabili globali shutterOpen o shutterClose utilizzate come flag, e quindi termina. Non riceve parametri, non restituisce valori e svolge azioni rapide ed essenziali come è corretto che faccia una ISR ben progettata.

Nel caso della nostra folding abbiamo rimosso il dorso e posizionato il sensore laser utilizzando un supporto di fortuna e una breadboard che ha facilitato il cablaggio complessivo. Si noti l’otturatore aperto (abbiamo usato la posizione T) e l’allineamento tra il fascio e la cellula sensibile del sensore.

La funzione loop() del nostro sketch cicla costantemente testando il valore dei due flag shutterOpen e shutterClose.

Qualora risulti attivo il flag shutterOpen vuol dire che è stata rilevata l’apertura dell’otturatore, con conseguente chiamata alla ISR shutterEvent() che ha quindi aggiornato il marcatore temporale nella variabile now. Tale valore viene quindi copiato nella variabile tOpen.

Il flag shutterOpen viene resettato a zero e il loop continua quindi nel suo ciclo di test dei due flag. Qualora risulti attivo il flag shutterClose vuol dire che è stata rilevata la chiusura dell’otturatore, con conseguente chiamata alla ISR shutterEvent() che ha nuovamente aggiornato il marcatore temporale nella variabile now. Tale valore viene quindi copiato nella variabile tClose e viene effettuato il calcolo del tempo trascorso dall’evento di apertura il cui marcatore temporale è contenuto in tOpen.

Il flag shutterClose viene resettato e vengono stampati i risultati nel formato tipico usato in fotografia. In particolare la differenza tra tClose e tOpen fornisce il numero di microsecondi durante i quali l’otturatore è restato aperto. Se tale tempo è maggiore di 1.000.000 microsecondi, cioè 1 secondo, tale tempo viene indicato in secondi e vengono stampati anche i decimali per effetto della conversione in float del dato. Per tempi inferiore al secondo viene stampato il valore come frazione senza l’uso dei decimali.

Il tempo di esecuzione di un ciclo di loop() è di pochi microsecondi, per cui la logica di questo programma funziona nel range di tempi desiderato che prevede una  velocità massima di otturazione prossima a 1/1000 di sec.

In questo caso, il tempo rilevato sarà di circa 1.000 microsecondi,  superiore al tempo di esecuzione del singolo ciclo di almeno tre ordini di grandezza.

Nel caso della nostra macchina fotografica, i tempi rilevati dal nostro shutter meter facendo scattare più volte l’otturatore nella posizione I si sono rilevati piuttosto variabili, con letture comprese tra 1/19 di secondo fino ad 1/40 di secondo, con la maggior parte delle misure pari a circa 1/30 di secondo.

La cosa non sorprende poiché stiamo parlando di un semplice meccanismo a molla probabilmente inutilizzato da quasi 120 anni!

In fondo la variabilità nell’esposizione è contenuta in un intervallo di più o meno 2/3 di stop, coerente con la grossolana risoluzione nella possibile scelta dei diaframmi che mostrano i soli valori f12, f17, f24 e f34.

Non dovrebbe essere un problema ottenere negativi su lastra di vetro discretamente esposti, considerando che andranno sviluppati in bacinella con luce rossa, essendo l’emulsione ortocromatica, con la possibilità di controllare a vista l’indice di contrasto.