Loading...
Pages: 1 [2]   Go Down
Author Topic: A Low Cost Approach to Graphical Waterfall  (Read 3214 times)
0 Members and 1 Guest are viewing this topic.
Pakistan
Offline Offline
Sr. Member
****
Karma: 5
Posts: 318
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for all of your help and suggestions.. I am going to abandoned this project as i got poor results... But i hope someone will come here with clever ideas and make this whole thing work. Following is the last video of the show:

I can attach the the visualbasic files (Source Code) so that the software can be further improved to get realistic results. I am sorry the source code is not well commented and please don't ask me programming related questions:

I am attaching the Arduino Sketch for controlling the 40 solenoid valves. May be someone can improve the sketch and send me so that i can try on my hardware. Following is my email address:
engr.khalid.khattak@gmail.com
Code:
//Pin connected to ST_CP of 74HC595
int latchPin = 6;
//Pin connected to SH_CP of 74HC595
int clockPin = 13;
////Pin connected to DS of 74HC595
int dataPin = 11;
byte FirstByte;
byte SecondByte;
byte ThirdByte;
byte FourthByte;
byte FifthByte;
int val;
byte serialInArray[5]; // array for storing 5 bytes as they arrive from VB software
int serialCount = 0; // for counting the number of bytes received


void setup() {
  //Start Serial for debuging purposes
  Serial.begin(9600);
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);

}

void loop() {
  
   if (Serial.available() > 0){
       serialInArray[serialCount] = Serial.read(); // read a byte sent by processing
        serialCount++;  // increment number of bytes received

    if (serialCount > 4 ) {  
FirstByte = serialInArray[0];
SecondByte = serialInArray[1];
        ThirdByte = serialInArray[2];
        FourthByte = serialInArray[3];
        FifthByte = serialInArray[4];
Serial.print(FirstByte);
Serial.print(SecondByte);
Serial.print(ThirdByte);
Serial.print(FourthByte);
Serial.print(FifthByte);
Serial.println("");

     digitalWrite(latchPin, 0);
    shiftOut(dataPin, clockPin, FirstByte);
             shiftOut(dataPin, clockPin, SecondByte);
                 shiftOut(dataPin, clockPin, ThirdByte);
                 shiftOut(dataPin, clockPin, FourthByte);  
       shiftOut(dataPin, clockPin, FifthByte);
    
  
    //return the latch pin high to signal chip that it
    //no longer needs to listen for information
    digitalWrite(latchPin, 1);
 serialCount = 0;
 delay(20);
   }
}
}
void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
  // This shifts 8 bits out MSB first,
  //on the rising edge of the clock,
  //clock idles low

//internal function setup
  int i=0;
  int pinState;
  pinMode(myClockPin, OUTPUT);
  pinMode(myDataPin, OUTPUT);

 //clear everything out just in case to
 //prepare shift register for bit shifting
  digitalWrite(myDataPin, 0);
  digitalWrite(myClockPin, 0);

  //for each bit in the byte myDataOut�
  //NOTICE THAT WE ARE COUNTING DOWN in our for loop
  //This means that %00000001 or "1" will go through such
  //that it will be pin Q0 that lights.
  for (i=7; i>=0; i--)  {
    digitalWrite(myClockPin, 0);

    //if the value passed to myDataOut and a bitmask result
    // true then... so if we are at i=6 and our value is
    // %11010100 it would the code compares it to %01000000
    // and proceeds to set pinState to 1.
    if ( myDataOut & (1<<i) ) {
      pinState= 1;
    }
    else {
      pinState= 0;
    }

    //Sets the pin to HIGH or LOW depending on pinState
    digitalWrite(myDataPin, pinState);
    //register shifts bits on upstroke of clock pin  
    digitalWrite(myClockPin, 1);
    //zero the data pin after shift to prevent bleed through
    digitalWrite(myDataPin, 0);
  }

  //stop shifting
  digitalWrite(myClockPin, 0);
}


