Arduino: Development in the Physical World
Tue, 2011-04-26 00:00 — steve.mcdonald
I have spent the better part of the last dozen years hacking my way through a wide array of projects, each one plundered for various lessons on strategy, analytical thinking skills, coding tricks, design aesthetics and life. I have never come away dissatisfied, but after spending more than a dozen years where the end result was a large effort in building analogies of the real world into web applications, one begins to long for something more tactile and tangibly present in the physical world.
No I am not conducting weird science experiments in hopes to resolve some sad loneliness. Don't get the wrong idea here. I am actually just talking about writing code for microcontroller hardware that controls motors and lights and widgets in the real world.
When I was a kid I didn't have access to stuff like the RadioShack Learning Lab for electronics, which was a pretty neat innovation. I think I could have gotten my hands on a chemistry set, but frankly I don't believe my parents would have allowed it. Once upon a time I was found sitting on the kitchen counter mixing a slew of household chemicals in hopes to invent some concoction that would make me taller and stronger and faster, only to freak my parents out when they caught me stirring Drano into a toothpaste, ketchup, ranch salad dressing cocktail. It is a wonder I lived long enough to... who am I kidding, it is a wonder I lived at all!
Anyway, here in 2011 I am now finding a bit of fun running little experiments with the Arduino's Duemilanove Board. I don't know if you can get the scale here, but it is a fraction of the size of the previously mentioned Learning Lab, and cheaper too. I was able to get an Arduino kit for around $40+ from Amazon.com while the Learning Lab at RadioShack still sells for around $70.
Now, to be fair, these two are really apples and oranges. The apple that is Learning Labs doesn't require a computer, is completely self-inclusive with all of the parts and wires (batteries not included), cathodes and diods, etc. This is still a great tool if your goal is either gaining a good understanding of how physical assets come together to create an intelligent circuit devoid of any coding ( making a light blink meant learning to select a resistor that would load up power and once full, release that power out to the light which followed it: the time it took to load equaled the waiting portion of the blink event) or doing old school electronics repair. Apples will always be tasty and nutritious. The oranges, which are similar boards driven logically by microcontrollers, allow a single circuit to behave differently by reading available inputs and making decisions about how to output based on the on or off (HIGH or LOW) state of those same inputs by programming the controller (from a computer via USB or serial port, also not included!) In the case of the apple, you would have to wire up different resistors, capacitors and switches to get an LED to breath (fade up and down) rather than blink (turn on and off). In the case of the orange (microcontroller) all you would change is the code while leaving the circuit (the parts soldered into the breadboard) the same. That is kinda cool and fun, especially because I've been writing that same logical code for more than a decade in the virtual world, and now I can make that code affect items in the physical world. I grew up in Florida as a kid, it is no wonder I prefer oranges!![]()
So what does this have to do with traditional computer or web development? Well, it really doesn't other than, in my experience, all of life is source material for the unexpected. You never know when an idea in one venue will suddenly be wonderful fodder for a challenge in another.
