I am thinking about introducing my 12 year old son to hardware programming. I built a robot with the .NET Micro Framework and while he was fascinated with controlling the robot, his eyes glazed over when I attempted to explain how the code worked. And to be fair, it’s quite complex for a beginner, requiring knowledge of OOP, interrupts, etc…
So I was thinking what is the best way for a kid to get into hardware programming? I’ve heard of Basic Stamp, Arduino and Lego Mindstorms.
It seems like Arduino can do pretty much everything, but it’s C and it sounds like the learning curve is really high.
Basic Stamp seems interesting and it is using BASIC from what I can see, but I can’t tell whether it can do anything more complex than messing with the breadboard. For instance, could I build a web server on it?
And finally, Lego Mindstorms looks impressive, but I don’t understand how it’s programmed, if you want to do anything out of the box.
Ideas?
1
Lego Mindstorms is purpose-built for your task, i.e. teaching a kid about building programmable machines. I don’t think you’ll go wrong starting there. In addition to being easier to program than the other options, you also have the advantage that the hardware components integrate nicely with Lego bricks, so machines are easy to build and easy to modify.
Once the kid in question is comfortable with what you can do with Mindstorms, you can start looking at ways to make it do other things, or start looking at other systems. An Arduino board can be had for $25 or so, and Basic STAMP is pretty cheap too. Having some experience building with Mindstorms will let you (and the kid) focus on what’s different.
1
There’s always Scratch for Arduino. Haven’t played with it personally (one of the reasons I enjoy programming my Arduinos is I get to use C), but it looks like a pretty good project.
1
Get the kid a power supply, a breadboard, a set of components, a mountain of LEDs, and some 555 timers. If he wants to play with hardware, give him hardware.
(and maybe a scope, if he’s been a good boy.)