Go Down

Topic: time lapse, test red infrarossi (Read 2685 times) previous topic - next topic

Michele Menniti

Dunque vedo ora che stai usando un alimentatore da 6V, sono troppo pochi, quindi è probabile che la scheda sia alimentata male, quindi conviene comunque fare le prove con la USB. Cosa hai collegato alla Leonardo oltre al LED IR?
Circa il LED IR, sei sicuro che operi correttamente a 38KHz? Alcuni lavorano su gamme vicine ma comunque differenti, questo potrebbe giustificarne tale comportamento; riguardo il transitor, se posti il link da cui scaricare la libreria, possa dare un'occhiata e vedere se riesco a farti uno schemino, ma sono stra-convinto che non si tratti di un problema di potenza, se fai la prova a dieci cm di distanza assolutamente non può essere un problema di potenza.
invece non è che hai lampade a risparmio energetico o neon accesi o altra strumentazione che possa generare disturbi? Fai una prova completamente al buio con tutto spento, ma comunque ricollega l'USB e stacca l'alimentatore da 6V, è inutile.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

il link dello schemino col transistor è questo: http://sebastian.setz.name/wp-content/uploads/2011/01/arduino_multi_camera_ir_control_Library_wiring.png
volevo solo capire che transistor e che resistenze mettere.. e magari aggiungendo un altro led.. si dovrebbe dimezzare la resistenza in entrata se ho capito qualcosa.. se mi dai una mano con i calcoli mi fai un piacere enorme così almeno mi tolgo lo sfizio di sapere se è o no la potenza del led

quello che mi fa pensare alla potenza è che se lo metto sul pin 13 (che se non sbaglio ha già una resistenza e quindi è un po' meno potente) non va del tutto, e che col cellulare riesco a intravedere un bagliore ma è proprio labile labile solo in mezzo alle due gambine.. se tengo il cellulare puntato sopra esattamente..

pensavo che l'usb del computer fosse a 5v...

come faccio a sapere se opera esattamente 38KHz? me li hanno venduti sfusi.. fra l'altro 5 led 9 euro alla faccia.. magari posso provare a cambiarli..

per il momento non ho null'altro collegato al leonardo.. e lo sto alimentando sia con usb (per avere i print sulla seriale) sia con l'alimentatore

Michele Menniti

Andiamo con ordine.
NON puoi usare contemporaneamente alimentatore esterno e USB, sulla scheda c'è un comparatore che verifica se dalla fonte esterna c'è una tensione superiore a 3,3V, in questo caso esclude l'USB (che è a 5V!); però nel tuo caso specifico avrai una tensione di 4V circa e quindi è MOLTO meglio se togli l'alimentatore esterno e continui a fare le prove con l'USB, altrimenti qui giochiamo con i cavoli fritti. Se vuoi usare un alimentatore esterno devi avere ALMENO 7V, su questo non c'è da discutere.
Il pin 13 ha una resistenza SOLO verso il led L, quindi è un pin come gli altri, ma è pur vero che se alimenti lì il LED IR una parte della corrente farà accendere il LED L, quindi certamente è il meno indicato, continua col 12.
Quello schema fa schifo, è sbagliata la R di base ed il TR è invertito rispetto allo standard TO92.
Comunque collega al pin 12 una R da 1 kohm; l'altro capo alla base di un BC547 (o un NPN alternativo), l'emettitore del BC lo metti a GND, al collettore colleghi il catodo del LED IR, all'anodo del LED IR colleghi una R da 100 ohm, l'altro capo della R a 5V. In questo modo il LED IR lavora a circa 50mA, oltre significa rovinarlo, ma anche questi non sono affatto pochi.
Quando ho letto la storia del bagliore in mezzo alle gambe ho pensato ad una topina fosforescente :smiley-yell:, ma poi mi sono riscordato che parlavi del LED IR, però, scherzi a parte non hai detto come lo vedi il bagliore sul pin 12, e comunque non ti puoi aspettare la luce di un normale LED, infatti tiho detto che devi vedere una luce bianca o rosa, NON un faro!!
Purtroppo non c'è modo di vedere a che frequenza lavora il LED, bisognerebbe sapere la sigla e cercare il datasheet, devi informarti dove l'hai comprato
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

ok niente mi sono tolto lo sfizio della potenza.. non è quello, il comportamento è sempre lo stesso.. su 10 lampeggiamenti mi fa 5 o 6 foto

Michele Menniti


ok niente mi sono tolto lo sfizio della potenza.. non è quello, il comportamento è sempre lo stesso.. su 10 lampeggiamenti mi fa 5 o 6 foto

se avessi avuto più fiducia ti saresti risparmiato il tempo; ora ti rifaccio la domanda:
messo il LED sul pin 12 e guardandolo "in faccia" con la tua Canon, riesci a stabilire se il lampeggio avviene una volta al secondo?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

si avviene una volta al secondo. l'ho testato con:
1) un led normale rosso, lampeggia una volta al secondo
2) guardandolo con la telecamera del cellulare, lampeggia una volta al secondo
se spengo tutte le luci (a parte il monitor del computer), col cellulare lo vedo bello e chiaro

