Tuesday, February 26, 2013

Getting Started with Arduino Uno

I've worked in the electronics industry for 35 years or so, but I started out, way back when, as a hobbyist.

As an FAE for Tektronix, I get to write application software on a semi-regular basis, mostly for controlling test equipment, collecting data, that sort of thing.  But hardware was and is my first love in electronics.   As a kid in grade school I loved tinkering with flashlights, motors, audio circuits, kits, etc.  Later in highschool it was  op-amps and TTL logic.  Back in those days Radio Shack had entire walls full of parts, and working there I often took advantage of the modest employee discount and built up a decent collection of components, bread boards, etc.  And through the years, any household product containing electronics that wears out or breaks, is cannibalized for parts before going to the recycling center.

But over the last few years my electronics parts and projects had gathered dust. Seems like I'd been too busy to play around much with electronics.  What I needed was some fresh inspiration.  And it came in the form of an Amazon gift card.  After checking out music and books, I decided to browse electronics on amazon.com and came across the Arduino microcontrollers.  Turns out they're quite capable and inexpensive.  I ordered my first Uno and within days was off and running, and having fun.

Turns out, Arduino's have been out for several years now and they're really popular among hacker-makers, robot builders, home automation and energy monitoring, and a bunch of guys like me, because these things are a blast!  Based on the Atmel microcontrollers, they have a handful of digital and analog IO pins, NV flash RAM for program storage, I2C and SPI.  It's an open standard and copying and sharing are highly encouraged.  There's a whole cottage industry of parts and accessories ranging from turnkey solutions, to kits, to components.  No matter where you are on the spectrum of hardware experience, there are ways to have fun with Arduino.  And they're very easy to program using a free IDE (integrated development environment) with a simplified C language, and a USB cable connection to a PC, MAC or Linux box.  There are tons of free examples and libraries on the web, along with forums and public domain documentation.  In fact, there's so much information out there, that when you google Arduino you'll get about 26 million hits, and the first 50 or so pages are in fact for the Arduino microcontroller.  There's actually so much information, it can be hard to find what you're looking for.

Here's a book I highly recommend, that seems to be the de facto "bible" for Arduino:

Arduino Cookbook, 2nd Edition (O'Reilly)

This book is perfect for learning Arduino, covering both hardware and software.  And it's also a great reference, with a good index and appendices.  This is the kind of book that I highlight as I read.  Nearly every page has key phrases in bright yellow highlight, so I can quickly find what I'm looking for. The author provides lots of links to more info on the web, and the publisher website provides all the programming source code, and updates to the book text, all for free download.

In future posts I'll recount some of my Arduino projects over the last couple months.  I've made a weather station with wind speed, temperature and humidity; RF wireless links; SD card data logging; real time clock for data logging; small motor control using IR emitter and detector; and most recently I started working with JeeNodes, a great Arduino derivative with RF wireless built in; and installed one in a Kill-A-Watt.