The Math

A project log for Display Squared

A display that puts on a display. Images are created using colored water that's precisely jetted through the air into a 100 x 56 pixel grid

zachfrewzachfrew 06/11/2021 at 02:090 Comments

Let's start with the display grid itself. It's going to be a 100 x 56 pixel grid with a width of 400mm. The first question to ask is: at what speed does the fluid have to exit the nozzle to reach the furthest extent of the grid? I.e, what velocity is required to jet the fluid a distance of 400mm? This is a classical physics problem, and it's one of the first problems you'll encounter in a Physics 1 course. It's so classical in fact, that I felt no desire to revisit my High School years and instead plugged the values into an online solver (boring, I know). To solve for velocity I need the launch angle and horizontal distance. 

This is the naïve version of projectile motion. In reality there are other factors that will affect the velocity including drag and air resistance. For our purposes, I just want to prove that the concept is possible so ballpark figures will be close enough. Using the projectile motion calculator I learn that the velocity needed to jet the fluid 420mm is 2.029m/s. Why 420mm and not 400mm? Beyond my own childishness, I chose to offset the display grid 20mm so that the 1st pixel is 20mm away from the nozzle as opposed to 0mm away. At 0mm away, the velocity to get to the 1st pixel would be... 0m/s which presents an issue because the fluid is much more likely to stick to the nozzle instead of nicely falling into the 1st pixel.

What about the velocity needed to get to pixel 99? What about pixel 1? Those values are below. 

Pixel 100: 2.029m/s

Pixel 99: 2.017m/s

Pixel 1: 0.443m/s

Here we see that I have a velocity difference of about 0.012m/s between adjacent pixels. Realistically, I would want to be able to control the fluid velocity at intervals of 0.006m/s to make sure that I hit the correct pixel each time. That is a small value, but it's not an absurdly small value. 

The next question to ask is: What fluid pressure is required to achieve a velocity of 2.029m/s or 2.017m/s or 0.443m/s. For that, we're going to use Bernoulli's equation which relates the pressure of a fluid, it's kinetic energy, and it's potential energy. To solve Bernoulli's equation I need: fluid pressure after it exits the nozzle, fluid density, gravitational acceleration, the initial height of the fluid, and the final height of the fluid. The values after solving Bernoulli's equation are below. 

Pixel 100 : 103,377 Pascals

Pixel 99: 103,355 Pascals

Pixel 1: 101,422 Pascals

This is where I started to get concerned. Varying the pressure of water by approximately 20 Pascals is a tough problem indeed (0.003PSI for reference). This is the sort of problem I wouldn't encounter if I was dealing with larger volumes of water and larger distances. Even measuring the pressure of a fluid that accurately is expensive. Omega brand pressure sensors with that sort of accuracy will run you in the ballpark of $500 for the transducer alone!

This is where the fun engineering begins. Instead of measuring pressure directly, what if I extrapolated it some other way? Pascal's Law states that the Pressure of a fluid is equal to its Density * Acceleration due to Gravity * Depth. That means that with the fluid Pressure, Density, and Acceleration due to Gravity all of which are known, I can extrapolate Pressure. Pascal's principle has some strange implications. For example: the pressure of a fluid at the bottom of a theoretical 100m long straw is identical to the pressure at the bottom of 100m lake. This is a great video on the topic: 

Using Pascal's law, I can vary the height of a fluid and extrapolate the pressure as a result. For example, I know that at a height of 0.21m, the hydrostatic pressure at the bottom is 103,378Pa. I know that at height 0.208m, the fluid pressure at the bottom is 103,358Pa. Remember from earlier, I need to be able to vary the pressure by 20Pa to make this work and hit the correct pixel. Based on the numbers above, it looks like I need to vary the height of the fluid by 0.002m to achieve that. 

This introduces a new problem. How do I measure the height of a fluid accurately enough over a large range. Well, I can extrapolate that as well. As the fluid's height increases, so too will it's weight. If I know the diameter of the cylinder containing the fluid as well as the density of the fluid, I can extrapolate the height of the fluid in the container from its weight. If I make the diameter of the container larger, the weight of the fluid will increase even more for a given height. If I make the diameter of my cylinder 50mm, a change in fluid height of 0.002m will correspond with a weight difference of about 4grams. Now we're back to sensical units. A 4 gram change in weight is easily measured by the cheapest of load cells. 

That was a lot of math and extrapolation. In summary, here's how I'm going to very precisely control the output pressure of a fluid with cheap and accessible components. 

1. Drip fluid into a tall cylinder using a peristaltic pump

2. Extrapolate the height of the fluid in the cylinder by measuring its mass

3. Extrapolate the pressure of the fluid at the exit nozzle using Pascal's law

Like I said, I think all this napkin math works out, but now I've actually got to build the thing. Hopefully in the next day or two, I'll have CAD finished that will give you a more visual sense of how this is all going to work.