foto highspeed con arduino

salve a tutti premetto innanzitutto che sono un neofita e uso arduino da poco tempo. in questi giorni stavo dando vita ad una mia idea, (ma devo dire la verita, con scarsi risultati). il mio intento era quello di unire la mia passione per la fotografia a quella dell'elettronica e provare a scattare foto da una reflex tramite arduino. tutto qua!!! direte voi be non proprio, l'idea era un pochino più complessa. provvisto di un microfono o sensore sonoro arduino doveva rilevare il suono e azionare il flash nel minor tempo possibile tale da riprendere lo scoppio di un palloncino. All'inizio non mi sembrava difficile ma sto avendo problemi con il sensore suono qualcuno di voi ha già fatto esperimenti del genere e sarebbe così gentile da aiutarmi grazie anticipatamente per la disponibilità.

Incomincia con questo però non cedo che sia una cosa molto fattibile rilevando il suono...sai com'è la luce viaggia leggermente più veloce del suono e oltretutto non ho la più pallida idea della latenza di sistema dell genere. Potresti pensare invece di coordinare lo scatto con un ago che buca il palloncino , forse è meglio no ?

la sincronizzazione meccanica è molto più difficile. Ho appena acquistato un sensore suono lm393 ma ancora non riesco a farlo interagire con arduino

#define led 13
#define SENSOR_PIN 0
#define SENSOR_THRESHOLD 0





void setup() {
pinMode(led, OUTPUT);
       analogRead(SENSOR_PIN);    // Facciamo fare una lettura a vuoto per assestare l'ADC
}

void loop() {
if ((analogRead(SENSOR_PIN) > SENSOR_THRESHOLD)) //
{ 
delay(10);
digitalWrite(led, HIGH); // Lampeggia il flash
delay(1500);
digitalWrite(led, LOW); 

}
}

ho dato tensione al modulo collegando l'uscita al pin (A0) il modulo funziona perche quando registra suoni accende il led integrato ma sembra che arduino non percepisce segnali forso ho sbagliato a scrivere il programma???

Beh sicuramente una lettura digitale è più veloce del convertitore , non mi ricordo i tempi e nemmeno di che tipo eè il convertitore ma fidati che è molto più veloce una lettura da digitale.

Ed oltretutto hai anche messo un delay di dieci, che rallenta maggiormente la reattività del sistema. In fotografia 1\100 non è affatto trascurabile.

siccome non volevo solo fotografare scoppi di palloncini ho messo un delay di un decimo di secondo per fotografare la frutta che cadeva in acqua e quel decimo di secondo era giusto il tempo che trascorreva tra l'impatto della frutta con l'acqua (quindi il rumore) e per farla immergere sotto la superficie dell'acqua

ma quindi funziona ? ;D

Diciamo che SENSOR_THRESHOLD secondo me dovresti metterlo almeno a 102 (10% della scala), o se hai il datasheet con la relativa tabella comparativa, impostare un valore di dB opportuno. Questo perchè settato a 0, almeno che tu non sia in una deprivation room, avrai uno scatto continuo, perchè ti basta anche che il cane in mezzo alla strada abbai per far scattare la fotocamera.

Poi, visto che come dicevi, hai diverse cose da fotografare, potresti comandare il delay iniziale con un potenziometro.

int max_delay(150);
int pausa;
pausa = map(analogRead(potenziometro), 0, 1023, 0, max_delay);
delay(pausa);

Di moduli LM393 ce ne sono varie versioni, da un minimo di 3 pin a quelli con più pin. Fornisci il link di quello in tuo possesso, perché forse hai un modello con uscita digitale e non analogica.

http://www.dx.com/p/lm393-sound-detection-sensor-module-black-221267#.VEgRsUtZd4M il modulo lm393 ha solo tre pin grazie Brado proverò a collegare anche il potenziometro e domani vi faro sapere i risultati grazie per l'aiuto

Il modulo in tuo possesso ha solo l'uscita [u]digitale[/u] che viene attivata quando si accende il LED sulla schedina.

Non essendo un uscita analogica, lo sketch è più semplice in quanto il trimmer sulla schedina determina il livello di soglia.

#define led 13
#define SENSOR_PIN 2

void setup() {
  pinMode(led, OUTPUT);
  pinMode(SENSOR_PIN, INPUT);
  attachInterrupt(0, ISR, RISING);    // external interrupt 0 su pin 2 (in alternativa 1 su pin 3) 
}

void loop() {
  delay(100);
  digitalWrite(led, LOW); 
{ 

void ISR() {
  digitalWrite(led, HIGH);     // flash
}
int sensore;
void setup ()
{  
pinMode(13,OUTPUT);
pinMode(11,INPUT);
}

void loop()
{
sensore=digitalRead(11);
if (sensore==HIGH)
{
 digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
}

ecco come ho programmato il sensore sembra funzionare correttamente, il flash é stato collegato sul pin 13 tramite un optoisolatore adesso la difficoltà viene volendo insererire anche la reflex su un optoisolatore (4n35) la macchina dovrebbe scattare alla pressione di un pulsante e fermare lo scatto pochi millisecondo dopo il lampeggio del flash (macchina impostata su bulb)

ho cercato di impostare così lo sketch

# define button 8
# define camera 6
# define microfono 11
# define flash 13


int pulsante;
int sensore;
void setup ()
{  
pinMode(flash,OUTPUT);
pinMode(microfono,INPUT);
pinMode(camera,OUTPUT);
pinMode(button,INPUT);
}

void loop()
{
pulsante=digitalRead(button);
if (pulsante==HIGH)
{
 delay(3000);
 digitalWrite(camera,HIGH);
}

sensore=digitalRead(microfono);
if (sensore==HIGH);
{
delay(10);
digitalWrite(flash,HIGH);
delay(10);
digitalWrite(flash,LOW);
delay(50);
digitalWrite(camera,LOW);
}

}

ma deve esserci un errore perche la macchina non scatta.. qualcuno sarebbe cosi gentile da aiutarmi a capire dove sbaglio grazie anche per l'aiuto che mi avete dato fino ad adesso

Scusate se intervengo in questo post, ma son interessato anche io... Utilizzando questo schema vorrei anche io fotografare le gocce... lo schema è di un ragazzo che l'ha fatto. Per pilotare il flash e l'elettrovalvola mi ha detto che ha usato due scr ma non so quali. Io ho tolto i trimmer, perchè aggiusto i tempi dal pc. Manca poi l'alimentazione per arduino nello schema. Qualcuno sa dirmi che SCR potrei usare ?

|500x358