Arduino: it's not just for academics and hobbyists anymore!
I was first introduced to the Arduino in 2007 while at ITP. At the time, I thought it was about the coolest thing I had ever seen.
I also thought it had absolutely no use in industry applications. As much as I loved the little gizmo, I dismissed it as a tool for academic and hobby uses while more serious hardware such as PLCs (programmable logic controllers) or specialized animation controllers were the only options suitable for professional applications. And so, after my semester of using the Arduinos, I dismissed them as toys, albeit amazingly, unbelievably cool toys. I put them in a drawer and forgot about them.
Seven years later, not only has the Arduino evolved a lot, but so has its uses, and it has lot more acceptance in industry. I know it seems counter-intuitive to build a mockup for a high-budget project with a gizmo you bought from Radio Shack, sitting there next to the cell phone batteries and RC helicopters, but you really can. Not only that, but it may well be the best way to do it. Through its various versions, programming environment, libraries, and add-on hardware, it is possible to create nearly anything that involves sensing, control, and media. And it’s still cheap, much cheaper than its more industrial counterparts while offering much more flexibility. Sure, you will not be controlling, say, a half-million dollar ride vehicle with one, but short of that, and especially for prototyping, mockup, and proof-of-concept purposes, it is possibly the fastest, most flexible, and least expensive way to build things. It is, after all, a way to accomplish that task you may know as "Show Control" or "Automation." It's just cheaper and more flexible. Easier? At times. At other times maybe not.
The Arduino is an open source microcontroller. In simple terms, it’s a little board-based device that has a bunch of inputs and a bunch of outputs. You tell it what to do with the outputs based on the logic, which you write with code. What kind of inputs? These could be manual controls such as simple pushbuttons, knobs with potentiometers attached, or sliders. It could also be sensors such as proximity sensors, light sensors, limit switches, optical sensors, color sensors... or about a million other things. You can also use methods and protocols such as infrared, ethernet, RF (radio frequency,) and serial communication. What can you control? Once again, pretty much anything, ranging from simple blinking LEDs to servo and stepper motors, relays, larger full-color LED displays, theatrical lighting, and… a million other things. Through the use of relays, you could control pneumatic circuits for animatronic figures or show action equipment. So, for example, you could say “when someone pushes this button, play this sound and this video, and light up this display, but not until they’ve hit this other button first, which makes this air cylinder animate this prop.”
Well, that’s just it, you DO have to program it. There is no fancy timeline-based interface like there is on animation controllers, and there is no ladder logic like there is on PLCs. You have to write that code yourself. Yes, I know. Scary!
"I don’t have a Computer Science degree!" "I'm an Art Director!" " I'm a Project Coordinator!" " Functions and variables and loops, oh my!" " I can't possibly learn to write code!" "It's too hard!"
It really isn’t. Writing code, particularly for the Arduino is, well, very, very logical. Of course, there are also thousands of example on which to base your code, but you will have to get comfortable writing IF statements, working with variables, working with loops and functions, etc. The Arduino programming language is based on C and is accessed through its IDE (Integrated Development Environment,) that interface you use to type your code in and then upload to your board using a USB cable.
And so, while this isn’t quite as easy as plopping down logic on a timeline on an animation controller, it does allow for much, much, much more flexibility. You will stop saying "I wish this thing could do X," and instead start saying, "how do I get this thing to do X?" If you eventually outgrow the default IDE, you can try out an alternative such as Maria Mole, or you can just write up your code in any old text editor, then copy-paste it into the Arduino IDE so that you can upload it to your board. If this all sounds terribly confusing, it really won’t be once you start doing it yourself. So if you’re an Art Director, Prop Builder, Storyboard Artist, or Lighting Designer who has never written a single line of code in your life, but would like to stop calling for help every time you need to build a mockup or a prototype, just get over your fear, and sit down and try it. It is easier than you think. If you are a Show Control professional, it will be a piece of cake.
Okay, so we can go over the currently available crop of Arduinos. The most common variety is the Uno. It is so common that you can find it in Radio Shack.
As the most common version of the Arduino, the Uno is a great place to start, because it has the highest level of compatibility with shields (more on this later,) and libraries (more on this later too.) Most likely, you'll end up using the Uno as your general purpose go-to tool, just like your Leatherman multi tool. On Amazon, an Uno costs a whopping $25. If you’re really cheap, you can take your chances with a generic copy. Some of them work great. Others don’t work at all, so if you decide to save $10 on a generic clone, understand the risks.
If you need more inputs and outputs and more memory (you’d be surprised at how quickly memory fills up on these tiny boards,) you can move up to the Arduino Mega. Let’s say your project, perhaps it’s a kiosk or something, involves 20 push buttons, 5 proximity sensors, some infrared, and a bunch of servo motors, and the Uno just isn't big enough. This is my personal favorite, because it’s pretty hard to run out of inputs and outputs and memory. Besides, I just like to say “mega.” It costs a bit more than the Uno, but still, if you compare it to industrial PLCs and animation controllers, it’s downright cheap. It does have, however, less compatibility with shields and libraries, since it isn’t used nearly as often.
If you want to build something smaller, say a prototype for a toy, you might look into something like a Pro Mini. It doesn't have a nice set of headers pre-installed. This means that in order to prototype, you’ll have to stick it into a prototyping breadboard, and that eventually, you’ll probably have to have a custom board made for it.
If you specifically need sensors to control a computer with keyboard input, let’s say in a kiosk, you might use the Leonardo. So suppose you, or someone else, makes a whiz-bang application that needs a computer to run on and operates on keyboard inputs. The problem is, you don’t want people to be pushing keys on a boring old keyboard. You want them to be pushing nice, big themed buttons, or waving their arms, or yelling or singing or something like that. You can use the Leonardo to emulate those keyboard presses.
Another really cool device is the Arduino Ethernet. With this device, you can talk to your Arduino through a web browser, have it talk to other devices over ethernet, etc. You can also do this with a shield, though, which might cause you to ask...
Shields are add-on boards that you plug into the Arduino for added/specific functionality. For example, you can make your Arduino play back sound with this shield and this one. You can record your data to a memory card with this one. Theater people: you can control DMX with this shield, though be aware that it has some limitations. If you really get into coding for DMX, I recommend something like this instead.
Well, the long-winded answer is here. In more simple terms, it’s code that someone else has written so that you don’t have to. Using libraries makes programming for specific functions (let’s say, playing sound or controlling servo motors) much, much easier.
Obviously, you need to buy an Arduino, but beyond that, I recommend this excellent book. On top of that, Arduino development has a huge internet presence, and you can find out just about anything with a web search.
Are there other similar gizmos?
Yes, there are. Intel has introduced its version, called the Galileo. In addition, there is the Teensy. The Teensy does not yet come with a nice board package like the Arduino, but you can buy/build them yourself.
So there ya go. This stuff is Show Control and Automation on the cheap, only you can do so much more with it.