Saturday, January 24, 2009

Tinker.it Toy Hacking Workshop

I'm in the depths of central London for this years Tinker.it Toy Hacking Workshop.


Toy Hacking Lab from Matt Biddulph.

The pictures from last years workshop make this look like a fun event, and I'm looking forward to getting my soldering iron out and playing with toys. Both the grown-up and not-so-grown-up kinds.

Judiciously plundering my pile of junk at home I came up with a RC controlled micro-helicopter, an old Nokia 6100, a rather ancient USB web camera, a Bluetooth GPS module and an LED torch. Adding a couple of Arduinos, a LV-MaxSonar-EZ1 range finder and a 16×2 serial LCD panel to the pile I threw everything into a box, hoping they might come in useful. But no, I have no idea what I want to build. Hopefully I'll come up with something during the course of the weekend...

Update (24/Jan): We spent the the first day of the workshop playing around with radio controllers and some simple toys, and formulating our nefarious plans for world domination...

Posted on Flickr by aallan.
Hacking radio-controlled bumper cars...

...and you only had to look at evil Harmony Bear and Bubbles the Dog to know that our twisted minds were working at a feverish pace.

Update (25/Jan): Sunday was project day and I'd already decided I wanted to hack the radio-controlled micro-helicopter I'd brought with me...

My original plan was to hook the controller unit into an Arduino and try and control the copter from the command line. But Chris Loxton, the man behind evil Harmony Bear, had brought a Wii Nunchuk controller with him, so in the end I had a better plan. I hooked the Nunchuk up to the Arduino, making use of Tod Kurt's nunchuck_funcs.h library code, and then the Arduino in turn to the helicopters controller unit.

Posted on Flickr by aallan.
The hacked helicopter and Wii nunchuck controller

After hacking some code out the helicopter was, at least in theory, going to be controllable using the Nunchuk's 3-axis accelerometer.

The controller for the helicopter was fairly interesting, with the power and direction controls turning out to be digital rather than analog. Presumably to save money the rotor power control was digitally encoded into four bits using multiple contacts on the control lever, removing the need to provide any analog-to-digital circuitry, and as it happens simplifying the hack enormously.

By the end of the day, sure enough, I had actually successfully managed to get fairly rough control over the helicopter and I was pretty pleased with myself...

If I get another free weekend, I think I can move this hack forward quite a long way. Removing the excess foam from the helicopter itself will probably save enough weight to allow me to attach an accelerometer and an XBee module directly onto the helicopter. The data from the accelerometer can then be transmitted via the XBee to an XBee enabled Arduino which is also hooked to the hacked radio controller so that it can send commands back to the micro-helicopter, closing the control loop. Effectively I should be able to build a self-stabilising helicopter. Unless I'm explicitly sending a command to move the micro-copter, it should just hove in place, correcting any random movements cause by trim or other nagging problems like drafts and air-conditioning.

Monday, January 19, 2009

New for the iPhone, Cloud Status

Paul Graham, one of my favourite dispensers of wisdom, argues that the arrival of web based software has changed not just the user experience, but the developer experience as well.
One of the most important changes in this new world is the way you do releases. In the desktop software business, doing a release is a huge trauma, in which the whole company sweats and strains to push out a single, giant piece of code. Obvious comparisons suggest themselves, both to the process and the resulting product. - "The Other Road Ahead", Paul Graham

Which is exactly right. Working in the cloud you rarely make a software release in the old sense of the word. Despite the benefits I must admit I actually somewhat miss the "big push" where, usually with a great deal of trepidation, you roll out a new improved version of a piece of software.

So it's with a certain sense of nostalgia, about the days before web applications started killing off the desktop, that I'd like to announce the release of my first iPhone application onto the App Store...


Cloud Status for the iPhone 3G and iPod touch.

Cloud computing makes it easy to build applications that run reliably, even under heavy loads. However as a developer you need to know if and when the cloud, and hence your application, is having problems.

Cloud Status allows you to monitor the status of Google App Engine, Amazon Web Services and Twitter in real time. When they know they have problems, you are the next to know.