Controllare una fotocamera digitale utilizzando un Arduino USB Host Shield
Link Articolo Originale: http://it.emcelettronica.com/controllare-fotocamera-digitale-utilizzando-arduino-usb-host-shield
Con Arduino è possibile controllare una fotocamera digitale tramite USB. Come far eseguire dei comandi alla propria fotocamera con Arduino, tipi di fotocamere supportate e istruzioni per realizzare il progetto.
Forse non tutti sanno che nelle fotocamere digitali moderne la porta USB oltre che per il trasferimento delle immagini al PC può essere utilizzata anche per l'invio di appositi comandi di controllo per la fotocamera stessa. Spesso è possibile inviare comandi quali "premere" il pulsante di scatto, modificare i valori di scatto e diaframma e così via, mentre alcune telecamere permettono persino di fare un controllo sulla messa a fuoco. Allo stesso tempo alcune nuove tecnologie come HDR e la messa a fuoco sovrapposta richiedono diversi settaggi in modo da modificare i vari parametri tra uno scatto e l'altro e non si prestano per tanto a questo tipo di progetto. Esistono cmunque nerose tecniche fotografiche che potrebbero beneficiare di qualche automatismo.
Controllare una fotocamera con Arduino via USB
Tuttavia i produttori di macchine fotografiche si dimostrano spesso molto lenti nell'introduzione di qualche novità interessante, ma non preoccupatevi perchè Arduino viene in nostro soccorso. Quello che vado a presentarvi è un nuovo codice sviluppato appositamente per Arduino USB Host che implementa alcune funzioni di controllo della fotocamera digitale tramite PTP. Alex Glushchenko, uno sviluppatore Russo, ha recentemente aderito al progetto per il controllo della fotocamera da remoto e il codice descritto in questo articolo è soprattutto frutto del suo lavoro.
Il codice lo trovate a questo link ma attenzione: la fonte è provvisoria ed anche il codice stesso verrà cambiato più volte prima che diventi stabile! E' inoltre previsto un ulteriore sviluppo in quanto diverse telecamere utilizzano dei comandi diversi e si sta cercando di dare supporto a quasi tutti i prodotti, anche se con alcune fotocamere non è possibile ottenere risultati concreti a causa dellerisorse limitate offerte da parte di Arduino.
L'elenco delle telecamere supportate è attualmente molto limitato ma in futuro si spera di raggiungere un numero maggiore. Utilizzare una Fotocamera digitale come periferica USB è molto più complesso che utilizzare una qualsiasi tastiera standard. La complessità inizia ad livello inferiore, ovvero dalla configurazione del dispositivo. Molto spesso le diverse configurazioni supportate dai vari dispositivi sono differenti tra loto, risulta quindi difficile trovare una configurazione di default. Pertanto, il primo passo è naturalmente quello imparare a riconoscere la configurazione che supporta i comandi di controllo della telecamera che stiamo utilizzando.
Ci sono tre specifiche che descrivono il funzionamento di una fotocamera digitale USB: le specifiche USB richieste, i descrittori Endpoint, la struttura è descritta nel protocollo Media Transfer Protocol (MTP), ovvero quel protocollo meglio conosciuto con il nome "Picture Transfer Protocol (PTP).
Controllare una fotocamera con Arduino utilizzando il protocollo PTP
Parliamo brevemente di protocollo PTP analizzandone gli elementi principali. Uno scambio di informazioni all'interno del protocollo PTP è chiamato transazione. I comandi della fotocamera generano delle richieste e a tali richieste corrispondono delle risposte, entrambi i segnali possono essere identificati come transazioni. Spesso una singola richiesta comporta più di una risposta. Alcuni tipi di risposte hanno un significato specifico e vengono chiamati eventi. Spesso capita che si saltino dei comandi o delle richieste a causa della sequenza elevata di input da parte del utente, questo causa il blocco temporaneo della fotocamera che risulterà occupata (Busy).
Il documento più interessante che troviamo al suo interno è il "PIMA 15740-2000", che elenca i comandi supportati dalla classe della Camera. Tale documento è disponibile a pagamento da I3A, tuttavia facendo una veloce ricerca su google si trovano delle copie in pdf gratuite.
Nell'articolo originale sono presenti anche alcuni test e consigli per realizzare un prototipo simile a quello descritto. Sempre all'interno della fonte originale, dalla quale è tratto questo post, potete trovare le specifiche riferite ad alcune macchine fotografiche tra cui figura anche un iPhone.