Designing

Recently me and my wife bought and installed the Philips Hue wireless led bulbs in our house. A Hue bulb can be switched on and off from the wall switch like a regular bulb, but the colour and brightness can be controlled via the Hue smartphone app.

This is great, but for my toddler son this means that he can’t control the lights in his room to the same degree his parents can. I believe kids should feel in control of their personal environment, subject to some rules of course. This is a period in his life where he is being challenged to start doing things for himself and I felt that this was an opportunity to give him some playful and creative control of his room.

Now, the obvious solution is to just teach him to use the family iPad. However I felt that was not an option for these few reasons:

Tactility is important in this stage in his development.

He should not have to go outside his room and the iPad is usually not in there.

He should only control his own lighting, the iPad app controls multiple bulbs in the flat.

Initial Idea

I started experimenting with Arduino boards this summer and had the idea of constructing a remote control for my son to control the bulb in his room. The Arduino platform is a family of open source microcontrollers that make the creation of interactive electronic objects more accessible.

There were some requirements from the start:

* It should be wireless.

* It should allow turning the bulb on and off.

* It should allow a few colours to be applied to the bulb.

* Additionally it would be nice if it had some way of controlling the brightness.

Going forward

During implementation the idea developed further.

I had initially wanted the controller to include a joystick to control brightness or some aspect of the colours. This sounded cool but after buying the joystick and giving it some thought I realized it added complexity to the interface without adding enough value to justify it.

The initial idea was that the user would press a coloured button and the colour would be applied to the bulb. When implementing the buttons and the controller, I was faced with what would happen if the user press more than one button at the same time. It seemed rather obvious that the system should blend those colours together and the resulting colour be applied to the bulb. Pressing yellow and red buttons would yield orange.

Another tweak to was to use the on and off buttons to act as modifiers when pressed with other coloured buttons. Pressing red and white buttons would yield pink. Pressing green and black buttons would yield dark-green.