💾 Archived View for dioskouroi.xyz › thread › 24919475 captured on 2020-10-31 at 00:48:00. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
________________________________________________________________________________
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.
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...
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.
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.
Back on the original yellow brick you could hack it and write something like C++ for it IIRC. Not sure about the current generation.
NXC you could use c++ or Java with a little work. Probably the same or easier with the newest generation
The EV3 actually supports MicroPython:
https://education.lego.com/en-us/support/mindstorms-ev3/pyth...
It had NQC (Not Quite C) available for it.
For smaller kids, Lego Boost is quite nice, too.
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
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.
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.
Also the very similar Micro:Macqueen:
https://www.dfrobot.com/product-1783.html
Your child came with an SDK? :)
At first I thought SDK was a condition their child had.
Zero documentation however!
zero documentation, identical deployments are never the same and leaks are a known issue until it reaches some maturity level.
TBF it comes with a high degree of autonomy out of the box which takes only a few weeks to boot.
Wow, I wish mine had. Life would have been much easier if I could have upgraded her, and fixed all the bugs.
I'd just be grateful for access to the volume control
"No JTAG. Only two cameras. Lame"
:-) it will be nice from some point of view...
Yeah, but the stock firmware was pretty basic.
Also halting the process for debugging (or other) purposes is strongly discouraged.
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/
Is the child programming the robot, or the robot programming the child?
Both.
pair programming!
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...
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.
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.
Thymio is a good starting point especially if your kids like to build things with Lego blocks since you can attached some on it.
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:
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.
BBC's microbit is an awesome start - my daughter loves it!
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
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/
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.
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.
Children with SDKs? Science has definitely gone too far.
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]:
[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]:
is it weird that i don't really want to push my kids into tech?
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!
not at all .. I want to get into trades part-time and would not want my kids to get stuck in this rut!
Must be tough raising a child that suffers from SDK.
This was my first thought as well. :^)
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.
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.
> 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".