Arduino – Open-source Electronics Prototyping Platform

Apparently Arduino is an Italian name – but when you search on the Internet, you mainly find dozens of references relating to electronics and programming. What’s more, these references are often in relation to art. Electronics and art – now there’s an interesting subject that’s worth delving into! So just what exactly is Arduino?

At first sight, Arduino is a small microcontroller board with a USB port that comes in several models. There are even ‘daisy’-shaped boards (Lilypads) intended for wearable applications, i.e. to be incorporated into garments. The Arduino board is programmed in a language very similar to C using Open Source tools available for Windows, Mac, and Linux. The hardware is also Open and anyone can make their own Arduino – the circuit diagrams and PCB photo masks are available free over the Internet. Arduinos are used a great deal by artists who need electronics in their creations.

When you look at it a bit more closely, an Arduino is not exactly a microcontroller board. In fact, an Arduino is quite simply an 8-bit microcontroller from Atmel – an ATmega8 for the earliest Arduinos and now more likely to be an ATmega168. This microcontroller is loaded with a ‘bootloader’ program that lets you load an application into the controller via a serial port, without overwriting the bootloader. Since modern computers no longer have serial ports, a USB port is often used. All this becomes an Arduino when you decide to dedicate certain pins of the controller ment environment to be used for writing and compiling application before loading them onto the controller.

The applications, called ‘sketches’, are written in a language that closely resembles C. Hardly surprising – it is C, but with some additional functions. All of the functions presented as the language for Arduino form a Hardware Abstraction Layer that lets you program the controller without needing to delve into the innards of the processor. The language has everything you need for most applications. Broadly speaking, there are functions for digital and analogue inputs/outputs, a few basic mathematical functions, time management functions (delays) and a few function for serial port communication – asynchronous (UART) and synchronous (SPI).

The digital I/O functions let you manipulate the logic levels of the pins, to read and write them. There is also a special function that makes it possible to measure the duration of a pulse. Using the analogue I/O functions, it is possible to read voltages and generate PWM signals. Lots of applications don’t require anything more than this, and this is exactly where Arduino’s strength lies. There’s no need to go ferreting around in the registers and the controller data sheet to make a PWM output or a counter work – the ‘dirty work’ has already been done.

If these functions aren’t enough, it’s perfectly possible to program on a lower level and, just as in standard C, you can also add libraries with their own functions. But do watch out – if you go off into the darker depths of the Arduino programming language, you risk losing compatibility with the rest of Arduino community.

The Arduino community? Already, Arduino is a microcontroller, as well as a development environment and a programming language – now it’s a community too? Yes! In fact, Arduino is more of a philosophy, the aim of which is to popularize technology to make it accessible to artists. Arduino is a logical sequel to Processing and Wiring projects. Processing is a multimedia programming language and Wiring is a development environment for artistic electronics. But now we’re starting to get away from our original point.

Simple, free programming is something we’re interested in. What’s more, the electronics involved seem to be simple – so what could be more logical than to make your own Arduino-compatible system?