Hardware Fun with the Arduino board
[Posted December 19, 2007 by cook]
Several weeks ago, your author took a look at the
SquidBee
project, which involves making a wireless remote sensor network
from building blocks made of open-hardware components.
At the heart of each of the SquidBee nodes is an
Atmel AVR
8 bit RISC microprocessor, which sits on an Arduino Diecimila
circuit board.
This week, we'll take a look at the
Arduino project:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software on running on a computer (e.g. Flash, Processing, MaxMSP).
AVR chips programmed with the Arduino on-board library
software
are available in a number of different
hardware configurations.
The
Arduino Diecimila board is the one of the more popular
variations, it features a USB host connection which provides power and
allows for software downloads.
The Diecimila name comes from the fact that 10,000 Arduino boards
have been sold, making is a fairly popular development platform.
Arduino Diecimila boards are
available
from a number of vendors for around $35. The board was purchased online
and arrived in the mail several days later.
In addition to the basic processor board, there are numerous open-design
shield boards
available. Shield board functions that are currently available include:
motor control, biosensor interface, prototyping, XBee interface,
Phidget sensor interface, and
potentiometer interface.
Upcoming shield boards include: sensor amplifier, external memory,
external display controller, Bluetooth interface and multi-sensor
interface.
To work with the Arduino board, it is necessary to
install some software on a host machine. Your author used his
main Athlon 64 which runs Ubuntu 7.04. There is a special
Ubuntu installation document that walks the user through the
package installation (and removal) steps, and explains the
software setup procedure.
Running the Arduino IDE was a simple matter of typing ./arduino
on the command line, which caused the IDE window to pop up.
The IDE defaulted to the Diecimila board type, it was necessary to define
the USB connection in the Tools/Serial Port pulldown.
The first attempt at running an
LED blinker
test program resulted in a
bit of operator confusion. The board is apparently shipped with this
particular software example installed, so installing the same test
software does not change the appearance of the already blinking LED.
The Blinker software was pulled into the IDE with the File->Sketchbook->Examples->Digital->Blink menu sequence.
The software was built with no trouble using the Verify button
and copied to the board using the Upload button.
The LED started blinking again.
Tweaking the delay times in the example code, then building and
uploading the changed code verified that indeed, changes were being
sent to the board.
There is another slightly confusing interface aspect to the IDE,
there are tape recorder style run/stop buttons at the top of the
screen, but the run button is really the Verify (compile) function
and the Stop button didn't seem to stop the running code.
The software that the Arduino board runs is written in the
Arduino programming language,
which looks a lot like C/C++ and is based on the
wiring language.
Making a few changes to the blinking LED example was so intuitive
that it was not even necessary to consult the documentation.
The Button
example was also tried, digital input to the board worked as
advertized.
Further testing of the I/O functions of the Arduino Diecimila board
will require some hardware construction, which is beyond the scope
of this (first) article. Your author has been building
simple and
complicated microcontroller projects for a number of decades;
his initial impression of Arduino is that it has a very quick
learning curve and provides a lot of powerful features.
The Atmel AVR microcontroller provides a lot of useful I/O
functionality and enough memory to build many interesting devices.
If you are looking for a convenient way to design a microcontroller
based hardware project, extend the I/O capabilities of your desktop
system, or just play with some cool hardware, Arduino is a quick and
easy way to get started.
(
Log in to post comments)