Damn you, Arduino! I have no free time for this!!

My First Arduino Circuit!

As a kid, I was fascinated by electronics and I used to take apart pretty much anything that used electricity, from blenders to VCRs to calculators. To my parents credit, they they weren’t really upset about the taking things apart, though sometimes my inability to put things back together annoyed them. At any rate, just like with programming, I kind of forgot about this through high school and college.

Well, I recently decided to play around with some electronics again, because I’m interested in how I might be able to leverage my programming skills in the “real world”. So I started poking around online trying to figure out where to start. I know almost nothing about this world anymore, but I quickly became aware of a popular, neat little programmable microcontroller called the Arduino.

Basically, this is a small device a few inches square that you can plug into your computer and program in a language very similar to C. The board has a bunch of Input / Output pins that you can use to read data off of, or control devices and components. So for a very simple example, you could use a pin with a light sensor to measure when it gets dark, and then use another pin to control a light that starts blinking once it’s dark.

Anyway, I found this little Arduino kit from the awesome folks at Sparkfun, so I went ahead and ordered it. Today, I spent about an hour playing with it and writing my first tiny program, which makes an LED fade in and out in a loop.

What’s bizarre is that it’s so much fun. I mean, I’ve built large, complex websites with tens of thousands of lines of code that use a dozen different languages, frameworks, and technologies. So how come writing 6 lines of code to make a stupid little LED blink makes me grin like an idiot?

UPDATE: It’s been brought to my attention that this post is disappointingly light on content and substance, and after some careful reflection, I agree. So here’s a more in-depth review of the Arduino Inventor’s Kit from Sparkfun. This is intended largely for technical people who haven’t played with electronics much, but are interested in getting started. Let me know if there’s other things I can cover in more depth.

What the kit comes with

The box that came in the mail from Sparkfun was small, but there’s quite an array of components in there to play with. You can find a complete list here, but it basically includes everything you need to start creating digital circuits and programming them with your computer. They’ve included a variety of sensors, LEDs, a motor, a buzzer, etc. And of course, once you learn how to control all these components, you can start swapping them out for the more interesting components available out there, like LCDs, GPS units, wireless transceivers, cameras, etc.

The heart of the kit is the Arduino Uno itself, along with a breadboard that you use to prototype your circuits. So if you’re worried because you don’t know how to solder, don’t be (though it’s a good skill to have for more advanced projects). There’s a handy plastic base to stick both the breadboard and Arduino to, which makes it a lot easier to run jumpers back and forth without pulling them out accidentally.

Most importantly, the kit comes with a 36-page guide with about a dozen introductory projects you can create. Each project includes step-by-step instructions, circuit and breadboard diagrams, a list of troubleshooting tips, and some variations you can try out. As far as I can tell, they make no assumptions about previous knowledge, so it’s pretty easy to jump in and start building.

How you use it

If you’ve never built any electronics projects before, it might seem intimidating, but it’s actually pretty straightforward (largely thanks to the folks who put this kit together). Building the circuits consists of identifying the proper components and wiring everything up with the included jumpers (wires) and breadboard. Once you have everything plugged in, it’s time for the fun part: controlling it with code.

The Arduino comes with a USB port so you can just plug it directly into your computer, which is also how it draws its power (it’s also got a power port). The Arduino folks have provided a simple IDE that runs on Windows, OS X, and Linux, and lets your write, compile and upload your programs to the board. The language used is a variant of Wiring, and is similar to C++. I didn’t have any issues modifying and extending the example code without looking up a reference. I’m sure more complex programs will change that, but it’s hardly intimidating.

Once you’ve written your program and compiled it without getting any errors, it’s time to upload to the board. Just hit the upload button and wait a few seconds. The TX/RX lights on the board will flash, and then if you’ve done everything correctly, the board will start running your program. Arduino programs run in a loop until the power to the board is removed, so you can be mesmerized by your LED fading in and out for hours 🙂

What you can do with it

What can’t you make with it? The Arduino might seem like a toy, but it’s actually a pretty powerful little chip and I was surprised at the depth of some of the projects out there. Everything from UAVs to robots to weather stations to breathalyzers. For more inspiration, check out these links.

What I plan to make

That’s half the fun: I don’t know yet! I definitely want to try playing with some little robotics projects, maybe create a rolling robot with collision avoidance, line following, etc. Another thing that I’d absolutely love to explore is the quadcopter thing; there are some quad projects out there that leverage the Arduino, so I think that’d be a good place to start. I’d love to play with more automation stuff though, like autopilot, navigation, etc. I’d really like to play with some more advanced things like room mapping, voice and face recognition, etc. But I suspect a lot of that will require more power than the Arduino can handle. That’s ok; it’s a great place to start dipping my toes into electronics. I can build Johnny-5 later.

I hope this review was useful to you, and if you have any curiosity or interest in electronics and programmable microcontrollers, I encourage you to check out the Sparkfun Inventor’s Kit for Arduino. It’s the most fun I’ve had programming in awhile.