Ciao a tutti.
Sono interessato ad acquistare un Usb Host Shield principalmente per controllare una fotocamera Nikon D40. Cercando ho scoperto che e' fattibile usando il protocollo PtP/MtP. Pero' ho molti dubbi su come comandare lo scatto e non ho trovato info.
Un altra idea e' quella di connettere una chiavetta Bluetooth e magari connettere un ricevitore gps-bluetooth alla chiavetta (si e' una pazzia lo so >.>).
Ciao Uwe!, l'idea era di non usare l'IR in quanto un collegamento via usb e' piu' affidabile per l'utilizzo che devo farne.
Il link del PTP fa proprio al caso mio.
Per quanto riguarda le Bluetooth dongles ho trovato http://www.circuitsathome.com/mcu/bluetooth-code-for-arduino-usb-host e se questi ci sono riusciti vuol dire che si puo' connettere qualcosa via bluetooth, spero.
Se qualcuno ha esperienza con il camera control mi dia pure qualche consiglio XD
Se Ti serve un telecomando pilotando la macchina fotografica in PTP Ti consiglio un altro modulo di radiocontrollo e non Bluetooth. Qualcosa che si collega con la seriale come per esempio XBee o moduli sui 443, 315MHz é molto piú semplice e senza tanto codice da fare e con portate maggiori dei 10m della Bluetooth standart.
uwefed:
Se Ti serve un telecomando pilotando la macchina fotografica in PTP Ti consiglio un altro modulo di radiocontrollo e non Bluetooth. Qualcosa che si collega con la seriale come per esempio XBee o moduli sui 443, 315MHz é molto piú semplice e senza tanto codice da fare e con portate maggiori dei 10m della Bluetooth standart.
Forse ho fatto un po di confusione: lo shield usb host lo utilizzo per controllare la macchina fotografica via usb. La domanda sul Bluetooth non c'entrava niente con la fotocamera, era solo per informarmi su altri possibili utilizzi dello shield
Per ora ho importato le librerie delle varie fotocamere nell' IDE. Ma il mio scopo e' quello di realizzare un sistema che fa questo:
Fotoresistenza invia il valore ad arduino -> se questo e' maggiore di X allora arduino invia via usb il comando alla Fotocamera di scattare.
Questo passaggio "arduino invia via usb il comando alla Fotocamera" per ora e' un incognita :~
allora, il PTP è un protocollo per inviare le foto.
prima di tutto devi vedere se è possibile scattare via USB, se sì vedere quali sono i comandi necessari. Forse li trovi su internet, altrimenti "sniffi" la USB del PC usando il comando. A questo punto arduino non dovrà fare altro che replicare il comando sniffato
lesto:
allora, il PTP è un protocollo per inviare le foto.
prima di tutto devi vedere se è possibile scattare via USB, se sì vedere quali sono i comandi necessari. Forse li trovi su internet, altrimenti "sniffi" la USB del PC usando il comando. A questo punto arduino non dovrà fare altro che replicare il comando sniffato
La fotocamera supporta lo scatto via usb, di questo ne sono certo.
Ok quello che mi dici e' molto interessante, lo sniff intendo, come si fa? In giro ho trovato solo librerie che potranno venirmi utili piu' avanti. Per ora cerco un comando semplice da inviare.
boh, sinceramente oltre non saprei andare. In realtà se tu avessi 2 usb host, allora potresti fare un programma che tutto quello che arriva da una parte, viene rispedito dall'altra e viceversa, e ovviamente tutto loggato (la seriale mi sa che è troppo lenta) su EEPROM o SD.
a questo punto attacchi la camera, poi attacchi il pc, e sniffi cosa succede. Questo perchè altrimenti dovresti sapere e implementare il portocollo USB per capire e utilizzare quei comandi, con la tescnica del doppio host invece si tratta di ripetere "a pappagallo" quello che "diceva" il PC.
Secondo me tutto il lavoro del vedere cosa fa il programma originale di controllo macchina fotografica l'hanno giá fatto e programmato la libreria.
Il PTP é un protocollo per controllare la macchina fotografica dove é compreso il trasferimento delle immagini.
Anispir non usare una fotoresistenza; quelli sono troppo lenti. Se lavori in situazioni con poca luce solare diretta usa un fototransistore e un laser di un puntatore a pochi soldi. Se lavori al esterno con tanta luce usa un LED IR pilotato con 38kHz e un ricevitore TSOPxx38 (vedi http://arduino.cc/forum/index.php/topic,73320.0.html ). Questo sistema é molto immune alla luce continua.
Pensa anche alla possibilitá di tenere l' otturatore aperto e di pilotare il flasch nel momento giusto. Questo modo é piú veloce (come ritardo) rispetto a un scatto della macchina fotografica.
Mi sa che che prima di riuscirci devi leggere un po' di documentazione ( http://www.circuitsathome.com/ptpusb-control-camera-data#NIS4000 ) i questo link nell'elenco delle DSLR nikon supportate non compare la D40, però dicono anche che il protocollo usato è molto simile a quello delle powershot, quindi in qualche modo dovrebbe funzionare anche sul tuo modello. Probabilmente c'è qualche ritocco da fare.
Il discorso è interessante anche se richiede tempo per essere approfindito.
Se avessi voglia di usare una distribuzione unix potresti provare il software gphoto2 (da riga di comando) che potrebbe renderti più dolce l'ingresso nel mondo del controllo delle fotocamere via USB
Il modo di ragionare in fondo è lo stesso ed ho controllato che la tua nikon D40 è supportata