Q. I want to build my first robot, but I don’t know here to start. I’ve looked at motors and chips to power them. I’ve looked at sensors — there are a
LOT of sensors to choose from! There’s one for just about
anything I would want to do. My biggest question is, what
controller should I use? There are Netbooks, PICs, then
Atmel, ARM, Motorola, and more. Where do I start?
A. Ask me any question but that one. Picking the “best” microcontroller is practically a religious question in the robotics community. Everyone has
their own opinion and very good reasons to support their
choice. Over the last 10 years, I’ve changed my mind many
times. I started out with Parallax Stamps back in <mumble>
when I was getting started again in robotics. They were
cool after coming from using Z-80s on wire-wrapped
motherboards using assembly language. I wanted more
RAM and more controls, so I moved to Motorola 68HC11s
and their ilk. Those were nice for a while, but I outgrew
them, as well. I then went to the PIC16Cnnn and then the
PIC18Fnnnn parts using CCS C and Microchip C compilers.
Others really like the PICBASIC PRO compilers, which are
also very good.
Then, I moved to the Atmel AVR series. At first, I used
BASCOM AVR as a teaching platform for classes because
they did a good job abstracting the hardware layer. This is
useful for teaching those new to the art of programming.
Next, I discovered avr-gcc and avr-dude which ran on
Macintosh and Linux, and freed me from Windows
platforms. Shortly thereafter, the Arduino environment —
also OS agnostic — came out for the Atmel ATMEGA chips,
which is fantastic as a learning/teaching
platform. I have not yet done much with the
ARM platform. So far, I find the tools and
IDEs difficult to use and even more difficult
to explain to others. That is starting to
change, and I’m keeping an eye on them.
Recently, I’ve been attracted to the
PIC24FJ and PIC24K series of 16-bit chips.
They are fast and easy to use. They still need
somewhat expensive programmers ($190 or
so for an ICD3), but the compiler is free.
What is even better is that Microchip is
coming out with MPLAB-X which is OS
agnostic. So again, I’m interested because it
means I don’t have to develop on a Windows
platform. As I outgrow a particular platform,
I migrate to a higher powered, faster one.
The processor to choose for your hobby
will depend upon your experience with
programming and your needs for speed. The
development platforms that take great
lengths to abstract the hardware (CCS C,
PICBASIC PRO, BASCOM/AVR, Arduino) will
be very attractive to programmers who don’t
understand hardware and those new to the
craft. You will outgrow these only if you want to get more
involved directly with hardware. If you don’t want to invest
a lot, then you will want to use open source compilers and
IDEs (Integrated Development Environments) like Arduino
and avr-gcc since you can get cheap hardware, and
sometimes you don’t need any programmers to program
the parts. If you are going to be doing vision and object
recognition, then you should start with the Netbook or
laptop approach. These are the only platforms that will have
the computing power you’ll need.
A. You bet there are, and you can afford them too! Just for fun, I got a couple of different units and built he kits. The first one I found was at SparkFun. No
surprise there. They always seem to have cool stuff. The kit
that I got was the SparkFun Color LCD Shield LCD-09363
Figure 1. SparkFun Nokia 6100 Color LCD.
SERVO 06.2011 15