In my Embedded Systems Design class, we were required to create a final project of our choosing which demonstrated our understanding of the course concepts. My partner and I decided to create an Audio Visualizer for our final project. The idea was to display the audio spectrum in real-time (calculated with an FFT) on an LED Matrix.
Ill give a brief summary of the project here, but much more detail, and the full code, can be found in our final report:
We decided to use this 8x8 LED Matrix from Sparkfun electronics. We also acquired some free samples of Maxim's MAX7219 LED Display driver to drive the display. The MAX7219 allows you to control an 8x8 LED Matrix using only a SPI bus to communicate which LEDs should be on or off.
The FFT was calculated with Freescale's MC9HCS12C128 microprocessor. We realize that this was sort of an unusual choice, since its not specialized for Digital Signal Processing (DSP), but it its the processor we used throughout the quarter in this course, and we had become quite familiar with it. We used a fixed-point FFT library which we found here (we used fix_fft, the first entry).
This library was originally written by Tom Roberts, with contributions from Malcolm Slaney and Dimitrios P. Bouras. We made a few modifications to it so that it will work on our processor; they are highlighted in our final report.
The last major component of the project was a simple amplifier for the audio signal. Our Processor's ADC is configured to read voltages from 0 to 5 volts, so we had to create a simple op-amp level shifter and amplifier to ensure the signal stays in that range. A schematic of all of our hardware, which includes the op-amp circuit, can be found below.
I took a few videos of the project, to give you an idea of how it works. The first is when we first got the project working on a breadboard:
The second video shows the final product working: