We've started a blog about programming devices in the home.
Scratchable Devices is a research project at Rutgers University that is enabling end-users ("average people", if you will) to use the graphical programming language Scratch to program household devices, such as coffee makers, lamps, and alarm clocks. Our demo video explains the basics of our project:
Our group is both designing a programming paradigm for end-user programming of household devices and actually building appliances that can be programmed wirelessly. Scratchable Devices enable the average person to program complicated scheduling and repetition, rich interaction between devices, and logical decision making. With an easy to use programming language, mind-numbing tasks such as pressing the "minute" button on an alarm clock 50 times in a row would be eliminated. The need to learn a different, complicated interface for each new electronic device would also be a thing of the past.
The average person can write short, simple programs in the Scratch language to add new features to their devices. Have you ever wished that all of your lights could be turned on and off with a "clap" or other loud sound? Just write the following program, which will be wirelessly transmitted to one of your lights:
Have you ever wished your alarm clock were just a little bit more forceful when trying to wake you up? You could program your devices, such as a fan, to turn on when another device asks them to:
Now, you can program your alarm clock to assault you with a fans and flashing lights:
We have already built "Scratchable" lamps, alarm clocks, fans, and coffee makers, as shown below, with many more devices in the works. We use Arduino microcontrollers, XBee wireless modules, the Processing language, and the BYOB variant of scratch, as explained in our tutorials.