Showing posts with label Arduino SD. Show all posts
Showing posts with label Arduino SD. Show all posts

Monday, January 9, 2012

Arduinos


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 :)