« Last Edit: May 15, 2011, 02:42:02 am by Khalid » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi there! It is too bad that you abandoned this! I was about to suggest getting a BRIGHT backlight for the waterfall, possibly combined with food coloring as others suggested.  This gives you a large amount of CONTRAST between the water and whatever is the 'background'... this is what makes an image great is the contrast.

Also once you get your light all setup, try testing it at night... wow that would be COOL!

I am interested in looking at your software code, although I need to brush up on my VB.  The main reason I want to look at the SW code is I am doing a similar project using LED's.  I want to make something similar to this:

http://www.poiplay.com/index.html

http://www.poiplay.com/vid_fnf2008_cam1_670.html

If you think about it the concept is nearly identical to yours except using LED instead of solenoids... in fact it's the same as your "Test" apparatus with LED... except mine will be miniaturized in order to fit in something more portable.  

Thanks for your thread, it was very interesting/entertaining.  I wish you luck with future endeavors!
« Last Edit: May 16, 2011, 12:16:48 pm by stevethatsmyname » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, I think you have done two mistakes, first you have not placed solenoids on the same level ! and the second is that you have redirected water from solenoids with long pipes, the plastic valves distort the image. remove the pipes after solenoids and place the solenoids on single line !
« Last Edit: September 18, 2012, 02:21:12 am by aliali2012 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

where i can get this awesome software ?
Logged

Offline Offline
Full Member
***
Karma: 5
Posts: 194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very interesting project!

I'd agree with the assessment that the long thin hoses right at the outlet of the solenoid valves absolutely kill the whole idea. What you are trying to achieve with the hopefully very fast solenoid valves is essentially a pulse width modulated signal. The hoses work like a capacitor of sorts, filtering your nice clean signal edges.

Once you've done that it may still not work as you may need more height than a door to form a pattern.

Also a dark background and some back lighting ore better strong side lighting (perhaps recessed in the door frames) would make these water lines more visible.
Logged


Offline Offline
God Member
*****
Karma: 10
Posts: 863
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a couple of LED's shining down would bring it to life! (white, green, blue namely)
Logged

Anaheim CA.
Offline Offline
Edison Member
*
Karma: 31
Posts: 2305
Experienced old Whitebeard with a Full head of Hair...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think that is one of the Most interesting things I have ever seen attempted. To get so very Close too..

Bob
Logged

“The solution of every problem is another problem.” -Johann Wolfgang von Goethe

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

I am partially done with a sort of similar project, though my solution was simpler (though at this point, it's the solution that is the problem....)

What I did was essentially a POV wand, a row of LED's.. The led's are 395nm UV LED's.   The row of LED's is then faced at a flowing drip trough which I was channeling glow in dark paint through.. Just channels cut into the side of trough.  Glow paint responds very intensely to UV, so what you have is a falling liquid light curtain, pulsing te LED's allows you to "print" via the falling glowing liquid.   I had to shelve it as I have been busy and had run into the issue of the material itself being abrasive and prone to clogging.  I was chatting with a wholesaler about various pigments they sell directly, but still haven't gotten back to the project.  Money and time... The UV POV wand is standard stuff, shiftout and you are good to go.

I had made a phosphor screen with glow paint and window glass for a slow scan tv project that never happened.. The wand works very well on that.

Anyway, when I do return to the project, it's the abrasive nature of the glow particles, which also quickly settle out of most suspensions, which becomes the problem.  I know you can buy glow in the dark cordage and cloth, so I may build a simple belt on a roller setup which would obviate the materials issues but also drop the coolness factor quite a lot.
« Last Edit: November 23, 2012, 12:22:51 pm by focalist » Logged

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

Valencia, Spain
Offline Offline
Edison Member
*
Karma: 65
Posts: 2232
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi there! It is too bad that you abandoned this! I was about to suggest getting a BRIGHT backlight for the waterfall, possibly combined with food coloring as others suggested.  This gives you a large amount of CONTRAST between the water and whatever is the 'background'... this is what makes an image great is the contrast.

Also once you get your light all setup, try testing it at night... wow that would be COOL!

Get some fluorescein and lots of UV LEDs:   http://www.ebay.com/itm/310503714340

Logged

Europe
Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

how can you efficiently color the water???
Logged

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