Inspiration
We are fascinated with displaying anything via a cool medium. While 2D screens are the norm, we wanted to break the "flatness" barrier. Hence, we wanted to create a a volumetric display that could show anything we wanted, including renders and other use cases.
What it does
The 64x64 LED matrix can refresh up to 9600fps; as such, spinning the LED matrix at a high enough RPM can simulate a 3D floating hologram by displaying a different image at each angle it spins through, using persistence of vision and human sight perception rate; since the human eye retains an image for a fraction of a second, spinning the screen fast enough allows us to "paint" light in a 360-degree cylindrical space. The result is a floating, 3D holographic render that exists in physical space rather than on a flat pane of glass.
How we built it
We built the main chassis by creating a frame out of wood. We then created the mounts for the LED matrix with additional brackets for mounting our microcontrollers. A Raspberry Pi 5 was used to write to the screen, while an Arduino was used to spin the motor. The motor is embedded in the chassis with a custom ball bearing system to emulate a slip ring.
Challenges we ran into
A little too many challenges for my liking, but...
We have a part that bears all load when the display is spinning. This obviously puts a lot of strain on it and usually this part ends up being broken due to this. Furthermore, the print times for a project this large are not feasible for a 24 hour hackathon. That is why we ended up using wood to create the chassis. This also posed issues as this would was prone to splitting very easily.
We did NOT have a slip ring. With rotating parts at such a high speed, this is just necessary, and without a slip ring rated for a high enough RPM, we had to make several workarounds, including making a custom similar mount using the available wood and ball bearing supply.
The power supply wasn't consistent enough for the Pi 5-- when peripherals started up or the Pi began running the voltage dropped and crashed the microcontroller-- to solve this, we attached two large capacitors to ensure a relatively consistent voltage. This still wasn't perfect, as it was still prone to crashing.
Screen speed writing is pretty low. We solved this with a library that could update at extremely fast speeds, but we still had to read in voxel-based data flattened to a 2D view each update which capped our rate at around 1200fps. All the data is precomputed via a Python program, with angles mapped to 2D slices that the C program simply has to read in.
Accomplishments that we're proud of
We are proud of the fact that we stuck with this idea and ran with it til the end.
What we learned
We learned that "spinning electronics" is an entirely different beast than "stationary electronics." Centripetal force changes everything from wire routing to component mounting. Also, we learned how to manipulate framebuffers at speeds we didn't think were possible on a microcontroller. The LED screen refresh rate is absolutely ridiculous.
What's next for super amazing cool volumetric display!
We should reconstruct the chassis using something better than wood, and fix the balance by using two screens instead of one.
Log in or sign up for Devpost to join the conversation.