Michele Menniti

bene, quindi l'impulso viene emesso regolarmente ed è certamente sempre uguale, per cui credo che sia la tua fotocamera a non interpretarlo sempre in modo corretto. Come ultima prova dovresti distanziare in modo abnorme gli impulsi, tipo ogni 15 secondi; se in queste condiziono non perdi un colpo vuol dire che è lei dopo ogni scatto a dover compiere qualche operazione che non sempre la mette in condizioni di essere pronta per l'impulso successivo; hai detto di aver provato fino a 6-7 secondi, prova fino a 15 e vediamo che succede
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

idem appena provato ne becca uno ogni due o tre.
ma non è sicuramente questo, ho anche usato una schedina sd classe 10 che usa apposta per i video..

l'unica è fare la prova del 9 con un'altra macchina.. o ci sono altre possibilità?

Michele Menniti

forse qualcosa nella libreria, non so come funziona, ma se ogni macchina o marca ha il proprio sistema di comunicazione può essere che ci sia qualcosa di non corretto che viene trasmesso :smiley-roll-sweat:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

giusto per curiosità sto provando a rivedere la funzione per triggerare la canon..
allora, si parte da questo articolo: http://www.doc-diy.net/photo/rc-1_hacked/
e viene dato questo codice: http://www.doc-diy.net/photo/eos_ir_remote/index.php
(scritto in puro C, non arduino)

e il codice che ho trovato nella libreria è questo:
Code: [Select]
void shutterNow()
{
  for(int i=0; i<16; i++) {
    digitalWrite(_pin, HIGH);
    delayMicroseconds(11);
    digitalWrite(_pin, LOW);
    delayMicroseconds(11);
  }
  delayMicroseconds(7330);
  for(int i=0; i<16; i++) {
    digitalWrite(_pin, HIGH);
    delayMicroseconds(11);
    digitalWrite(_pin, LOW);
    delayMicroseconds(11);
  }
}


confrontando i due codici ho visto che il delayTime potrebbe essere 15 e non 11,
ma la cosa che proprio non capisco è quando parla di Burst frequency, che vuol dire? possibile che con il leonardo la cosa sia diversa?

Michele Menniti

La frequenza di burst dovrebbe essere quella di pilotaggio del LED IR, e da quello che leggo mi pare di capire che sia intorno ai 32KHz, quindi forse non è in grado di pilotare correttamente quel LED che è invece a 38KHz, ma sono mie supposizioni; inoltre mi pare di capire che sia fondamentale settare correttamente la tempistica in base al clock al quale lavora il micro; quindi gli elementi che giustificano il malfunzionamento ci sarebbero, purtroppo non ho mai fatto prove con queste lib, quindi non si aiutarti oltre. Inizia a fare qualche temtativo con i delay
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

#26
Nov 15, 2012, 09:33 pm Last Edit: Nov 15, 2012, 09:40 pm by mantissa00 Reason: 1
oddio no non saprei cosa mettere.. ho provato a documentarmi un po' su wikipedia
ho capito che 1khz sono mille oscillazioni al secondo, quindi..
diciamo che il leonardo va a 38khz, il led deve essere pilotato a 32khz, devo mettere del delay.. x, devo trovare questa x per cui 38 hz * x secondi = 32 hz; e 1 hz è un battito ogni 1/T s..
x = 38/32 = 1.1875.. e poi??
e delay o delayMicroseconds? direi delay.. millisecondi.., visto che parliamo di kilo hz.. ma sto sparando a caso più che altro..

non so non ho capito bene come deve stare in piedi il ragionamento..


Michele Menniti

non è così semplice, intanto il LED IR è a 38KHz mentre la lib sembra generare 32kHz, quindi bisognerebbe modificare la lib per ottenere 38khz, non puoi certo farlo aggiungendo dei delay; a questo punto, senza l'aiuto di uno che la conosce diventa poco possibile risolvere il problema.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

mantissa00

bah.. colto dalla disperazione ho iniziato a dare i numeri prima di spegnere il computer..
ho utilizzato il codice che ho postato sopra ma al posto di delayMicroseconds(11) ho messo 10,
e va decisamente meglio di prima, su una 50 di scatti me ne salta solo 1 o 2 direi che va benissimo rispetto a rpima....

ma comunque una cosa, che cosa si intende come velocità del leonardo a 32khz? dov'è scritto? ho provato a guardare le specifiche del leonardo ma non c'è nulla che sia un numero vicino al 30 della grandezza di khz..

Michele Menniti

32KHz NON è la velocità di Leonardo, il cui clock è 16 MHz, bensì la frequenza che il micro di Leonardo genera sul pin che pilota il LED IR, lo fa mediante opportuna manipolazione dei registri, cosa che avviene certamente a livello di libreria; quindi si potrebbe verificare qual è il punto della lib che genera i 32KHz e portarli a 38Khz; però se già agendo sui delay, come ti consigliavo prima sei arrivato a questi risultati è una cosa buona; secondo me pilotando il LED a 38khz si risolve tutto.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up