DIY – Trigger Laser per High Speed Photography con Arduino


Ciao ragazzi e bentornati per un nuovo progetto fai da te (Do-It-Yourself!)

Ciò che faremo oggi riguarda la fotografia e l’elettronica, e ci permetterà di scattare le cosiddette “High Speed Photo”!

20150919151437__DSC1415

Quello che vedete in foto, è proprio il risultato finale che riuscirete ad ottenere grazie al trigger laser che costruiremo!


A cosa serve?

Grazie al progetto creeremo una barriera laser che una volta infranta da un qualsiasi oggetto, farà scattare il nostro flash.
Tutto ciò avviene in una frazione di secondo, permettendoci di catturare azioni velocissime come il cadere delle gocce o altro!

 

Lo posso comprare? Quanto spendo a realizzarlo?

Un trigger del genere esiste già in commercio, ma i prezzi partono dalle 50€ in su.
Il progetto considerando tutto ciò che è stato usato, non supera le 20€ e si abbassa se avete già un laser, dei cavi, e qualche altro componente che potreste staccare da elettronica vecchia ormai inutilizzata o rotta!

 

Cosa utilizzeremo per la costruzione?

Ci servirà nello specifico:

  • Un laser anche economico (quello da 1€ delle bancarelle va anche bene)
  • Resistenze da 220Ohm
  • 2 Potenziometri da 10k
  • 1 Fotoaccoppiatore 4n35
  • 1 Fotoresistenza da 1k
  • 1 Interruttore bipolare
  • 1 Kit Arduino Uno
  • Cavi maschio-maschio
  • Basetta millefori
  • (opzionale) lastre di plexiglass da tagliare

 

Tutorial di costruzione

 

Script per arduino

const int LDR = A0; // pin LDR
const int PCaduta = A1; // pin potenziometro caduta
const int PSoglia = A2; // pin potenziometro soglia
const int led = 13; // pin led
const int bottone = 12; // pin bottone
const int outpin = 11; // pin comando flash
byte RitardoLettura = 3; // tempo ritardo per la lettura sensore in secondi
int soglia = 0;
byte caduta = 0;
boolean calibrazione = 0;
int Laser = 0;

int beccato = 0;

void setup() {

pinMode(LDR, INPUT);
pinMode(PCaduta, INPUT);
pinMode(PSoglia, INPUT);
pinMode(led, OUTPUT);
pinMode(bottone, INPUT);
pinMode(outpin, OUTPUT);
digitalWrite(led, HIGH);
Serial.begin(115200);
}

void loop() {

int caduta = analogRead(PCaduta);
int soglia = analogRead(PSoglia);

soglia = (soglia / 2) - 3;

if (calibrazione == 0)
{

boolean lettura = digitalRead(bottone);

if (lettura == HIGH)
{
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay (RitardoLettura * 1000);
Laser = analogRead(LDR);
delay(100);
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
calibrazione = 1;
}
}


int Fotoresistenza = analogRead(LDR);


if(calibrazione == 1 && Fotoresistenza < (Laser - soglia))
{
beccato = Fotoresistenza;
delay(caduta);
digitalWrite(outpin, HIGH);
delay(50);
digitalWrite(outpin, LOW);
Serial.print("Beccato: ");
Serial.print(beccato);
Serial.print(" - Laser: ");
Serial.print(Laser);
Serial.print(" - Soglia: ");
Serial.print(soglia);
Serial.print(" - Cadura: ");
Serial.println(caduta);
digitalWrite(led, HIGH);
delay(3000);
digitalWrite(led, LOW);
}

}



1 Commento

  1. Donato ha detto:

    Ciao, Complimenti per la realizzazione. Penso che te la copierò.
    Una domanda: pensi che sia possibile mettere in serie delle fotoresistenze per prendere una linea di luce ivece che un punto?
    Per esempio usando un laser per livellare (che disegna una linea) sarebbe più semplice “colpire” la goccia. Non so se sono riuscito a spiegarmi…

Lascia un commento

%d blogger hanno fatto clic su Mi Piace per questo: