LegoDuino for kid-friendly microcontrollers

Lego

[J. Benschop] is teaching his nine-year-old son electronics by giving him a few wires, LEDs, and batteries. Eventually, the son looked over at his dad’s workbench and wondered what the little bug-shaped rectangles did. Microcontrollers and embedded programming are just a bit too advanced for someone who hasn’t hit a double-digit age, but [J] figured he could still have his son experience the awesomeness of programming electronics by building a custom electronic Lego microcontroller system.

This isn’t as complex as a Lego Mindstorms system. Really, it’s only an ATMega and a 2.4 GHz wireless transceiver. Still, that’s more than enough to add a few sensors and motor drivers, and an awesome introduction to electronics development.┬áThe enclosure for the LegoDuino is, of course, compatible with every Lego brick on the planet. It’s made from a 6×16 plate, three blocks high, with enough room for the electronics, three AA batteries, and the IO headers.

Programming an ATMega, even with the Arduino IDE, is a little beyond the capacity of [J. Benschop]’s nine-year-old son, so he made a few changes to the Minibloq┬áprogramming environment to support the newly created LegoDuino. It’s a graphical programming language that kids of just about any age can pick up quickly, and with the included RF transceiver inside the ‘Duino, it can even be programmed wirelessly.

It’s an amazing piece of work, and much, much simpler than even the noob-friendly Lego Mindstorms. Not as powerful, though, but when you’re just teaching programming and electronics, you really don’t need much.

 

12 thoughts on “LegoDuino for kid-friendly microcontrollers

    1. Mindstorms are very open already. All schematics (and IIRC code) is available on Lego website, communication protocols are available, everything you need to make your custom controller and/or peripheral

  1. This is great, but I think sometimes we forget how smart kids are when motivated. I remember me and my friends being quite fine writing basic on an Apple IIe at age 7. I was fine with IF, FOR and GOTOs after a 15 min introduction from my father friend. What I struggled with was the English manual(I’m Italian). I think visual languages are not good for anything. kids can do basic/python probably even some C without pointers from day 1. In the ’80 we all did.

    1. I second that. I was also programming basic on a TI-99 console well before double digit age. Heck, I think I was reading switches and driving stepper motors out an early x86 printer port with BASIC also before double digits, or soon afterward if not.

      1. Yup, I used the TI “Teach yourself BASIC” book and data cassettes when I was 9. Didn’t have any adults around who could teach me.

    2. Amen, Alberto. In my single digits of age I was cranking out BASIC code on a Smith Corona typewriter, not having access to an actual computer yet; after being motivated by the promise that “you too can write your own games” in a book called “Atari Games and Recreations” and digesting its content.

      But what Mr. Benschop has done is still pretty awesome. I may not be a fan of the GUI-based programming environment, yet it’s a potential start and hook into far more ambitious things. I do particularly like that it’s wirelessly programmable.

  2. What an awesome father! J. Benschop does all us fathers proud with this project. I’ve been trying to help my kids get further into robotics, with varying degrees of success, but now I can see where I need to do things differently (needed to simplify) and will shortly re-start the process with use of the LegoDuino concept. Many, many thanks! Even better is that his process is so well documented and freely provided. Wow.

  3. This is great! I’m guessing that [J. Benschop] knows his child’s limitations pretty well. That said, don’t characterize all kids in the single-digit ages as being incapable of code writing. I did some basic stuff at age 8, and that was just because I hadn’t been exposed to it sooner. I could probably have done the same stuff at age 6 or 7, it just would have taken me a little longer to understand some of the stuff. Coding, much like musicianship or any other learned skill is something that I think should be encouraged at any age… once it sticks, nourish it. But don’t assume it won’t show up until the double-digits. The closer that you can get such skills to the age where nothing is impossible yet (because they haven’t been told otherwise), the better.

    Regardless of age, we should all take inspiration from what [J. Benschop] did here… involved parents have a better chance of yielding intelligent kids, and we could certainly use a few more of those these days! Way to go!!!

  4. Maybe you can’t just chuck the C manual at a 9 year old and expect him or her to learn it by themselves, but you could certainly show off some examples of different functions and teach them how they interact.

    [Basic]ally any person capable of typing can code simple things, i think it’s even easier for young children to learn simple programming since the logic is very basic and they not tainted by a lot of other knowledge.

    I got started rather late, but that was mostly lack of trying, first off i’m not a native english speaker, second i didn’t have the hardware to do anything fun until recently and i’m more interested in hardware so just coding on a computer wasn’t my thing.

  5. i have my own mcu board for lego projects. has a nRF24L01+ radio port (spi+2 pins), a port for a 10 axis imu (i2c), and 4 servo ports (4 pins). i plan on adding an i2c/analog sensor interface which accepts stock mindstorm sensors, and an ir transciever to interface with power functions parts. it doesnt have a motor controller so right now i just use an esc that has been adapted to older lego motors.

  6. I did not plan to comment on this, but I must say it’s interesting to see that 90% of the comments is about 2 sentences in my project description. Of course a 9 year old can learn how to program (and probably in C too if he/she wanted to). The question is, does he want to. Were I come from 9 year olds rather play angry birds on the iPad or Mario Cart on the Nintendo. BTW, if you take a look at Minibloq, you’ll find Minibloq has all 3rd generation programming language aspects except for functions or procedures.

    I did not create this project to learn my son how to program. I created the LegoDuino so he can create new amazing, moving, blinking, interacting Lego machines. He loves to play with Lego and he likes to learn new things. The LegoDuino just gives him a new dimension and Minibloq simplyfies part of that process. When my son is ready to take programming to the next level, he can always start using the Arduino IDE or just a text editor and make and program the controller any way he likes.

    As a final note, I published this project so other people can use it to their own advantage. And I’m happy to answer any questions about the project. Although I will not comment on the age/programming subject anymore. But if you want to force your 9 year olds to learn how to program in C, I won’t stop you!

    P.S. Luuk-e still moves around exactly the same, because my son does not want to disassemble it.

  7. Nice detailed write-up. I also love the orgy-of-dead-bugs-style power module. It does the job and it fits the small space…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s