Thursday, May 7, 2015

The Graphic Equalizer Display

The Graphic Equalizer Display is a device that shows the loudness of the music you're playing, broken down by bass, midtones and treble.  It uses a microphone, so any ambient sounds or music will be picked up.  Play the video below to see it in action.



Long ago I picked up a 16x32 LED display from Adafruit.  This thing was amazing, but I didn't know what I would do with it.  When I found this graphic equalizer chip on Sparkfun, I decided to put the two together.  The display uses a microphone, so any sounds or music can be picked up.  Total cost is about $100, but I can put together a bill of materials if there's interest.

This time I wanted to set up a permanent circuit; jumper wires and breadboards were unruly and would not be appropriate for the design I was aiming for.  I wanted everything to be self-contained, so the device could be mounted on my wall or sit atop a speaker.


Above is my prototype setup, connecting the display directly to the Arduino and using a breadboard to prove my circuit.  On the bottom of the breadboard you can see the MSGEQ7 chip straddling the divider and an electret microphone breakout.  On the top is a potentiometer to control the brightness, and a voltage regulator because I only had 9V adaptors.  I had to use a separate power rail between the display and the audio, because one was interfering with the other; the display uses the external regulator while the audio uses the Arduino's internal regulator.

Once the code was working, the result was pretty magical.  My code can be found on a bitbucket repository.



Above and below: circuit diagrams for the prototype shield.  The shield sits atop the arduino and allows you to plug in the display ribbon cable, the voltage regulator, the microphone, the potentiometer and the equalizer chip.

(If you're an EE and you're actually looking at the circuits, you might notice some resistors and capacitors connected in series.  I didn't have all of the right capacitors or resistors on hand, so I had to make due.)





  

Above and below: here is the prototype shield after about 12 hours of soldering.  This is the part I'm most proud of.  I thought everything came together well.

 


To package the thing, I used the plastic box from my first Arduino starter kit.  I think these things can still be found at RadioShack.  I crammed all of the electronics in the box and screwed the screen to one side.

The potentiometer above met its end when I tried to krazy glue it to the box.  Now it's just a resistor.  The MEMS microphone pictured didn't work out for this project; it couldn't pick up lower ranges, so I went with the electret.  The regulator is attached to an aluminium heatsink from RadioShack.


I dremeled openings for USB and VIN, made some room for the ribbon cable, and made openings for the potentiometer and the regulator.  I used some risers to screw in the Arduino.  This was my first project that wouldn't rattle around if you shook it.  The risers were pretty high, making for a tight fit.


Placing the shield on top of the Arduino


Screwing the case to the display


Attaching the ribbon cable


Front view


The heatsink is taped to the top.  It looks stupid but I didn't have a better place for it.


Here you can barely make out the blue pot on the bottom right for brightness control.

All in all this project took about 24 hours of work spread out over two or three weeks.  It was by far the most complex and rewarding I've done so far.  Many parts were frustrating, but the result is great.


Next up, I might include this with a bluetooth speaker.

I got a lot of help from J Skoba's use of the MSGEQ7 and Adafruit's instructions for their 16x32 LED display.

1 comment:

  1. Great! Must follow! Any hope that you might write also about software like clouds and data room reviews ?

    ReplyDelete