3D RGB Visualizer
The visualizer will be constructed using a matrix of 8x8x8 individually-addressable RGB LEDs. It will be controlled by an Arduino Nano and powered by a 5V 20A power supply. The purpose of the visualizer is to take a variety of inputs and generate a colorful 3D visualization for those inputs. The majority of this will be programmed in Arduino C by us, using the FastLED library. Here are some of the features we will try to implement:
- A music visualizer: Given an audio file, the LED matrix will create waves that sync with the music.
- A 3D visualizer: Given a 3D object file, the LED matrix will try to display that object to the best of its ability with 8px resolution.
- A weather visualizer: The visualizer will generate a sky that represents the current weather. For example, a rain animation on rainy days, a lighting animation during thunderstorms, etc.
- A number of animations and presets, including a disco ball, infinite terrain generation (Minecraft chunk loading style) using perlin/simplex noise, and others we haven’t come up with yet!
While both of us (mostly me) have general programming experience and experience using Arduino C, constructing a circuit of this complexity is new to both of us. There are a number of tutorials we found on YouTube, and we plan on using information from all of them in order to build our design.
Our visualizer is based around individually-addressable RGB LEDs. This means that multiple LEDs can be chained together and controlled individually using a single signal, which reduces the complexity of the design significantly. Still, the individual RGBs have to be soldered together, which is why we included a soldering kit. Neither of us had experience with soldering before, even though this project relies on it heavily. We’re both very eager to be introduced to soldering through this project, and we both hope we can figure it out relatively quick! Apart from soldering the leads of the RGB LEDs together to make the 8x8x8 matrix, the Arduino Nano, power supply jack, potentiometer, and power supply jack will also be soldered to the breadboard in some way or another. The chosen Arduino comes with headers to aid in this purpose. The final stage is adding a case for the design! I have an Autodesk Fusion 360 subscription through my school, but we have no way to actually 3D print the case.
We know that designing the case will likely take multiple iterations and a lot of time, so we considered sending our 3D models to a company to have them printed out and shipped to us. The problem with this, however, is that this model of developing a case, testing it out, designing a new one, sending it to a company, getting it shipped back to us, and testing the new one out is a very slow process and not very conducive to rapid prototyping. First of all, we won’t be able to predict the costs upfront, which was a requirement to recieve the grant. Secondly, we’d have to pay shipping and wait for the new case to arrive every time we made a design. We decided that if we went with that, we probably wouldn’t be able to finish within 10 days. Instead, because it was in our combined budget, we opted for buying a 3D printer and filament instead. It may take some time to assemble, but it will save a lot of time in developing cases.