Ask HN: Best programmable robot for a child with SDK?

Author: itroot

Score: 59

Comments: 49

Date: 2020-10-28 14:57:44

________________________________________________________________________________

nwsm wrote at 2020-10-28 15:37:15:

LEGO Mindstorms is a really good line imo. Maybe higher level on the software side, but is great for what you're describing- getting beginners interested in coding through robotics.

matthberg wrote at 2020-10-28 17:22:49:

I would also highly recommend looking into local FIRST Lego League [0] teams, which are part of the FIRST robotics competition series yet targeted for younger kids. I got into FLL in late elementary school, though the age range accepts kids from pre-K through middle school [1].

FLL uses LEGO Mindstorms robots, while later FIRST Tech Challenge (FTC)and FIRST Robotics Competition (FRC) use metal/plastic parts. In FRC we used milling machines and CAD, big steps up from playing with LEGOs.

The FIRST programs are amazingly educational and fun engineering/programming experiences. I cannot recommend them enough. Going through FLL and FRC was life changing for me, getting me into programming and building teamworking and countless other skills.

[0]:

https://www.firstinspires.org/robotics/fll

[1]:

https://www.firstinspires.org/robotics/fll/what-is-first-leg...

valbaca wrote at 2020-10-28 16:13:03:

I got started on LEGO Mindstorms in high school (circa 2005).

At the time the fun thing to do was to have them navigate a maze. First an incredibly small and simple one; one that could be done by manually programming LEFT-RIGHT-FORWARD-etc. Then a more complicated one with walls (using the bump sensor) to show the left-hand algorithm, then one where the "walls" were tape on the ground (using the optical sensor).

All in all it shows that yes, you can program to do a specific task OR with some abstraction and algorithms you can solve every instance of a problem. All while teaching the basics of if-else-then, loops, etc.

hansvm wrote at 2020-10-28 16:23:51:

That was easily some of the best bang-for-their-buck my parents ever got. LEGO Mindstorms would keep me quiet and out of trouble for days at a time.

I'm not certain how much that influenced my interest in software engineering though, or even if it made learning traditional programming easier. I later had a few c++ courses in high school, and as I recall most of my struggles were with syntax errors (not discounting those in the slightest because I made a _ton_ of them) and whatnot rather than some kind of broken control flow, and I remember that not being the case for all but two of my classmates, so it does seem plausible that some of the Mindstorm lessons stuck around or shaped how I think about such things.

formercoder wrote at 2020-10-28 15:57:11:

Back on the original yellow brick you could hack it and write something like C++ for it IIRC. Not sure about the current generation.

9wzYQbTYsAIc wrote at 2020-10-28 16:02:47:

NXC you could use c++ or Java with a little work. Probably the same or easier with the newest generation

neuronexmachina wrote at 2020-10-28 16:04:56:

The EV3 actually supports MicroPython:

https://education.lego.com/en-us/support/mindstorms-ev3/pyth...

NoZZz wrote at 2020-10-28 18:43:24:

It had NQC (Not Quite C) available for it.

miskin wrote at 2020-10-28 15:54:51:

For smaller kids, Lego Boost is quite nice, too.

tmaly wrote at 2020-10-28 15:40:48:

I would highly recommend the microbit driven cutebot.

You can use block based programming which I find is much easier to get kids started on.

There is even a Scratch interface for microbit, if you want to start a little slower. A new version of the microbit is coming out in November. You can do quite a lot with the new version see

https://news.ycombinator.com/item?id=24763120

nickloewen wrote at 2020-10-28 15:55:18:

I also recommend the cutebot. It's available from adafruit:

https://www.adafruit.com/product/4575

The micro:bit itself is the ideal "physical thing that is controlled by your code" and it is indeed very fun. The cutebot is a great place to start but you might want to consider getting some other bits and pieces too. There are all kinds of breakout boards that will provide servo control, relays, etc, and any of those would multiply the fun you can have. Maybe browse some of the prebuilt kits to get some ideas.

The micro:bit also has a built-in radio. It can do Bluetooth Low Energy, but it can also do a micro:bit specific protocol that's easier to use and less memory hungry. So getting two micro:bits opens up a whole bunch more opportunities, too. Last weekend, for example, we turned the cutebot into a remote control car by using the accelerometer in the second microbit to create a wireless steering wheel.

tmaly wrote at 2020-10-29 03:27:57:

I never thought about the blue tooth aspect. I could picture some interesting projects now.

I am also looking forward to the microphone on version 2. Voice control will be fun for kids.

jacknews wrote at 2020-10-29 04:36:05:

Also the very similar Micro:Macqueen:

https://www.dfrobot.com/product-1783.html

gberger wrote at 2020-10-28 15:52:06:

Your child came with an SDK? :)

nwsm wrote at 2020-10-28 16:00:09:

At first I thought SDK was a condition their child had.

petargyurov wrote at 2020-10-28 16:52:00:

Zero documentation however!

danilocesar wrote at 2020-10-28 17:10:54:

zero documentation, identical deployments are never the same and leaks are a known issue until it reaches some maturity level.

gumby wrote at 2020-10-28 17:40:08:

TBF it comes with a high degree of autonomy out of the box which takes only a few weeks to boot.

Jaruzel wrote at 2020-10-28 15:59:41:

Wow, I wish mine had. Life would have been much easier if I could have upgraded her, and fixed all the bugs.

spzb wrote at 2020-10-28 16:51:37:

I'd just be grateful for access to the volume control

gumby wrote at 2020-10-28 17:42:06:

"No JTAG. Only two cameras. Lame"

itroot wrote at 2020-10-29 08:30:29:

:-) it will be nice from some point of view...

huhtenberg wrote at 2020-10-28 16:53:15:

Yeah, but the stock firmware was pretty basic.

gumby wrote at 2020-10-28 17:41:56:

Also halting the process for debugging (or other) purposes is strongly discouraged.

ssheth wrote at 2020-10-28 16:40:50:

Dash Robot is a fairly popular robot used in schools for kids.

They have flow-chart style programming but also support various SDK's..

They have support for Python and Swift:

https://www.makewonder.com/blog/dash-dot-and-cue-arent-just-...

https://www.makewonder.com/apps/

geophile wrote at 2020-10-28 14:59:39:

Is the child programming the robot, or the robot programming the child?

joubert wrote at 2020-10-28 15:02:59:

Both.

detaro wrote at 2020-10-28 16:44:38:

pair programming!

whatrocks wrote at 2020-10-28 15:42:14:

I've had some fun with Cozmo by Anki, with the caveats that the company recently went under and the required local wifi setup with your phone and the robot is incredibly clunky.

But I did manage to train a computer vision model using photos taken by the robot:

https://www.charlieharrington.com/teaching-my-robot-with-ten...

xs83 wrote at 2020-10-30 03:32:43:

I started with LOGO and a turtle on the floor that drew stuff on paper. That was 30 odd years ago now (That makes me feel old....).

I have tried scratch and a few others but nothing really gave me that "aha" moment that I had with Logo from a very young age.

anfractuosity wrote at 2020-10-28 16:01:56:

I got this one -

https://www.makeblock.com/mbot/

which is programmed using a Scratch fork. It was a little bit tricky to get connect at first in Linux, but seemed to work pretty well once I sorted that. It has got an ultrasound distance sensor and line following sensor.

I saw this recently -

https://www.kickstarter.com/projects/petoi/bittle

which I thought looked awesome, but a bit pricey for me at the moment. It seems to also have a graphical coding environment.

rihegher wrote at 2020-10-28 15:49:24:

Thymio is a good starting point especially if your kids like to build things with Lego blocks since you can attached some on it.

https://thymio.org

blacksmith_tb wrote at 2020-10-28 18:12:30:

That's interesting, form-factor is close to the Edison[1] which I have been looking at also, but the Thymio has some extra sensors, I see. Price is steep though!

1:

https://meetedison.com/

saluki wrote at 2020-10-29 15:42:42:

Another vote for Lego Mindstorms.

A new set just came out so you might be able to pick up the previous one at a discount.

Another vote for First Lego League, they have a few age tiers, if you can't find a team to get on consider making your own team, we had a blast.

pkpcmu wrote at 2020-10-28 17:25:50:

BBC's microbit is an awesome start - my daughter loves it!

tommilukkarinen wrote at 2020-10-28 16:02:33:

We had this:

https://sphero.com/collections/all/products/sphero-sprk-plus

Good about this: 1. easy to get started 2. kid can really do programming by herself 3. fun so you are likely to get it out more than once 4. programming happens with the phone, so your kid might already have the computer needed 5. feels high quality

WillPostForFood wrote at 2020-10-28 16:29:17:

You mentioned Sphero, and it us a good choice. The hardware is solid, well documented, and there are a ton of language options. Ruby (via Artoo) is a really easy way to introduce text based programming.

http://artoo.io/documentation/platforms/sphero/

codegeek wrote at 2020-10-29 13:39:56:

My 7 year old got "Botley the coding robot" for her birthday and it was fun programming it. Wasn't real coding as in typing code but it taught how to program with logic.

claudiulodro wrote at 2020-10-28 15:40:12:

If you're looking for the "professional" quality ones, I believe Lego Mindstorm is probably the way to go. That's what schools use.

If you're just looking for something simple and fun to expose your child to concepts, something like a Code-a-Pillar, programmable R2D2 toy, or any of the dozens of similar products would work fine.

goatcode wrote at 2020-10-29 15:03:59:

Children with SDKs? Science has definitely gone too far.

idealstingray wrote at 2020-10-28 17:18:12:

A few other comments have mentioned the LEGO Mindstorms system, which is a great choice if you don't want to deal with hardware. If you go that route, I would strongly recommend using ev3dev [1] in order to avoid the LabVIEW-based programming language LEGO provides. You can get pretty far in the Mindstorms system, especially if you avoid LabVIEW; my biggest Mindstorms project was a 1v0 tabletop soccer robot using a subsumption controller. I will also note that if you're planning to teach controls at all (PID controllers are easy to implement, and are often used for controlling motor speed), Mindstorms can't really achieve a tight enough control loop; go with an Arduino-based system instead.

If you want something a little simpler than Mindstorms to get started with, you can also get a robot that holds a pen and is programmed in Logo [2]. Logo was designed as a language to teach programming to children, so it's very easy for kids to get started, and drawing on big sheets of paper with a pen immediately gives them the feeling of "doing something".

I would encourage you not to be scared of hardware :) You can build a lot of fun robot projects with cheap motors (you don't necessarily need servos), bump switches, and a cardboard-and-hot-glue chassis, using pretty simple circuits. The two classic beginner projects are wall-following and back-and-turn. At its simplest, a wall-following robot can use a switch touching the wall to control which of two motors turns on. A back-and-turn robot is a robot that backs up and turns in a different direction when it encounters an obstacle (and, if you leave it running long enough, will tend to escape whatever room you put it in). To avoid soldering, you could get started with a solderless breadboard (although make sure the wires don't get jostled out of place by robot collisions or falls).

It sounds like this is probably more advanced than your kids are ready for, but you could also get a Neato robot vacuum cleaner and control it with a Raspberry Pi running ROS [3] [4]. ROS (Robot Operating System) [5] is a very popular framework used by both professional robotics engineers and hobbyists; it's not the most beginner-friendly, but is useful for more advanced robotics software projects, and there's a large ecosystem of ROS packages for things like teleoperation and path planning. Neato vacuum cleaners specifically are great for this because they include a LiDAR, which lets you try out the SLAM and path planning packages provided by ROS.

[1]:

https://www.ev3dev.org/

[2]:

https://www.terrapinlogo.com/robots/probot.html

[3]:

https://www.servomagazine.com/magazine/article/neato-ros-rob...

[4]:

https://github.com/SV-ROS/intro_to_ros

[5]:

https://www.ros.org/

grillvogel wrote at 2020-10-28 17:23:44:

is it weird that i don't really want to push my kids into tech?

itroot wrote at 2020-10-29 10:02:22:

I also do not want to push... I just want to play with that robot by myself, and see if kid will be interested to join. It's just fun thing to do!

pkpcmu wrote at 2020-10-28 17:28:20:

not at all .. I want to get into trades part-time and would not want my kids to get stuck in this rut!

curiousgal wrote at 2020-10-28 16:03:54:

Must be tough raising a child that suffers from SDK.

Subsentient wrote at 2020-10-28 16:15:37:

This was my first thought as well. :^)

disown wrote at 2020-10-28 16:54:53:

The skeptic in me wonders if this is just an advertisement campaign for "programmable robots".

I want to show my kids what you can achieve with software development

Have you tried a simple "hello world!" program? That did wonders for me.

and I think dealing with some physical thing that is controlled by your code is incredible fun

Something physical that is controlled by code? You mean something like a computer maybe? Have you tried setting them up with a linux desktop? Just messing around with the terminal was fascinating enough for me. You type something and this machine responds. Woah!

It seems like you want a toy for your kid? A child will turn anything you give them into a toy. I can't think of a better toy than a desktop computer.

xondono wrote at 2020-10-28 17:32:20:

To a lot of people, what happens in a screen is just “stuff”. They can see “stuff” happening when they play videogames too.

Having something touchable that moves according to what you told it to is very captivating for some people.

disown wrote at 2020-10-28 18:12:28:

> Having something touchable that moves according to what you told it to is very captivating for some people.

To most people, it's "stuff" too.

Also my response was in reference to children learning software. Not mindlessly clicking guis. Writing, compiling and running "Hello World!" isn't "just stuff".