I was thinking about buying these for myself and building my own robot at home, to parallel what we're doing in class so I can do and have these things for myself. But, I was wondering if these are good components for someone who wants to build robots as a hobby? Can anyone recommend something equivalent or better for what I'm trying to do or are these good?
My new answer to this question "which microcontroller" is the best micro is the one you know, or the next one you want to know. The programmers interest in the micro is much more important than the actual features.
We (NMI) build many different micro boards. We made HC11's which were pretty good for robotics for their time (1988 - about 2000). We made HC12 boards, but we didn't promote them much because their Flash wasn't up to snuff. We had some fail after only 70 programming cycles, even though they were supposed to go at least 100 times. In a development environment, that means you won't get through many development cycles before you have to throw your board away, and get a new one. Now supposedly they've got the HC12 flash where it lasts longer, iirc 1000 times. In any case, we just weren't that impressed with the line for that reason.
I am still of the opinion the DSP56F80x line of processors is the absolute best thing made for motion control projects. We sell more of those than any other processor of late. When they came out, they suggested their Flash would reprogram 100,000 times. I've never been able to burn one out for reprogramming. So to me, that's a much better investment.
But really, beyond having a fast processor, the next most important issue is how well do the hardware features match your needs. In cases like this, the PWM and timer suites on the DSP56F80x are the best I've ever seen. For instance, does the HC12 have quadrature inputs? Without looking into the data sheets for your particular one, my memory says, probably not. Well, if you're going to do real PID motor control, or advanced Odometry, you will either have hardware quadrature counters or you will have to make software channels. If you do it in software, and your encoders are fine enough to make good motor control, expect to waste from 100% to 25% of your processor's execution time tracking
2 channels quadrature, where when done in hardware, there is 0% overhead doing the same thing.
The DSP56F805 on our IsoPod(TM) for instance has two hardware quadrature channels built in, and even the timers have a mode where they can do quadrature, so running 6 channels of quadrature is a no- processor overhead effort. You still have 12 PWM channels left over to drive RC-Servos or PWM for H-bridges. We've got a small stack with a DSP56F803 PlugaPod(TM) on an Hbridge with a XBee module built in. GPS also if desired. You might want to see our web site to see how small it is.
Finally, I should say the HC12 is a much slower processor, and therefore uses less current than the DSP56F80x series. So it's better on batteries, unless you start needing bunches of them to get the same computing power. (DSP56F80x are ~80MHz 40 MIPS)
But there are ARM's now that run neck and neck with the DSP56F80x's, but while they are very nice in many ways, they still don't have the same complement of hardware the DSP does. Fred Martin of MIT who used to do HC11's in the Handiboards is now doing even faster BlackFin DSP processors on his board. So there are still lots of other options as well.
So, when it comes to robotics, there are processors built from the ground up for motion control, and then there are the others, which you have to write a bunch of resource consuming software to approach their performance. You decide.
I can see why your instructor would choose the HC12. It's a natural follow on to the HC11 which was wildly populare and extremely well featured for its time, and the HC12 is fairly popular. Probably fairly easy to teach. But to me, it approaches the end of its life very soon, and I'd rather jump ahead to a more modern processor that will have some staying power. Again, it depends on 1) what you're interested in learning/using 2) what hardware it brings to the party to make the programming eaiser. and 3) wether it is a good career move for you to do.
To the other items:
Maxstream make pretty good RF links. We use the XBee links in our product line. So with the XBeePro units, we can get about 1/2 mile up to 1 mile (depending on antenna height above ground) communications between robots and PCs.
Lastly, BDM is an older concept of Motorola's than the now popular JTAG, but in essence is the same thing. This means you are writing on a PC and downloading and are much less interactive than the approach we take with our boards. Again, different styles for different programmers. But having some sore of BDM or JTAG for reloads is a good idea, any way you go.
-- Randy M. Dumse
Caution: Objects in mirror are more confused than they appear