Pages: [1] 2   Go Down
Author Topic: 441 water drops  (Read 8416 times)
0 Members and 1 Guest are viewing this topic.
berlin
Offline Offline
Newbie
*
Karma: 0
Posts: 19
make it simpler
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Machine that adds drops of water onto a special textured surface. Each drop forms into an almost perfect sphere through the surface tension of the water and the omniphopic Material. The electronically controlled pipette wanders through a square grid of 21 x 21 drops to form a micro-matrix and returns to the beginning. After approximately 300 minutes, and when thewater drops have evaporated, the same process starts again.

http://pelang.ch/video/falling_objects_positioning_systems.mov



* Drops_1.jpg (253.84 KB, 720x404 - viewed 75 times.)
Logged

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

umm, wow - trying to think of some practical use but failing - cool though smiley-grin
Logged

Silly-con Valley, Ca, U.S.
Offline Offline
Sr. Member
****
Karma: 17
Posts: 420
Lernin' to tinker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Use food coloring in water and draw dot-matrix style pictures. Or sphere-matrix in this case.

Very cool non the less.
Logged

10 PRINT CHR$(7)
20 GOTO 10

Newcastle, England
Offline Offline
Sr. Member
****
Karma: 3
Posts: 489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very impressive! Adding to what biocow said, if you put a light underneath it you could project an interesting picture onto the ceiling, although that would mean using something clear underneath the droplets, rather than the omniphopic material, so it might not work...

Onions.
Logged

My website: http://www.harryrabbit.co.uk/electronics/home.html Up and running now! (Feel free to look round!) smiley-grin

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Really nice !
Can you give us some details about the positioning system ?
Logged

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah I'd be interested in that too smiley
Logged

berlin
Offline Offline
Newbie
*
Karma: 0
Posts: 19
make it simpler
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

thanks,

well there is not much to say. Arduino control's the stepperdriver, step's and direction. Linearaxis are THK (secandhand). Little relay to trigger the dispenser.

the code is kind of mess... was last minut project..

Code:
/*

Falling objects - positioning systems
is an machine that adds drops of water onto a special textured surface.
Each drop forms into an almost perfect sphere through the surface tension
of the water and the omniphopic Material.
The electronically controlled pipette wanders through a square grid of 21 x 21 drops
to form a micro-matrix and returns to the beginning.
After approximately 300 minutes, and when the water drops have evaporated, the same process starts again.

http://pelang.ch/

*/



int dirpin1 = 11; //Stepper 1, Direction
int steppin1 = 12; //Stepper 1, Steps
int dirpin2 = 9; //Stepper 2, Direction
int steppin2 = 10; //Stepper 2, Steps
int enableX = 5; // Enable driver X
int enableY = 4; // Enable driver Y
int relay = 8; //Relay
int Xdrops = 20; //numbers of x drops
int Pause = 100; // Pause wenn Drops
int PauseDrop = 50; //whait befor drop
int limitX = 7; // limitswitch X achse
int limitY = 6; // limitswitch X achse
int switchstateX = 0;
int switchstateY = 0;
int Xsize = 300;  //distance from each drop
int Ysize = 3000; //distance from each drop


void setup() {
 
  pinMode(steppin1, OUTPUT);   
  pinMode(dirpin1, OUTPUT);
  pinMode(steppin2, OUTPUT);   
  pinMode(dirpin2, OUTPUT);
  pinMode(enableX, OUTPUT);
  pinMode(enableY, OUTPUT);
  pinMode(relay, OUTPUT);
  pinMode(limitX, INPUT);
  pinMode(limitY, INPUT);

digitalWrite(enableX, HIGH); //Schaltet X Diver ON
digitalWrite(enableY, HIGH); //Schaltet X Diver ON

/* this is for limitng the xy at the very beginning */

// limiting X

  int b;
 
  digitalWrite(dirpin1, LOW); // Set X the direction.
  for (b = 0; b<10000; b++)                                                       
      {
        switchstateX = digitalRead(limitX);
        if (switchstateX == HIGH)
        {
        digitalWrite(steppin1, HIGH); 
        digitalWrite(steppin1, LOW);   
        delayMicroseconds(800);       
        }
        else
        {
        }
       } 
   digitalWrite(dirpin1, HIGH); // Set X the direction.   
   for (b = 0; b<7800; b++)                                                       
        {
        digitalWrite(steppin1, HIGH); 
        digitalWrite(steppin1, LOW);   
        delayMicroseconds(800);       
        } 
       
       
 // limiting Y

  long g;
 
  digitalWrite(dirpin2, HIGH); // Set X the direction.
  for (g = 0; g<100000; g++)                                                       
      {
        switchstateY = digitalRead(limitY);
        if (switchstateY == HIGH)
        {
        digitalWrite(steppin2, HIGH); 
        digitalWrite(steppin2, LOW);   
        delayMicroseconds(300);       
        }
        else
        {
        }
       } 
   digitalWrite(dirpin2, LOW); // Set X the direction.   
   for (g = 0; g<68000; g++)                                                       
        {
        digitalWrite(steppin2, HIGH); 
        digitalWrite(steppin2, LOW);   
        delayMicroseconds(300);       
        }         
       
}




void loop()
{
 int i;
 int k;
 int b;
 int m;
 long r;
 
digitalWrite(enableX, HIGH); //Schaltet X Diver ON
digitalWrite(enableY, HIGH); //Schaltet X Diver ON


 for (m = 0; m<10; m++) // Make 5 Lines of 5 Drops
  {
   digitalWrite(dirpin1, LOW); // Set X the direction.
   digitalWrite(dirpin2, HIGH); // Set Y the direction.
 
    {
 // move Y 1 line
     for (b = 0; b<Ysize; b++)                                                       
       {
        digitalWrite(steppin2, HIGH); 
        digitalWrite(steppin2, LOW);   
        delayMicroseconds(1200);             
       }     
// make drops
      delay(PauseDrop); //whait befor drop
      digitalWrite(relay, HIGH);   // turn Relay on
      delay(Pause);              // wait for a second
      digitalWrite(relay, LOW);    // turn Relay off
      delay(Pause);              // wait for a second
     
     
 // move X 10 times forward       
     for (i = 0; i<Xdrops; i++) // Make N Drops forward X

     { 
       for (k = 0; k<Xsize; k++)  // Make 80 Steps = 1mm
                                                        //  Moving X Axis 10 Steps CW
         {
          digitalWrite(steppin1, HIGH);                 
          digitalWrite(steppin1, LOW);   
          delayMicroseconds(1200);           
         }

 // make drops
         delay(PauseDrop); //whait befor drop
         digitalWrite(relay, HIGH);   // turn Relay on
         delay(Pause);              // wait for a second
         digitalWrite(relay, LOW);    // turn Relay off
         delay(Pause);              // wait for a second
       }
      }
     
// move Y 1 line   
     for (b = 0; b<Ysize; b++)                                                       
       {
        digitalWrite(steppin2, HIGH); 
        digitalWrite(steppin2, LOW); 
        delayMicroseconds(1200);           
        }

// make drop
       delay(PauseDrop); //whait befor drop
       digitalWrite(relay, HIGH);   // turn Relay on
       delay(Pause);              // wait for a second
       digitalWrite(relay, LOW);    // turn Relay off
       delay(Pause);              // wait for a second
   
       
// change direction of X   
      digitalWrite(dirpin1, HIGH); // Set the direction.


// move X 10 times backwards     
     {
       for (i = 0; i<Xdrops; i++)

        {
         for (k = 0; k<Xsize; k++) // Make 80 Steps = 1mm
 
           {
            digitalWrite(steppin1, HIGH); 
            digitalWrite(steppin1, LOW);   
            delayMicroseconds(1200);           
           }
// make drops
          delay(PauseDrop); //whait befor drop
          digitalWrite(relay, HIGH);   // turn Relay on
          delay(Pause);              // wait for a second
          digitalWrite(relay, LOW);    // turn Relay off
          delay(Pause);              // wait for a second
         }
      }     
   
  }
 
}




// last line last line last line last line last line

