Usb Host Shield

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 >.>).

E' fattibile tutto questo? Thx Ciao!

Se devi commandare solo lo scatto é meglio la libreria IRcontrol
http://sebastian.setz.name/arduino/my-libraries/multi-camera-ir-control
http://www.vonroth.com/Arduino/NikonIrControl/

senó via USB e PTP:
http://www.circuitsathome.com/category/camera-control

Chiavette Bluetooth funzionano solo col loro driver che non esiste per Arduino.
Ciao Uwe

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

Anispir.

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.

leggi: http://arduino.cc/forum/index.php/topic,60741.0.html

Ciao Uwe

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.

leggi: http://arduino.cc/forum/index.php/topic,60741.0.html

Ciao Uwe

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 :slight_smile:

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 :slight_smile:

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 :slight_smile:

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.

Grazie :stuck_out_tongue:

sistema operativo?

Win 7 ora sto provando SnoopyPro ma mi escono un sacco di pacchetti tipo

URB Header (length: 72)
SequenceNumber: 36
Function: 0009 (BULK_OR_INTERRUPT_TRANSFER)
TransferFlags: 0x00000000

TransferBuffer: 0x00000014 (20) length
0000: 14 00 00 00 01 00 0e 10 25 01 00 00 00 00 00 00
0010: 00 00 00 00

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.

vedi http://arduino.cc/forum/index.php/topic,66905.0.html

Ciao Uwe

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 :slight_smile:

Il modo di ragionare in fondo è lo stesso ed ho controllato che la tua nikon D40 è supportata

@lesto: a questo punto mi conviene imparare ad usare le librerie e non "decifrare" il dialogo tra pc e fotocamera. Penso sia piu' facile.

@Uwe: per il mio scopo la fotoresistenza sembra funzionare, in firma ho uno scatto realizzato con questo sistema e led ir a comandare lo scatto.

@Federico Vanzati: dato che ho ubuntu in dual boot posso fare qualche prova. Per quanto riguarda la compatibilita' non penso ci siano problemi.

Grazie a tutti.

Anispir:
@lesto: a questo punto mi conviene imparare ad usare le librerie e non "decifrare" il dialogo tra pc e fotocamera. Penso sia piu' facile.

@Uwe: per il mio scopo la fotoresistenza sembra funzionare, in firma ho uno scatto realizzato con questo sistema e led ir a comandare lo scatto.

@Federico Vanzati: dato che ho ubuntu in dual boot posso fare qualche prova. Per quanto riguarda la compatibilita' non penso ci siano problemi.

Grazie a tutti.

non pensavo che esistessero librerie già fatte. Facci sapere come procedi

lesto:
non pensavo che esistessero librerie già fatte. Facci sapere come procedi

Mica se il primo a cui vengono certe idee. :wink: :wink: :wink:
Ciao Uwe

certo, però a nessuno a quanto pare è mai venuto in mente di attaccare una USB UMTS, per questo pensavo che si limitassero a mouse o tastiere...

Scusami lesto allora temo di averti frainteso.
Parlavi della macchina fotografica in PTP o del UMTS?
Ciao Uwe

io parlavo della macchina fotografica, ma rifacendomi a esperienze cercando qualcosa al riguardo dell'umts

allora mi dispiace, hai sbaglaito discussione XD XD ]:smiley:
Ciao Uwe
ovviamente scerzo