Ask HN: Best way to learn robotics with a 10 year old?

224 points by hersko ↗ HN
Hey all, after discovering the greatness of NHRL[1] my son and i would love to try building a small battle bot, but i know nothing of electrical engineering or robotics.

I prefer to learn how everything works and build something custom instead of just buying a premade kit and following instructions. I was wondering if there are any resources or books that we could go through together that would teach us the basics of electrical engineering and/or robotics.

Thanks!

[1] https://www.youtube.com/watch?v=1GzzckUcnfE

102 comments

[ 3.2 ms ] story [ 148 ms ] thread
I was going to recommend

https://en.wikipedia.org/wiki/Lego_Mindstorms

but is is discontinued. In terms of easy of build and programming these were great. This kit is still available

https://education.lego.com/en-us/products/lego-education-spi...

There are rumors that Lego is working on a future Mindstorm system. Haven’t heard any hard news about it though.
I agree, I think those Lego sets are a great way to go
Spike Prime and Mindstorms use the same Hub just different colors.

Spike Prime has a large motor, 2 small motors, a distance sensor, color sensor, and force sensor.

The Mindstorms set had 4 small motors, a distance sensor, and color sensor.

Mindstorms retailed for about $400 as does Spike Prime currently.

Spike Prime is Mindstorms for all intents and purposes. You can even get either the Spike Prime or Mindstorms app and use it with either Hub.

Maybe parent refers to Mindstorms NXT, which imho is much more fun than EV3 or Spike.
You can probably get these sets second hand. I just revived a bricked one (hah!) myself. Had to use the Lego software to update the firmware for that, which only runs on Windows 7, 8, and 10.

I just got NXT-Python [1] working on macOS via a USB cable. No luck pairing the brick to my MacBook via Bluetooth yet. Nevertheless, I can't wait to get building robots with my kids!

[1] https://ni.srht.site/nxt-python/latest/handbook/overview.htm...

> Had to use the Lego software to update the firmware for that, which only runs on Windows 7, 8, and 10.

You can do that on Debian, hint "apt search nxt". Or go here https://bricxcc.sourceforge.net/

(comment deleted)
You might consider something like the Lego Mindstorms robotics kit.

It gives you an accessible starting point, but is a fully featured programming language and has a variety of sensors, motors, etc which can be made into increasingly complex and diverse robots.

I've been looking for robots recently that work with Scratch.

I found one called VinciBot that looks kind of interesting - https://www.youtube.com/watch?v=BftyB954_r4 I like the fact it can draw (it doesn't look like it can pick up the pen by default though, but it appears to have a motor inside that you can attach Lego components to).

I installed their android app to have a little look at it.

I know that you said you don't want a premade kit and following instructions and this is *close* to that... but I think it might still be a great fit.

Mark Rober has a new product where they ship a new robot every 2 months. They give you the basic instructions on how to build/program it but the idea is that you take that knowledge and then expand on it yourself by adding features. My daughter is still a little too young for it so I haven't used it personally. The biggest issue is that it is a subscription and not a one time purchase.

Here is the link: https://www.crunchlabs.com/products/hack-pack-subscription

And here is a brief video explaining how it expands beyond the normal "premade robot kit." https://www.youtube.com/watch?v=TtdOdUi9b_s

> NOTE: The IDE works only on Mac or Windows (if you want to code)

Boo! hiss

Proprietary tooling that doesn’t work the way you want is unfortunately a great introduction to hardware work :/
This is exactly true, unfortunately: proprietary tooling that costs an absolute fortune, and has a UI straight out of the very worst of the 1980s, and only works on very select proprietary platforms, is absolutely the norm with hardware work.
Why is that the case? Are there no good open source alternatives to these tools?
Nobody except gigachad capitalists need that advanced PCB.
The Crunchlabs agent seems to be based off the Arduino Agent, so I'm surprised they don't support Linux.

My teenager never had any issues with using Linux since the age of 10 (old laptop with Firefox and Minecraft), and never used Windows (school uses Chromebooks). Hopefully this works with just a standard editor too, although the Crunchlabs IDE looks nicer for learning.

We got this for our youngest. Can confirm that it's easy to follow and absolutely encourages exploration of the post build abilities or modifications. Mark is doing great things for kids science. Phat Gus caused my middle child to start exploring zoology as a career!

Also, the subscription is worth it even if a single purchase option would be nice just to try things out. Go ahead and do it if your kid is at all interested in hardware, robotics, or tinkering in general.

I had a really bad experience with crunchlabs. They silently renew your subscription without any warning, which is really bad form in 2024, and they didn’t have an option for cancelling online, forcing you to call a call center which took over an hour just to get someone on the phone and then they had the gall to try high pressure tactics to get me to not cancel. Left a really bad taste in my mouth.
The Lego Boost set is quite a nice set. It comes with three servo's and a color/distance sensor. The scratch like programming tools are nice and accessible and not that limited. However you can also flash micropython on the controller with PyBricks. Then you can pair it with other Lego hubs and a remote over bluetooth.

This setup gives you pretty much all the possibilities of Mindstorms at a small fraction of the investment

FIRST (https://www.firstinspires.org/) is a more structured program intended to be organized through schools or similar communities (homeschooling groups, 4H, etc.). I have more experience with the bigger robots intended for high schoolers, but they have programs all the way down to kindergarten.

Doing something similar at home is very possible, and if you are nearby an existing team or program they are usually more than happy to have a conversation with parents about how to get their kids started even if it doesn't mean joining the team.

+1 for FIRST. This is your path as it is structured and can also help your child build friendships with other kids interested in robotics.

Additionally, participants who stick with the program through high school learn every aspect of robotics - problem solving, design, fabrication, testing, coding, presentation, teamwork, etc.

That is a great point, the things I value most from my time in FIRST are the friendships, connections, and soft skills I built. The engineering is fun, but I definitely use my teamwork, leadership, research, and presentation experience more on a regular basis.

Additionally to the OP, if you want this to be something that you and your kid do together, you can volunteer as a mentor for the team if your schedules align. You can have a very large impact beyond just your kid by doing so.

Modern robotics with deep learning/imitation learning is surprisingly accessible. The low-cost robot arm I used in this project is very easy to 3D print and assemble: https://github.com/trzy/robot-arm

An iPhone app is used to teleoperate the arm and gather examples of an action. You then train the model and deploy it and the arm performs the actions based on current camera input and joint angle state.

A robot arm is fun, I assembled a 6 DoF one with metal parts and hobby servos that cost around £70 if I recall correctly.

I find it kind of interesting how because hobby servos are used, which don't have encoders on, when you turn it on and set the servo positions it jerks into life.

The problem I find with mine, is that all servos are the same, I think ideally the bottom servo needs more power. I need to try slightly higher voltage though too - I think I can use up to ~6V.

I controlled mine with a Python + a PCA9685 I2C PWM driver module - https://www.amazon.co.uk/gp/product/B014KTSMLA/

Battle bots are not exactly robotics, they’re RC cars with extra servo channels. Personally I find them boring compared to FPV, but the entry is pretty much the same - watch YouTube tutorials. You could find a book but anything you’d find there would be outdated, unless you need the absolute basics like Kirchhoff's circuit laws - which are as useful for building stuff as set theory is useful for writing wrappers for REST APIs.. just don’t connect negative to positive and you should be fine:)

You might learn Fusion if you want to 3D model the chassis - again, everything is on Youtube.

Good luck!

You /can/ totally do it hardmode though. I did small plastic battlebots several years ago, and I went for Xbee teleop communication to a microcontroller, controlling PWM motor drivers etc. (no, didn't go far enough that this gave me any competitive advantage)

But my real passion is tying together servos/microcontrollers/motors letting me make custom built teleop'd quadrupeds with airsoft guns, lasers and cameras...

There's a lot of stuff you can do in robotics before you get to true autonomy.

(just rambling, inspired by your comment; nothing you said is wrong :) )

Find a FIRST Lego League (RLL) team for the kid.

Maybe buy Lego Mindstorms and Lego Technics for home and when the kid runs out of ideas, give them challenges like a line-following robot or a FLL course.

Then move to a FreeNove Ultimate Sarter Kit. I prefer the Arduino Uno based kits, but the ESP32 kits have their place as well.

Depending on what you want to do, Bowler Studio is something you might want to play with.

It's a FOSS robotics software toolkit; you can model the entire robot and simulate nearly every aspect (including physics and servos and whatnot). Using it you can design, test, print, and assemble in a relatively nice fashion.

I mostly use BowlerStudio for 3D printing CAD stuff, but it does a lot, and since it's free I think it's worth playing with.

> but i know nothing of electrical engineering or robotics.

A few words of advice from someone who has been dabbling for a decade or so, but never really managed more than some half baked prototypes and a few kit builds. You need to consider these three trade offs: time, skill, and money.

Time: If you have a lot of time, you can learn what you need to learn to build a robot. Learn 3d modeling/printing to make a chassis (my local library has a 3d printer if you don't want to buy one). Learn how to piece together microcontrollers, motor controllers, BMS, and sensors, etc... And learn how to program everything to work together.

Skill: If you already are pretty good building things, programming, etc... you can leverage those skills. For a robot chassis, it can be done with things around your house, but you need to have the skills and a bit of creativity to make a good one. If you know the arduino ecosystem pretty well, you can pretty easily put together a prototype board, etc...

Money: You can buy a prebuilt chassis, or a board that has integrated motor controllers and BMS, etc... This will save you time and you will probably end up with a nicer end product than what you could build yourself. Of course the more you lean into this, the closer you are getting to a kit build robot. And FWIW, a kit robot is probably going to be cheaper than mixing and matching prebuilt components + some DIY.

Also, it kinda depends on what you want to do. Do you just want a little robot that drives around the house (cheap and easy). Or maybe does some line following (also easy). Or do you want a self-balancing robot, or a robot arm (a bit harder and more money). Or something really fancy like a self landing model rocket or a self driving lawn mower (expensive and difficult). You will probably want to start with the easy stuff first, just so you can get a feel for it. And then move up the difficulty ladder from there. But from my experience the time/skill/money trade off goes up fairly exponentially. Getting a half baked prototype for a simple rover is a weekend long project. But doing something really sophisticated or polished is months/years of effort (unless you want to drop some coin to speed things up). It is a fun hobby, but it does require a bit of investment before you start getting impressive results. If you think you and your kid are up for it, then dive right in. But if you think this might be more of a short term curiosity, then a kit or something similar is probably your best bet.

Robotics is sexy and there's no reason not to dive in, but I'd suggest also learning some of the fundamentals. Learning how control algorithms work is incredibly important and I'm thinking you could probably find some examples of building a simple application for a PID controller where your kid can directly manipulate the values and see how it responds. You don't need to go really deep into the math necessarily, just objective of each parameter and how they influence the behavior of the system.
Many of these comments are about robotics as it's taught now, focusing on code and cameras and algorithms and motion planning.

As someone who's built both BattleBots and Professional Robotics for work, BattleBots is a great way to get out of equations and hands on fabrication, manufacturing, testing, and scrappiness that is so hard to reach in mechanical and electrical engineering. And unlike FIRST or Lego robots, it's much more open ended and "guardrails off" engineering, which I found really freeing from the tyranny of academic-style competition robotics. You can still incorporate all the sensors and algorithm-stuff (many folks build their own motor controllers like "brushless-rage" or have sensors like Chomp), but if you just love seeing things move and love mechanical design, it's a great thing.

For BattleBots in particular, the easiest way to get into it is to find some guides online for a simple bot[1] with DC motors and a 3D printed body, and just enter it into a local combat robot competition! You'll learn the basics of a motor, speed controller, selecting wheels and other interfaces, as well as designing a chassis and fabricating it. At a competition you get the thrill of the fight, and afterwards you can sweep your robot scraps into a dustpan, make friends with other bot builders and go from there.

[1] A quick search on instructs Les and I found this, though there are many more great robot tutorials: https://www.instructables.com/Naked-Singularity-Beetleweight... . Here is one that overviews all the basic steps in a BattleBots https://www.instructables.com/How-to-design-and-build-a-comb...

The main issue with this is cost, few can afford the thousands it would take to build a competition bot like that.

However! I do think you could easily adapt it to a smaller embedded form factor and do like a beyblades style battle in a tiny arena.

Definitely agree about being hands on and open ended, the skills you learn will take you very far in engineering but also just in life!

I can't say I've looked into it in any detail, but I've seen 'antweight' and other extremely small/lightweight battle bot videos pop up on my youtube feed from time to time. Stuff that mostly looks 3d printed fighting in more or less an aquarium tank.
Idea: battlebots in a literal aquarium tank. If the bots were ships then they could be actually sunk, which is much more dramatic. This would also allow them to be made larger more safely. I see modified jetskis trying to destroy each other. (My money would be on the urkrainian team.)
This was how I started with my son, who was also 10. Have him learned Scratch from MIT, learn how logic is constructed in a program Then I got him a couple of Snap Circuit kit. I know you said no kit, but this is just to learn basic circuit and electricity flow. Then we used a Raspberry Pi to learn Python. Once he's comfortable with Python a bit, I set up an environment to program micro controller, specifically the ESP32. I flash Micro Python on there and we started to program some LED string lights. Then control motors with H-Bridges. After that, it's onto robotics and anything we can get our hands on. I repurpose a baseball pitching machine to launch pickleball, with bluetooth connectivity to boot! All with an ESP 32, I can control the speed and rotation of the ball, which the original machine only had one speed and no rotation. It took my son about 2 years to get from zero to building robots. Good luck!
Since you are a starting out from zero a sumo robot would be a good choice. It is a well known quantity at this point with lots of parts, simple rules, and very focused on the battle aspect. You can build two at once and program them against each other.

I’d do a web search for “sumobot arduino” and go from there.

There's a bunch of cheap kits on sites like AliExpress. I'd personally would love to just sit down and assemble a bunch of mini robots while learning eletronics and micro controllers
get a - roomba create 3 for 400 - arm built of dynamixel servos for 200 - camera for 100-500 (stereoscopic will set you back but its worth it) - nvidia jetson nano orin nx (500)

for about 2k, you can make a robot that can clean your house and is probably smarter than a dog/cat

Regarding the arm, are you thinking of a particular kit?

Those servos look really interesting, so you can read their position via a UART type interface? I've only played with cheap PWM servos before.

It depends on how deep you are able and willing to go. Getting 'something' to work is not that difficult, especially when all you end up with is essentially a remote controlled car.

But as soon as you actually want to build the thing you need to work out what your end goal is, how it is physically put together (lets call that the chassis), how it is going to mechanically move, how you are going to drive that movement and how you are going to control that driving method, and then how abstract it needs to do (are you telling it what to do, or telling it what end goal to pursue?).

Starting with Lego, or perhaps meccano will let you build the physical thing, maybe even have it move with a remote control. You'd get the plastic (Lego) or metal (Meccano) parts as-is and you build whatever you want. Add a two motors and you can drive wheels and steering. Add a receiver and a remote and you have your remote controlled vehicle.

Edit: fischertechnik is another brand that makes parts you can assemble in whatever way you want (some random YouTube Hit: https://www.youtube.com/watch?v=yVzK3VaYxS8 ), it apparently has something that also lets you go to PLC levels of robots controllers: https://www.rapidonline.com/fischertechnik-robo-tx-controlle... . This is of course not what you'd pick if you also wanted to build the entire controller.

But when you don't want that plastic or metal ready made, and you don't want modules that deal with motors or controllers for you, you now also need to learn some metal working, electronics (microcontrollers, RF transceivers, power management), and software (those microcontrollers won't program themselves).

Maybe starting with a kit isn't such a bad idea, and then going up a level at a time (i.e. tackle some of the software, or maybe mechanics) and getting to see the results of your work is a good thing, rather than trying to learn everything at once.

If NHRL is what you want to do then checking out an r/c airplane club and asking questions may be a way to get started. That's going to give you an idea on how transmitters, receivers with multiple channels and servos/speed controllers work.

Once you understand how transmitters/receivers work and what servos and speed controllers do then you can construct a chassis. The speed controllers would drive the motors moving the robot around and then a servo could open the valve on a flame thrower or something...

They key is understanding the radio control tech first.