Saturday, November 10, 2012

Let's toast some 'droids!

After compiling hundreds of pages of notes, hundreds of lines of code, and hundreds of Atmel processors* I decided a blog was the best way to keep my ideas for robots, gizmos, and widgets organized and accessible. And besides, what use is an evil plan for world domination by my robot army if I can't share it?

But let's start at the beginning...

If you're in the market to start work on your own robot, thingamajig, or doohickey, and feel the need for a microprocessor, or more specifically a microcontroller, where would you start?

You might start with an Arduino, and you'd be right, at least partly. There are a lot of Arduinos, and a lot of Arduino clones, some better than others. Even within the official Arduino family there are ... minor compatibility issues. The boards and processors aren't all the same, and it does take some time to understand the differences. The community and software support is absolutely awesome, so it's an easy start. Just pick up an Uno or Leonardo, and get going.

Or you might want something with more processing power, like I did, lured by the friendly promise '100% Arduino Compatible' - a promise that turns out to be nearly impossible to deliver on.

I took both paths, and neither was 100% right for what I imagined. For a start, I bought two boards, an Arduino Leonardo, and a chipKit Max32. Neither are terrific first-time robot building boards.

The Leonardo might look like a classic Arduino shape, but they've moved enough pins around to make it tough for a newbie to use with several of the shields that are out there. Shields are add-on cards that 'stack' on top of an Arduino, with a clever system of pins and sockets. The idea is that you can stack a bunch of shields on an Arduino, and create something that has unique capabilities. But it's not quite that easy - and less so with a Leonardo.

So is the Leonardo a dud? And with the new 32 bit 'Due' shipping, is everything else obsolete? Not a bit. The Leo turns out to be a perfect standalone development board. It's inexpensive, it's a terrific passthrough to program your own $3 Atmel chips, and it has a great mix of I/O pins. It's turned out to be my favourite to use so far, although I bet one day soon that will change, and the Leo will find a permanent home in one of my creations.

How about the Max32? It's 32 bit (and available long before the Due), it's 10x the clock speed, and it has a TON of I/O pins. But it has ever-so-slightly limited pin capabilities, some lacklustre library support, and the documentation, although improving, is taking some time to stitch together. So it's not quite 100% Arduino compatible... but neither is the Leonardo, so I can't really complain. It is very fast, has more memory than you can shake a stick at, and it does have a permanent robot-home planned for it. For the bucks I think it's a great purchase, just not for a beginner.

If I were to start again, I'd probably start with a Ruggeduino. I don't own one yet, but the maker has a lot of good points of improvement, and if you think you're going to put your precious controller in anything that might short circuit, fall down a flight of stairs,  or staying out late playing pool and drinking, you might want to take a look there. If you own one, I'd love to hear your comments!

* I don't have hundreds... yet... I have a handful of AT Tiny 84's, 85's, and 328's. You should, too, these are incredibly useful little chips, and only cost a couple of dollars each.

No comments:

Post a Comment