Wednesday, September 02, 2009

Programming Your Arduino for Household Jobs



It's been a while since I've had anything to say that wasn't work-related or covered by the other blog, but I can break radio silence after nearly a year to say that outside of those two areas of interest there's fresh news on the tinkering front.

If you haven't come across the Arduino website already, you can get a good idea about what this open-source hardware and software platform can do for you by watching a brief news item on the BBC website.

I came to the website via a roundabout route ... I've been re-reading Peter Morville's musings in Ambient Findability on how the internet is extending its reach from screens and keyboards to physical computing (things we can touch and interact with that aren't conventional PCs). He has an arresting photo illustration of a chorded input device called the Twiddler on page 69, which if you aren't familiar with it, is a kind of keyboard you hold in one hand to enter text. Seeing the illustration reminded me of Doug Englebart's original demo video of the mouse and bitmapped screen - probably the greatest demonstration ever staged on interactive computing in terms of breaking new ground - Doug of course used a chorded input device in his left hand, and mouse in his right, to avoid that annoying stop-typing-and-reach-for-the-pointing-device moment. Anyway, the point is that the Twiddler - like nearly all other non-keyboard based input devices - is sadly defunct. It doesn't sell because (I believe) it doesn't offer what interaction designers call "affordances", the visual clues that help a novice user to understand how to enter text with it, and how to interact with it. So unlike an iPod or an iPhone, a Twiddler wannabe user picks one up,clicks a button or two, and lays it down again, wrinkling her nose. Bear with me...

So having found that I can't buy one, I wondered if I could make one. I don't have a background in electronics, but I've found out how I can make one, and damned cheap, after a rapid look at the Arduino website and a quick assessment of Arduino take-up using Google Trends. After about twenty minutes on the Arduino site, I could see that this looked like an ideal modular environment for the beginner, so I ordered an Arduino board from Tinker.it. It came just before we left on holiday, but Amazon fortunately delivered Tom Igoe's "Making Things Talk" and Massimo Banzi's excellent "Getting Started with Arduino, 1st Edition" before we left for Cornwall, so at least I could read up on the subject before getting my hands dirty.

Noodling around the Tinker.it site looking for components introduced me to some of the demos they've recently done, including one in the Kings Place office in London of the Guardian, two floors below ours, but that's another story... it also told me that they'd be doing a one-day workshop at DConstruct09 in Brighton today, and that's where I've been, to learn not just about programming the Arduino, but also about connecting it together with zigBee (a short-range mesh radio chip), RFIF readers, and a tiny Ethernet shield that sits on top of the board to provide a TCP/IP stack. Not only were the tutorials by Nick, Daniel, and Matt from Tinker.it exceptionally well done, but we were also given a big bag of these goodies to experiment with at home.

So how, then, does this address the title of the post? Well, dear reader, now I know how to get my thirsty plant to plead for water by posting to Twitter, and how to cannibalise the trigger of a nail gun so that I can fire it with the webserver running on the Arduino board, a host of home innovations will surely follow... Lucia, if you are reading this in Perth WA, would you be willing to have your weeping fig plant (currently parched and resident in our bathroom) dial you up at odd times of the day and night for sympathy, like I used to do periodically?