Hacking around with hardware and cooking up homemade gadgets...
Arduino? That sounds exotic. Is it a holiday resort on the Italian Riviera?
Well, there is an Italian connection - the founders of Arduino are Italian.
But what exactly is Arduino?
Let me enlighten you... The Arduino project describes itself as an open-source electronics prototyping platform. We'd describe it as a way to build your own gadgets from scratch without a lot of specialist knowledge.
Think of Arduino as the counterweight to Apple. Where Apple offers slick, finished gadgets sealed tight against prying eyes and meddling fingers, Arduino encourages users to get their fingers downright dirty by programming and building their own DIY electronics.
The Arduino project uses simple microcontroller boards called Arduinos: small, cheap, programmable microcomputers aimed at people who want to create their own smart objects - smart in the sense of being able to sense and interact with the world around them through a variety of input and output devices such as sensors, LEDs, microphones and so on.
Awesome, my hobbyist fingers are itching! Tell me more...
Just as open-source software code is released to the community, the team behind the Arduino platform releases the original design files for its hardware under a Creative Commons Attribution Share-Alike licence.
It says it does this to enable people to study and understand the boards, to make changes to them and distribute those changes to other Arduino enthusiasts.
What about the software side? How do I program Arduinos?
The Arduino software, which is also open source, is known as an IDE or integrated development environment, which means it includes all the tools - such as a text editor and compiler - that a would-be Arduino programmer needs to get tinkering.
To program your Arduino board, you'll need a traditional computer onto which you download the relevant Arduino software - there are versions for Linux, Mac OS X and Windows. Then it's a case of plugging the board into your computer, typically via USB, and getting busy inside the IDE. Basically, it's plug and play.
Any Arduino programs - or Sketches, as they're called - that you create can then be compiled and uploaded to the board, where the results will hopefully quickly become evident: a blinking LED, for instance.
Additional electronics components that aren't present on the Arduino board itself can also be connected up to it via Shields - that is, extra boards that plug on top of an Arduino to allow more components to be added, or via solderless breadboards. These components then also become programmable via the Arduino IDE.
But what programming language do I need to know to program Arduinos?
Arduino's programming language is called, eponymously, the...
...Arduino programming language.
The Arduino programming language essentially calls a set of C/C++ functions: your Sketch is converted into a C++ program which is then compiled into machine-readable instructions that the board can understand. All you, the Arduino Sketch writer, need to do is master the basics - which means understanding things like structure, variables and functions. For more on the Arduino programming language, click here.
Additional functionality is provided by Arduino libraries, which provide code for various standard functions such as controlling LCDs, reading and writing to SD cards and controlling servo motors, to name a few.
Can you give me an example of a project where Arduinos are used?
Sure. This Open University PhD project, called MusicJacket, uses Arduinos to capture the motion and posture of the violinist wearing the jacket - and gives feedback to the wearer in the form of vibrations. The student had also designed a more lightweight system using Arduinos mounted on wristbands to monitor and give feedback on violin bowing length.
The Open University also recently revamped its computing and ICT degree to include an Arduino-style device as a teaching aid for students. The so-called SenseBoard is not an actual Arduino but is a similar computing device which plugs into a PC via USB and can be programmed using a basic drag-and-drop language.
So what makes an Arduino an Arduino then?
Arduino refers to a particular brand of DIY electronics boards. There are other open-source electronics prototyping projects, such as Wiring and Processing, which underpin Arduino's efforts in this space. There are also other, older communities of microcontroller hackers, such as those focused on Atmel AVR microcontrollers.
Atmel AVR microcontrollers are actually the same processor found in Ardunios. The difference between the Arduino community and the AVR hacker community is down to approach and philosophy. Ardunio aims to open up electronics hacking to people who might not already have a strong electronics grounding or lots of specialist knowledge in this area. "It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments" runs the pitch on the Arduino website.
Unlike Arduino, unadulterated Atmel AVR hacking is unlikely to appeal to people who do not already have specialist electronics and programming knowledge - since it is not trying to make life easier for the layperson to get tinkering.
So how do I get started? Can I buy an Arduino board, or do I have to build one from scratch?
You can build a board if you're up for it but you certainly don't have to. Beginners are probably better off...
...shelling out for a standard Arduino board, as there's lots of help and tutorials for getting started with them. There's an excellent Arduino beginner's guide here. Also you can get tinkering straight away - rather than having to dig out a soldering iron.
If you're buying an Arduino board, there are several official ones to choose from. Your choice will depend on the kind of project you're planning - be it a kettle that only boils when it isn't watched, a motion-sensing teddy bear, a gizmo that draws pictures on windows or a DIY mousetrap... and so on and on.
Boards vary in size and have different numbers of inputs, outputs, jacks, connectors and components. One of them, the LilyPad Arduino - pictured on the previous page - has been designed for wearable applications, such as this turn signal biking jacket, as it can be sewn on to fabric. Another, the Arduino Fio, has been designed for wireless applications and can be programmed wirelessly over its XBee radio. Here's a list of the current official Arduino boards.
You can also buy non-official boards that can be programmed using the Arduino software - such boards are typically tagged with phrases such as 'for Arduino' or 'Arduino-compatible'. There's a list of Arduino-compatible hardware here.
Bear in mind you're also likely to need additional electronics components - depending on what you're planning to build - such as extra LEDs, resistors, capacitors, transistors, buzzers, tilt sensors and push buttons.
As previously mentioned, solderless breadboards are also often used in conjunction with Arduinos to provide a larger working area for more complex creations.
How much do Arduinos cost? Is this hobby going to get expensive?
You're certainly going to need a bit of spare change to fund your electro-creations. Prices for boards themselves vary, ranging from around £13 for the Arduino Pro Mini right up to £75 for an Arduino Bluetooth board which uses wireless comms to cut the USB umbilical cord.
You can also buy Arduino kits that include the board plus a range of add-on components, such as jumper wires, resistors and LEDs. There's an Arduino Uno starter kit, for around £50.
Still, it's a small price to pay if you've always wanted to make your own smart toys, à la Bladerunner's JF Sebastian.
Yes. In a word: Google. Earlier this year at its I/O developer conference, Google announced its Android Open Accessory initiative enabling developers to create their own hardware accessories, controlled via its Android mobile OS.
The Android Open Accessory Development Kit (ADK) is based on, you guessed it, Arduino.
What might this mean coming down the line? Arduino and Android-based robots perhaps? Or what about an Android-controlled, Arduino-powered pneumatic cannon? Who wouldn't fancy playing in the park with one of those?
One thing's for sure, DIY electronics has a bright future - say hello to the internet of homemade things...