Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
    
Why would C's learning curve be high? There are countless people who have been writing code in assembly and C at that age - albeit on a C64 or on an Amiga. These days it might be harder to actually get into such low-level down-to-hardware programming than back then, but really, C or even assembly for sure are not "too hard", and surely they do help to understand the hardware far better than any other higher level language would. Frankly, my suggestion is to get some old hardware(PC with DOS, or Amiga or C64) and work with them on the low-level hadware concepts. Or then Arduino and peripherals. –  zxcdw Jul 23 '12 at 19:48

3 Answers 3

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.

share|improve this answer
    
Once you exhaust the Lego Mindstorms studio capabilities you can then learn to integrate Lego Mindstorms with Microsoft's robotics studio. There are plenty of people who built addons that you can download making use of robotics studio. I also know of a number of companies that use robotics studio for their robotics applications which are sold as a product, so that should be an indication of the power of robotics studio. You can even use it for your home built robots. –  Dunk Jul 23 '12 at 22:12

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.

share|improve this answer
    
Went to the web site - keeping in mind I have 25+ years embedded developement... and maybe it's late and I am loosing (or lost) it.... but all I read was "Bla bla technobable bla bla more technobable". If thats the quality/comprehension levels of their Web front end, I cannot imagine what the products documentation is like for a young child. –  mattnz Jul 23 '12 at 20:59

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.)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.