"Arduino" is an open-source set of hardware and software designed around the ATMEGA series of microcontrollers. These are entire computers contained within a single chip.. with one of these chips, and a small number of external components, you have the framework for complex electronic projects and intelligent devices. It's intended to be used by people not normally interested in getting their hands dirty in the inner workings- artists (kinetic sculptures), robot builders, students, and prototyping hobbyists. In short, it simplifies the process of creating a special-purpose "smart" device.
When referencing Arduino, many people refer to the entire package- the chip, the on-chip boot software, and the programming environment- as a single unit. In reality, nearly all aspects can be changed- the chips and hardware come in several flavors, as do boot software and the programming environment. To deviate from the "package" is fine, but with certain tradeoffs. Different flavor of hardware offer varying feature sets like memory size and operating speeds, while different development software platforms provide varying levels of programming ease traded off against efficiency. Development languages run the gamut- from simplified Firmata Scripting to Assembly Language coding (not for the faint of heart). There are even compiled and interpreted forms of BASIC which can be used. Because it provides a nice balance of simplicity and power, at least at the outset I will be using the Arduino development language, which is similar to "C" and based on a scripting language called Wiring. If you have ever done Java, Pascal, C++, or similar coding, then Arduino code should be easy to adapt to. Since this is mainly a command and control device, and we don't want to get too bogged down in syntax, the Arduino language and IDE will serve nicely while still keeping the code simple.. I'm a firm believer that keeping things simple makes for a better outcome. One nice aspect of the wide support base is that you can choose what you use- you don't need to change hardware if you change programming language and vice versa.
To start off, I chose a variant of the Arduino called a Boarduino. I chose this variant because it offered several benefits for me over the "Off the Rack" standard Arduino. First, the Boarduino came as a self-assemble kit, not a finished product. It's been some time since I had done much electronic assembly, and considered that a well-designed kit would give me some much-needed practice soldering and handling components, while still being a project needing only an hour or so of relatively simple work. Secondly, the Boarduino design minimizes the component count, minimizing the complexity. Lastly, the Boarduino is extremely inexpensive, with the module components totalling around $15 per module, making it reasonable to dedicate a module to a "permanent" project. The absolute minimum hardware implementation of the chip circuit can be had for under $10 on eBay and other online vendors as of July 2010. Though underpowered for some of the projects I intend, there are Atmel processors which scale down to an eight-pin chip selling for under $2 each which still maintains a substantial amount of the function contained in the Atmega328/Arduino platform. Conversely, Atmel and others produce similar but far more powerful devices at substantially higher cost also. For my purposes, the chosen platform offers a nice blend of power while still fitting into a Hobby budget.
Boarduino kit, Assembled. The birth of a new machine.




So.. we have an assembled kit. What now? Stick around and see!