Levitation Audio Visualizer Progress Update

This past week I have continued to make a good amount of progression the levitation audio visualizer. Up until this point, I had been focusing on the electronics and software required to filter audio, read the ball distance, and control the ping pong ball height. This week I switched to the mechanical side, and put my attention towards the packaging. Using SolidWorks, I designed a base housing and top housing that cap either end of the columns. All of the pieces will be made using laser cut acrylic, and have been designed with dove tails so the can be easily glued together. I wanted to make every piece fastened in place (no glue), so the parts wouldn’t be modified for the project. This required figuring out the physical dimensions of all the power supply, the fans, range finders, PCBs, and how the cable routing would work. I also wanted access panels, so that I could remove the covers and show off the internal hardware at the Design Expo. This ended up being a little more challenging than I anticipated.

Before laser cutting the final design, I wanted to make sure that some of the critical components would fit. Using some scrap pieces of acrylics, I tested all of the clearances that I was concerned about, and I have adjusted the model accordingly. I plan to laser cut and assembly the entire packaging at the end of this week. Unfortunately, I forgot to take some screenshot of the design, and I don’t have SW on my personal computer. I will add those as soon as a get a chance, so check back soon!

On the electronics side, I also got my ultra sonic range finders up and running, and tried to emulate the ping pong ball hovering with a PID loop that I was able to get with the IR range finder. For convenience, I made a really long cable run so I could work with the piece on my desk while having the sensor on the top. After a few frustrating days, I finally figured out that the issues I was having with the sensor was due to the cable being too long. The sensors work by triggering a pulse, listening to the echo, and calculating the distance from the time between the return. At first I thought this might hinder my project unfeasible, but I have since resolved the issue. I am still having issues with tuning the Kp, Ki and Kd PID constants, so I am hoping that I can figure it out in the next week. If any math/controls wizards know how to do this, and are willing to teach me, I would be forever grateful. My contingency plan, in the event that I can’t get the closed loop levitation needed to correspond to audio, is to “hard-code” some interesting patterns with the ping pong ball. This would fall short of my initial project goal, but would still be a really cool visual piece (and I could get the constants tuned when I have more time to explore during the Summer).


Previous Post
Progress 4/6
Next Post
Infinity Clock Update

2 Comments. Leave new

  • Chip Bollendonk
    May 4, 2016 12:12 pm

    After seeing this project at the expo, it is really interesting to look back and see what some of your design constraints and challenges were. Did you follow any sort of templates for the box design? These aren’t inherently that complex, but doing a nice job (like you did) definitely requires pretty detailed planning and a good model before you start cutting.

    I’m also wondering about the rangefinders that you are using. Do you know what the response time of your system is? That may play into issues with a control system.

  • Samantha Maierhofer
    April 7, 2016 9:36 am

    Sounds like you are making some good progress and I am glad that you figured out what was going on with the range finders. Now if you could just figure out the controls issue. When you are working with the controls are you trying to run all the tubes at the same time or just one? If you aren’t testing on a singular tube, you might want to consider that just to see if you can get it to work… Also does a singular arduino have enough processing power to do all of this?


Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.