Anyone who has ever hacked around in their PC will have been hit with an urge to take their tinkering to the next level and create a custom-built device, but few actually try - believing such things to be far too complicated. At least, until the Arduino appeared on the scene.
Originally developed in Italy in 2005 as a tool for students building interactive design projects, the Arduino is a microcontroller-based prototyping board - but one that pretty much removes the barriers to entry that previous electronic prototyping systems had.
The idea behind the Arduino is simple: to create a system that allows electronic circuits to be created, modified, and tested in minutes - complete with a programmable chip in the centre to take control of everything.
The Arduino Duemilanove prototyping platform
It's a design strategy that has proven successful: after receiving an honorary mention in the Digital Communities category at the Prix Ars Electronica in 2006, interest in the Arduino project exploded - with an estimated 120,000 boards having shipped as of February this year.
The project takes its cues from the open source movement: as well as a programming language and integrated development environment which is available on an open source licence, the hardware itself is open - anyone is free to create their own Arduino using the original designs, although the team asks that the many clones available use a different name to differentiate themselves from the 'official' boards.
Unlike other prototyping systems, the Arduino is designed to be easy to pick up and use - and it really is, with a single USB connection providing power and data connectivity to a host PC. Hook the device up, upload your program, and you're done - and you can even disconnect the Arduino from the PC and hook it up to a battery and have your code running as a stand-alone device.
The Processing-based IDE makes writing code easy
Speaking of programs, a word about the development environment: written in Java, the IDE for Arduino is made to be as friendly to a newcomer as possible. Based on the IDE written for the Processing project, it features everything you need to get started writing for the Arduino - including a single-click upload option which takes your program and puts it in the ATmega chip.
The language used for these programs is, basically, C - but in order keep the user-friendliness levels up, the Arduino project includes a library called Wiring which takes all the complexity away and leaves you using simple commands to make your devices tick, even if you have no prior programming experience.