You may have noticed a few Christmas light displays in town that were especially lively this season.
One home in particular that I noticed featured strings of lights in many colors and shapes decorating the house and front lawn which danced in sync with Christmas tunes broadcast over an FM radio frequency which was indicated by an LED sign reminsicent of Lite-Brite.
Thinking it was a D-I-Y project, I was pretty impressed with what seemed like a fun idea, until I noticed more of the same and realized it was a prefabricated kit.
Nonetheless, it did spark some interest in doing something similar with microcontrollers.
Luckily, I recently received an Arduino Uno kit from MakerShed as a Christmas gift, but not in time to do any serious light projects. Maybe next year.
Arduino is an open-source electronics prototyping platform designed to be an intuitive, user-friendly, and fun introduction to microcontrollers and circuit design.
All you need to get started experimenting with microcontrollers is the development board, but in order to do anything more ambitious you'll need other components and kits which are available at sites like SparkFun and Adafruit Industries, and discrete components can be purchased from brick and mortar stores like Radio Shack, which unfortunately is the only game in town.
Arduino is already quite popular with hobbyists, enthusiasts, robotics teams and the like, but if you or someone you know has an itch to get inventing and hasn't heard of Arduino, allow me to illuminate you.
I have programmed embedded systems before, and working with microcontrollers can be difficult. Even the inital setup of configuring the pins of the chip to communicate with the software and other devices is a chore, and interrupt handlers must be programmed with care.
Furthermore, communicating with the board is complicated by the fact that you have to program the chip yourself over a serial connection, and serial ports are becoming increasing rare and are all but deprecated on modern home computers (admittedly this is not such a big issue with serial-to-USB adapters, but still...more work).
Uno, the latest board from Arduino, makes all of this simple. Many dedicated libraries exist for communication with EEPROM (non-volatile memory, which means it persists when the device loses power), SD cards, Ethernet, motors and so on.
The language used to program the microcontroller is simplified version of C++, which is commonly used on embedded systems. All commands take place inside a main function which loops indefinitely, and initialization occurs in a single setup function.
Programming the Uno is done with a USB cable which also provides power, so no serial ports required. Additionally, the board can be powered via 9V (or other) batteries or a 2.1mm AC adapter (like the battery charger for your laptop, though I don't recommend actually doing that; laptops require much more power than the Uno so a lot of energy will be wasted as heat).
The Arduino development environment is free and easy to install on most any operating system, since binaries are available for Windows, Linux, or OS X.
The best part of Arduino is that it is open source. You can freely view and modify the software, which is released under the GNU General Public License. Tutorials for a broad range of topics exist, and the forums are extremely helpful when trying to diagnose problems.
Even the hardware is open source: you can download schematics from Arduino's website to build your own if you so choose.
So if you have an entrepeneurial spirit, want to glean some insight some into the inner workings of the technology you use everyday, or want to construct an army of robot minions to do your evil bidding, Arduino is just the thing for the curious in need of an outlet.
For more information, visit Arduino at http://www.arduino.cc
Vendor and Resources
Maker Store: http://www.makershed.com
Adafruit Industries: http://www.adafruit.com
Local Radio Shack locations:
632 E. Main St., Lansdale
Montgomery Mall, North Wales