Randomly-connected accounts of technological self-medication.
Monday, January 9, 2012
My friend Murali Raju has been telling me for years about various fun hardware toys: Gumstix Linux, PIC microprocessors, etc. They sounded fun to play with, but I never felt I had the time to dig into them. More-recently, he told me about Arduino boards: stand-alone Atmel-based microprocessor boards. Clever design, inexpensive, small form factor, and with a built-in LED :) When I started teaching at Clark College in Sept 2011, one of the professors showed me a small Arduino board he had gotten. Somehow, I was hooked - I had to have one.
I ordered two actually - the Nano and the Deumilanove. They’re fun boards! Easy hookup via a USB cable, which supplies power, can be used to program the board, and can be used to transfer serial data between the board and a host processor. Programming is usually done in C. The library of built-in functions is quite rich, including easy access to I/O pins, as well as analog outputs (PWM only) and analog inputs (10-bit A-D converters).
There are plenty of examples/sample code available, and a very active community of software and hardware developers. In addition to the main boards, you can buy a number of shields: add-on boards that connect directly on top of certain boards, adding additional functions such as WiFi, LCD displays, etc. They’re not mandatory - you can use a plain old breadboard and jumpers to connect whatever peripherals you want - but the shields are handy.
My early experiments included interfacing an SD card (which turned out to work fine, but had a painfully long seek time); a two-line LCD display; a small (128x128) LCD panel; an analog input/output pair to try digitizing/re-playing music (conversion rate is pretty slow, and PWM output took some learning); and of course a number of LEDs and potentiometers. Plenty of hardware for, say, an etch-a-sketch program, a small oscilloscope, or a garbled audio recorder/playback. For no particular reason, I made a small system that stored a copy of my doctoral dissertation, and scrolled it out to a two-line LCD panel (just for fun) lol.
The most straightforward way to interact with these boards is via a simple IDE. Having been an IDE-phobe, I was initially put off but this concept, but once I tried it I realized it was unobtrusive and quite painless :)