Here is a Blinky Box made for my 17 month old son. It a modified version of Miria Grunick’s awesome work.
With this version, I used a WS2812B LED strip (which has 30 LED’s) driven by Adafruit’s Neopixel library. I had to use the PinChangeInt library to enable pin change interrupts on the Arduino’s signal pins. I am using an Arduino Nano which plugs into a bit of perf board which has the connections to the buttons, rotary encoder and power supply all on it.
The power is supplied via a power bank I had laying around who capacity is no where near is rated capacity! I cut a slot in one end of the case so you can plug in a micro USB power source to charge the batteries. The switch above the slot is a latching switch which connects/disconnects the batteries from the powerbank’s PCB. The problem I came across is that there is a microswitch under the powerbank PCB which is needed to turn on the powerbank. Using the latching switch to connect the batteries was not enough to actually turn on the powerbank, it does not detect that a load is connected and automatically switch on. So I had to add a momentary switch to turn on the powerbank. Startup procedure is push in the latching switch and then press the momentary switch and then you are good to go!
The power bank and LED strip are messily hot glued in place, the glue keeps them in place, but can also be removed if things need to be changed.
Arduino code can be downloaded here.
Update: A fellow electronics user tried to compile the code with the newer Arduino software (1.6.x) and found it came up with errors and does not compile. I had a look back and when I complied the code, I was using the 1.0.x versions. So to compile the code you will need to use the older 1.0.x version of the Arduino software. Thanks Colin for bringing it to my attention. You can see Colin’s version at http://www.instructables.com/id/Blinkybox/
Many thanks to Miria Grunick for the design and code:
Thanks to Doug for brightness of the rainbow colours and the disco variation!