Saturday, October 13, 2012

Arduino Project: The Conference Panel

This year, I attended Nerdtacular in person, and the NSFW show at DragonCon via live stream.
These events had audience voting in the form of sound. I remembered when I was a kid, on TV they would often put a camera on a VU (Volume Unit) meter to show just how loud the audience was.

I think they quit doing that for a number of reasons:

VU Meter
"VU Meter" by Iain Fergusson
  • Most of the time, the meter just pegged so no difference was detected
  • Big hassle for the sound guy to set up another microphone and mixer send
  • People closer to the microphone would have a bigger "vote"
  • Black needle on a white face not very telegenic
  • As we moved to digital technologies, an analog VU meter looked old-fashioned
But some sort of SPL (Sound Pressure Level) meter would still be handy for these events.
I've also been looking for a project to learn more about Arduino.
So I sketched out the initial design for The Conference Panel.
If the project works, it would be used at these conferences to simplify some of the show mechanics.

Design goals:

Basic Features:

  • Big and bright enough to be seen by the audience in a hotel conference room
  • Small enough to sit on a panel discussion table or hang from a lectern
  • Light enough to hang from a booth wall if needed
  • Durable and shippable
  • Single power cord (and optionally battery powered)
  • Based on regular Arduino Uno

VU Meter Features

  • Built-in microphone
  • Fast VU meter display
  • Self-calibrating SPL meter

Game Show Features

  • Buzz In mode with lockout
  • Answer clock
  • Simple show host controls
  • Sound effects
  • Wheel of fortune spinner and other random generators

Party Features

  • Beer resistant
  • Music-synched light display

Home Features

  • Webcam light panel with color temperature control
  • Deco lamp mode

The Design

I'm treating this like a software project. I want to create a Minimal Viable Product at each stage and iterate over the design.

Physically, I think the final project will be built on a gatorboard back and interior panel with a plexiglass front and a corrugated plastic perimeter. There will be a base where a "ribbon board" display could eventually be attached to the front and which would serve as storage for the cables and buttons.

There are a number of unknown factors that need to be defined for this project to work:
  • Can an Arduino drive enough LEDs fast enough to create a clear display?
  • How hard will it be to code?
  • Given the presumably fast sampling rate, can we slow or average the values into something can be meaningfully displayed?
  • What material should be used for the front face?
  • Is an Arduino fast enough to sample the audio and drive the display at the same time?

Phase 1

  • Get some addressable lights
  • Lay them out in a radial fashion
  • Write some code to display a VU-style meter.

Phase 1 Goals

  • Learn the basics of Arduino programming
  • See if addressable RBG LEDs are fast enough to perform the task.
I picked up a strand of Adafruit's Diffused Flat Digital RGB LED Pixels. There are 25 bright "pixels" per strand which are individually addressable via a simple serial protocol.

Then I created a layout that would place the 25 pixels on a big "dial" without cutting the strand.
The blue "pixels" aren't used in the display. But by leaving them connected, I don't need to cut and solder my strand.
To test this layout in the real world, I just eyeballed the layout and taped the strand to a box.

So far, so good!
In Part 2, I'll work on the mechanics of the light and try techniques for creating a clearer display.

No comments:

Post a Comment

Please leave your comment here.