Friday, December 10, 2010

Software: Beyond the Arduino Environment

Arduino devices are simple, yet powerful physical computing devices. The people behind Arduino set out to make the hardware and software more accessible for beginners and non-techies. They have done this very well by abstracting the hardware, and the more "dangerous" details software development, into a simple, powerful, yet easy to understand programming interface.

Arduino Java Based IDE
The standard "out of the box" Arduino IDE (Integrated Development Environment) is a program based on Java. Which is a great environment for the beginner. It allows the development of simple programs ("sketches") that can be uploaded to the hardware requiring only a USB cable attached to your computer. But it lacks things like hardware simulation and debugging. For that, more sophisticated tools are needed.

Peeling away the surface of Arduino reveals that it is just a set of electronic components based on a microcontroller (which one depends on the Arduino model). There already exists software development and programming tools for these chips, often made available free by the chip vendor. So, the solution is to get a hold of these tools. For the Arduino API, since it is open source, the Arduino folks make the code available for free as well (it comes with each release of the Arduino software).

AVR Studio IDE
These new software bits are WinAVR and AVRStudio. They include the tools, code files and utilities to help code, debug, and flash upload your Arduino. Setting the tools up can be a bit of a challenge, especially if you are new to programming. Luckily, there a number of tips and tutorials on the internet to help with setup (Google WinAVR, AVRStudio and Arduino).

Where I am at now is, I managed to port my "engine room lighting application" project from the Arduino IDE to the AVRStudio IDE. Now I can more easily code and debug C/C++ code to control the device. Woo hoo!

No comments:

Post a Comment