banner
Casa / Notizia / Come realizzare uno scanner automatico per pellicole da 35 mm con Arduino Nano e Python
Notizia

Come realizzare uno scanner automatico per pellicole da 35 mm con Arduino Nano e Python

Mar 09, 2024Mar 09, 2024

Aspettare che gli scanner piani eseguano la scansione di una pellicola negativa a colori non è nulla di cui entusiasmarsi. Questo processo e la successiva precorrezione del colore possono richiedere da un'ora a due.

Una tipica configurazione di scansione di una fotocamera digitale include una fotocamera digitale, un treppiede (o un supporto per fotocopie) e un supporto per pellicola. Tra i 3, immagino che l'oggetto più raro sia il porta-pellicola. Fortunatamente aziende come Negative Supply hanno iniziato a realizzare questi tanto necessari supporti per pellicola. Ma questi possono anche essere piuttosto costosi. Fortunatamente, qualsiasi porta-pellicola fai-da-te realizzato in cartone in grado di spingere e tirare una pellicola non tagliata del formato 135 (35 mm) tramite un semplice sistema ad albero funzionerà alla grande. Ne parleremo più avanti!

Un po' di background. Devo dire subito che non sono affiliato con Negative Supply, Capture One o Negative Lab Pro. Mi capita di possedere i loro prodotti e mi piace usarli (per ora). Prima utilizzavo la venerabile Epson V600 per la scansione di pellicole. Questo è stato molto bello perché mi ha permesso di scansionare i miei film, ma la velocità non era quella. Inoltre, non mi godevo completamente i cereali che ricevevo.

Detto questo, le ragioni per cui ho deciso di realizzare questo progetto sono più sfaccettate. Mi piace supportare la comunità cinematografica e le aziende incentrate sul cinema come Negative Supply, Lomography e Negative Lab Pro. Mi piace anche l'idea di spingere leggermente la comunità del fai-da-te verso questo dominio di nicchia. Infine volevo davvero programmare per la prima volta un microcontrollore. Intraprendere questo progetto mi ha fatto pensare a tante cose. Lo ammetto, solo un mese fa non sapevo distinguere tra un Arduino e un Raspberry Pi.

Dopo aver scelto casualmente un Arduino, soprattutto a causa del suo prezzo, avevo bisogno di trovare un problema da risolvere.

NON ci è voluto molto tempo! Per prima cosa ho risolto il problema con lo sviluppatore UniRoller, che era il risultato dell'utilizzo di un JOBO expert tank 3010. Poi mi sono concentrato sull'irrigazione automatica delle mie piante di pomodoro per i tempi in cui andavo a fare un'escursione. E il mio progetto finale e attuale era risolvere questo problema che avevo con la scansione delle pellicole. Questo mi ha anche dato la scusa per esercitarmi con la programmazione Python.

Ad oggi, ho completato 2 programmi separati di scansione di pellicole. Uno scritto in linguaggio Python e l'altro scritto in C++ (noto anche come schizzo di Arduino). Entrambi utilizzano lo stesso hardware, ma ci sono grandi differenze nel modo in cui funzionano. Uno è abilitato dalla visione artificiale Python ed è completamente autonomo (posizionamento automatico, acquisizione di foto e passaggio al fotogramma successivo). L'altro meccanizza solo la progressione del film. L'utente apporta le correzioni necessarie alla posizione della pellicola e poi scatta la foto utilizzando i pulsanti del controller.

Per implementare questo progetto conoscere Python (C/C++ per Arduino) sarebbe l'ideale, ma non è necessario fare clic sul pulsante Esegui su un browser che esegue Jupyter Notebook (che si trova in Anaconda). Detto questo, l'utente deve scaricare Python e 4 librerie. Consiglio vivamente il pacchetto Anaconda in quanto è una soluzione unica, con una comunità online molto ricca.

Dopo questa installazione sono necessarie anche le librerie Python, Numpy, pyFirmata, SciPy e cv2. Puoi installare queste librerie Python utilizzando Anaconda-Navigator o PIP install em dal terminale. Internet è pieno di tutorial pratici su questo. Detto questo, ho utilizzato l'interfaccia web Jupyter per creare ed eseguire il codice Python. Questi programmi avranno un'estensione ipynb. Tuttavia, sarebbe meglio iniziare installando l'IDE di Arduino, poiché è da lì che inizia tutto (gli script di Arduino hanno un'estensione .ino). Ci saranno maggiori dettagli su questo in seguito.

Ok, passiamo alla vera e fantastica configurazione:

Vediamo questa configurazione in azione!

Modalità 1: Solo Arduino e utilizzando la correzione manuale della posizione:

Modalità 2: Correzione automatica con Python:

Modalità 3: Arduino più Python in azione su un supporto per pellicola in cartone fai da te: