Pages: [1] 2 3   Go Down
Author Topic: High Speed Photography  (Read 5821 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My high speed photography project for water drops ect, is comming along very nicely so here what i have done so far.
With the Arduino Duemilanove i'm controlling a: Solenoid valve, Photogate, Flash and my Camera.
Works like this:
1. open shutter on camera
2. a delay control the drops from the solenoid valve
3. a photogate waits for the drop the pass the gate
4. after a delay the flash get fired and the picture is taken.

this is what i have done with it:

   

More here: http://www.flickr.com/photos/34463171@N04/

Here is the schematic for it, this is the first time i have drawn a schmatic so there might be some error in it:

         

And the code:

Code:
int buttonPin = 2;                 // Connection to the Button
int solenoidPin = 8;              // Connection to the Solenoid valve
int flashPin = 9;                 // Connection to the Flash
int cameraPin = 10;                // Connection to the Camera
int photogatePin =11;              // Connection to the Photogate

int varloop = 0;                   // Check variable for Photogate
int val = 0;                       // Variable for checking if something has passed through the photogate
int bval = 0;                      // Variable for checking is button is pressed
int flashTimer = 212;              // Delay before flash is fired   ----- Millisecond
// int flashTimer_micro = 500;         // Delay before flash is fired   ----- Microsecond (1000 = 1 milisecond)
int solenoidDelay = 250;            // Delay for the Solenoid vale, determinds how many drops are dropped
int cameraDelay = 250;

void setup(){
  pinMode(cameraPin, OUTPUT);
  pinMode(solenoidPin, OUTPUT);
  pinMode(flashPin, OUTPUT);
  pinMode(photogatePin, INPUT);
  pinMode(buttonPin, INPUT);
}

void loop(){
  bval = digitalRead(buttonPin);
  if (bval == HIGH){
    varloop = 0;
    } else {
    openShutter();
    dropWater();  
      while(varloop != 1){
      detectFlash();
      }
     varloop = 0;
    }
}

int openShutter(){
  digitalWrite(cameraPin, HIGH);
  delay(cameraDelay);
  digitalWrite(cameraPin, LOW);
}

int dropWater(){
  digitalWrite(solenoidPin, HIGH);
  delay(solenoidDelay);
  digitalWrite(solenoidPin, LOW);
}

int detectFlash(){
   val = digitalRead(photogatePin);
  if (val == HIGH) {
    delay(flashTimer);
//    delay(flashTimer_micro);
    digitalWrite(flashPin, HIGH);
    delay(50);
    digitalWrite(flashPin, LOW);
    delay(500);
    varloop = 1;
   }
}

Next ting will be to add a LCD display


Jens Erik
http://www.flickr.com/photos/34463171@N04/
« Last Edit: June 20, 2009, 09:43:52 am by crowley » Logged

Rural Arizona
Offline Offline
Edison Member
*
Karma: 7
Posts: 1711
Incorrigible tinkerer
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wow.

Those are gorgeous pictures.  And really ingenious work to make them.

Thanks.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 41
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Those are the most amazing pictures ever *bookmarks*. You should enter in a contest!!!!!!!!!!!!!! ;D
Logged

New York
Offline Offline
Edison Member
*
Karma: 1
Posts: 1023
E != m*c^2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

thats really cool, great photos smiley

you should try something similar with balloon popping... just replace the solenoid with a linear actuator attached to a needle... and you wont even need the photogate
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for the comments

jezuz, haven thought of that, great idea

Jens Erik
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 854
Arduino rocks!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

One thing I was wondering about though.  You have the photogate, so why go to the trouble of the solenoid?  When I did this, I used a laboratory burette to give me a slow stream of nice fat drops.

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

To control how fast the drops are moveing, i need about 10 drops a sec to get the drops.I have the solenoid connected to a Mariotte Siphon (http://www.martin-waugh.com/?p=19 )so i get a steady stream of drops af the precise speed i want.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Jens , I am a little confused (not difficult) over the Mariotte Siphon and the solenoid set up , If the solenoid is normally closed and fixed to the outlet of the Siphon , wouldn't the drops just sit behind the solenoid valve and build up. Then once released just drop in one spurt.
Also I am not really into code is this a one shot operation  or does the button switch start the process

Have you got a shot of the full set up

thanks
Barry
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Barry

Yes the are a fixed pressure behind the solenoid valve, but i only open the solenoid valve for a very short time 75-250 micro sec, to control how many drops the solenoid valve will release, the height of the marion siphon depends how much pressure, thus determining the drop rate.

Yes the button starts the whole process.

I don't have a photo of the setup, i have just taken it down, but i will set it up again in a couple of days , then i will take a photo and post it

Jens Erik
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Jens , I made the Hi-viz set-up and that works quite well but when trying to get a collision it was like a disco in here the flash going off every 500 milliseconds lol

I hot the picture now (forgive the pun) just waiting for my solenoid to arrive , then get down to business

once again thanks  
Barry smiley
Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Jens

Great pictures.
Can you tell me which solenoid valve you use?

thanks
Manfred
Logged

_______
Manfred

0
Offline Offline
God Member
*****
Karma: 1
Posts: 588
LumiNet rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fantastic!
Can you take a picture of the setup? The solenoid valve and everything else. Great work!
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Me again Jens , looking at the  schematic have you made a mistake with the LTV816 , the anode is going to ground on the diode pins , or am I having a blonde moment :-)

Barry
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Me again Jens , looking at the  schematic have you made a mistake with the LTV816 , the anode is going to ground on the diode pins , or am I having a blonde moment :-)

Barry
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 41
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very great photos smiley-wink

Can you tell me a site where i can learn more about the tehcnic to take photos like that?
Logged

Pages: [1] 2 3   Go Up
Jump to: