Arduino Forum

Community => Exhibition / Gallery => Topic started by: pelang on Apr 22, 2011, 03:45 am

Title: 441 water drops
Post by: pelang on Apr 22, 2011, 03:45 am
(http://pelang.ch/installations/positioning_systems/images/Drops_1.jpg)
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 (http://pelang.ch/video/falling_objects_positioning_systems.mov)

Title: Re: 441 water drops
Post by: mowcius on Apr 22, 2011, 05:34 pm
umm, wow - trying to think of some practical use but failing - cool though :D
Title: Re: 441 water drops
Post by: biocow on Apr 22, 2011, 05:49 pm
Use food coloring in water and draw dot-matrix style pictures. Or sphere-matrix in this case.

Very cool non the less.
Title: Re: 441 water drops
Post by: Onions on Apr 22, 2011, 08:42 pm
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.
Title: Re: 441 water drops
Post by: frikosal on Apr 25, 2011, 10:48 pm
Really nice !
Can you give us some details about the positioning system ?
Title: Re: 441 water drops
Post by: mowcius on Apr 25, 2011, 10:50 pm
Yeah I'd be interested in that too :)
Title: Re: 441 water drops
Post by: pelang on Apr 26, 2011, 02:50 pm
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: [Select]
/*

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
 
}





Title: Re: 441 water drops
Post by: robtillaart on Apr 28, 2011, 10:14 am
Quote
Very cool non the less.


What happens if you freeze it ?
Title: Re: 441 water drops
Post by: mowcius on Apr 28, 2011, 12:29 pm

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 ;)
Title: Re: 441 water drops
Post by: wildbill on Apr 28, 2011, 06:58 pm
Very cool - I love those little spheres. What instigated the project?
Title: Re: 441 water drops
Post by: pelang on Apr 29, 2011, 04:34 am

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 !


Title: Re: 441 water drops
Post by: biocow on Jun 06, 2011, 06:28 pm
Looks like you're hitting he blogs.

http://gizmodo.com/5808901/441-perfectly-sphere-water-droplets-aligned-to-a-grid
Title: Re: 441 water drops
Post by: mowcius on Jun 06, 2011, 06:52 pm
Haha some of those comments :D
Title: Re: 441 water drops
Post by: focalist on Jun 06, 2011, 10:26 pm
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.'
Title: Re: 441 water drops
Post by: mowcius on Jun 06, 2011, 10:34 pm
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)
Title: Re: 441 water drops
Post by: FalconFour on Jun 07, 2011, 02:18 am

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.'
Haha... I never thought of that. I've gotta take a moment to give you the lol for that: LOL! A Panic-O-Meter. xD

Had a lot of trouble trying to play the video... video would play in MPC-HC, but garbled audio. Why wasn't this just posted to YouTube like every other video on the 'net? =P Seems cool enough to be a popular video, but no good if nobody can watch it, haha... I re-encoded it to x264 using Handbrake and it plays now... any objections to posting it on YouTube for the world to see? It looks awesome!! So entertaining seeing it click away with each little sphere of water, never seen anything like it...
Title: Re: 441 water drops
Post by: focalist on Jun 07, 2011, 02:30 am
Well, the original Panic-O-Meter depended upon a biological sensor.  It was analog and rather subjective.  Perhaps you've heard of the "Sphincter Scale"?

That really is a cool device you made there.  Sitting here thinking about how some parts might be adaptable to the poor-man's wall plotter I'm messing with...
Title: Re: 441 water drops
Post by: crayderfish on Jul 16, 2011, 09:15 am
what is volume of the drops?