// move Y 1 line   
     for (b = 0; b<Ysize; b++)                                                       
       {
        digitalWrite(steppin2, HIGH); 
        digitalWrite(steppin2, LOW); 
        delayMicroseconds(1200);           
        }

// make drop
       delay(PauseDrop); //whait befor drop
       digitalWrite(relay, HIGH);   // turn Relay on
       delay(Pause);              // wait for a second
       digitalWrite(relay, LOW);    // turn Relay off
       delay(Pause);              // wait for a second
   
       
// change direction of X   
      digitalWrite(dirpin1, LOW); // Set the direction.


// move X 10 times backwards     
     {
       for (i = 0; i<Xdrops; i++)

        {
         for (k = 0; k<Xsize; k++) // Make 80 Steps = 1mm
 
           {
            digitalWrite(steppin1, HIGH); 
            digitalWrite(steppin1, LOW);   
            delayMicroseconds(1200);           
           }
// make drops
          delay(PauseDrop); //whait befor drop
          digitalWrite(relay, HIGH);   // turn Relay on
          delay(Pause);              // wait for a second
          digitalWrite(relay, LOW);    // turn Relay off
          delay(Pause);              // wait for a second
         }
      } 



     
     
// Home xy
  digitalWrite(dirpin1, HIGH); // Set X the direction.
  digitalWrite(dirpin2, LOW); // Set Y the direction. 
 

  {
   for (r = 0; r<(Xsize * Xdrops); r++) // X go back to beginng
 
   {
    digitalWrite(steppin1, HIGH);   // For test with LED on
    digitalWrite(steppin1, LOW);    // For test with LED off
    delayMicroseconds(1200);              // wait for a second
    }
   
    for (r = 0; r<66000; r++) // Y go back to beginng
 
   {
    digitalWrite(steppin2, HIGH);   // For test with LED on
    digitalWrite(steppin2, LOW);    // For test with LED off
    delayMicroseconds(400);              // wait for a second
    }

  }

digitalWrite(enableX, LOW); //Schaltet X Diver OFF
digitalWrite(enableY, LOW); //Schaltet X Diver OFF

delay(5000); // verdunsten
 
}




Logged

Global Moderator
Netherlands
Online Online
Shannon Member
*****
Karma: 217
Posts: 13705
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Very cool non the less.

What happens if you freeze it ?
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Very cool non the less.

What happens if you freeze it ?
The water?

I just had a load of ideas run through my head about creating micro-ice spheres smiley-wink
Logged

New Jersey
Offline Offline
Faraday Member
**
Karma: 67
Posts: 3694
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very cool - I love those little spheres. What instigated the project?
Logged

berlin
Offline Offline
Newbie
*
Karma: 0
Posts: 19
make it simpler
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Very cool - I love those little spheres. What instigated the project?

it was for a group exhibition here in berlin with the titel: decay.

i actualy built a cnc router, during that i found it more fun to test the program routines with water drops

thanks all, also for the help (for my projects) i got here !


« Last Edit: April 28, 2011, 09:36:18 pm by pe lang » Logged

Silly-con Valley, Ca, U.S.
Offline Offline
Sr. Member
****
Karma: 17
Posts: 420
Lernin' to tinker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Looks like you're hitting he blogs.

http://gizmodo.com/5808901/441-perfectly-sphere-water-droplets-aligned-to-a-grid
Logged

10 PRINT CHR$(7)
20 GOTO 10

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Haha some of those comments smiley-grin
Logged

Boston Suburbs
Offline Offline
God Member
*****
Karma: 16
Posts: 955
I am above your silly so-called "Laws", Mister Ohm.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I refuse to look up the definition because it will remove the much more entertaining mental image:

What exactly is an "Omniphobic Material"?   

'Today we saw a demonstration of Freakoutium, the metal that our patented Panic-O-Meter operates on.  The United States Department of Homeland Security has expressed interest.'
Logged

When the testing is complete there will be... cake.

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Omniphobic materials - presumably don't like anything - repel most things

Hydrophobic materials repel water so I presume it's hydrophobic as well as other things.
This means the water beads on the surface rather than spreading out (like a heavily waxed car roof)
Logged

Pages: [1] 2   Go Up
Jump to: