My desktop computer setup has no volume buttons whatsoever. This is a real problem that needs to be solved. But often things don’t get done without deadlines. I only have two hours til a respectable bed time. To make this more fun, I will write updates as they happen without post-editing. Let’s get started:

Research

X:33 – I have a nice potentiometer from Sparkfun that should work well. That with an Arduino would be a nice MVP. Software?

X:42 – NirCmd is a good starting point

X:45 – Looks like pulling data in from the Arduino over a COM port and reading it in a Batch script will work. That’s good enough for me.

Decide

X:49 – Analog pin on an Arduino will read voltage across a potentiometer. Arduino will scale that level up to whatever NirCmd likes to see, then constantly send out that level. A Batch script will run on my PC watching that COM port for a change in the value. When it reads a new value it will set the audio level appropriately

Do

Y:14 – Resistor Divider and Arduino analog input values I should expect to see. Resistor Divideer

 

Y:29 – Lost my friendly book of common resistor values. A minor panic ensued. Fortunately my junk bin had plenty of resistors. Hardware is ready to go.

Arduino and Potentiometer

Y:45 – Arduino code done

2-Hours Up!

Z:38 – Well, I didn’t make the 2-hour deadline. The last hour was spent unsuccessfully fumbling around a Batch script trying to read my COM port. I’m going to check out powershell and give myself some extra time.

1st Overtime

A:05 – PowerShell made it no problem. I now have a working butter-smooth volume knob! Yes it is ugly, but the only criteria was functionality. Plus, I might need another 2-hour project sometime soon.

 

2015.06.29 PowerShell

 

My original plan worked out pretty well, with the exception of trying to read a COM port in a Batch script. This was a pretty straightforward and forgiving project to attempt in 2 hours. But it is exactly the kind of project that wouldn’t get done without this kind of push.

After putting a piezo-neopixel circuit inside drums, juggling balls seemed like a natural next step. With 3D printed juggling balls and some electronics from Adafruit (most notably the 5V Trinket and more Neopixels) the circuit was soldered up and smashed into a translucent plastic ball.

I used “transparent” ABS plastic from Hatchbox to print off a model juggling ball that screws together. After some basic acetone vapor smoothing the end result was decent. There is a lot more that will be done with this in the future, securing the electronics inside the ball, replacing the piezo with an accelerometer, making a custom PCB etc.. But for a proof-of-concept its functional and fun.

3D Model: http://www.thingiverse.com/thing:290450

Transparent ABS Plastic: http://www.amazon.com/HATCHBOX-Transparent-3D-Printer-Filament/dp/B00M0CS3B4/ref=pd_sim_indust_12?ie=UTF8&refRID=07FJ58K41EX2NENE01WF

Much more polished version by someone else: http://jonathanjamieson.com/2014/04/25/smart-balls/

See it in action

See the insides!

How do you know it's a mail plane?

Assembled Parts

It's a bit cramped

It’s a bit cramped

The unfurled electronics.

The unfurled electronics.

In hindsight some thruhole neopixels and stranded wire would have done wonders, but the end result would still be a reactive juggling ball. On to rev 2!

Adafruits NeoPixels are awesome, the Arduino of LEDs. There are a couple tutorials on sound reactive LEDs with the NeoPixels, including one on Adafruit about making a drum set light up when you hit it. The video makes it look like it works, but look carefully and you’ll see other drums lighting up when a different drum is being played. That’s because they’re using microphones which are way too sensitive for a intra-drum set environment. To eliminate the cross talk, replace the mic with a piezo element and read the voltage spikes generated by force of the drum hits.

 

See it real life!

 See it in schematic!

(coming soon)

See it in code!