Showing posts with label kids. Show all posts
Showing posts with label kids. Show all posts

Sunday, May 12, 2019

Teach Kids to Code with Code Battles

Credit: LucĂ©lia Ribeiro Flikr 

Background

As a tech nerd, finding good cell phone games can be challenging. But every once in awhile I find some real gems. One of my favorites is called lightbot. It uses a fun game to teach the general concepts of programming or coding. In general I'm a huge fan of video games. Some gaming behavior can actually "rot" your brain while other behavior has benefits. (I was going to post articles and references, but there's a ton of stuff out there. Do your own research).

I try to find games for myself and my children that provide both entertainment and growth. I think lightbot fits that goal. On another day I was hunting for "building" games where you build some type of machine and then use it to compete against other players. There are several good ones out there, and we play more than one. One we play intermittently is called RoboCraft. During my search I found a programming game (maybe it was Robocode?) where you build the behavior of a robot using code and compete against other players to see whose code is best.

I instantly thought this would be a great game style to teach kids how to program. But the code was too advanced for children. When I see a good product that needs to be adapted to another audience is almost always when I have my ideas.

The Idea

Create a competitive game that teaches the basic programming to children by using modular, graphical code blocks. My basic vision is two robots that compete using behavior that is programmed by the kids. The code blocks each contain specific behaviors like movement, sensing and actions. Some of the blocks would be routines or loops.

For the case of robots, you could have the robots perform some type of task, like moving a ball into a designated goal. The first robot to complete the task wins. So your movement actions could consist of turning and moving forwards. The sensing actions could be detecting a ball in an adjacent square, detecting if the robot is holding the ball, and detecting when the robot is in the goal. Actions would consist of picking up and dropping the ball. One example of a routine would say, "Am I holding a ball? If yes then find the goal, if no then find the ball. Then you would build routines for finding the ball and finding the goal. The person who builds the best routines would accomplish the goal the quickest.

Instead of robots you could have a tank battle. The movements, sensing and actions could be modified for that scenario.

The difficulty could also be modified for different age groups. For younger audiences the code blocks could be high-level and entered sequentially, exactly like lightbot. For intermediate audiences you could make the code interface more like Scratch where the blocks are more granular, and kids have to pick specific settings. And in the most advance version you can expose the actual code like JavaScript. Another way to add complexity is to add additional moving, sensing and action options. Movement could be up down left right and player movements are restricted to a grid. In an advanced model you can include rotate right, rotate left, move sideways and remove the grid for continuous movement. For simple tanks you could control movement and direction of the turret separately from movement and direction of the tracks. The scenarios and variety are limited by creativity and resources.

Progress

2019-05-12

Has it Been Done Before?

I originally had this idea years ago. I did not see anything back then. But there is tons of cool stuff happening rapidly in this space. I haven't found anything that is exactly like lightbot and suitable for entry level audiences or young children. There are some great options now for older children that are comfortable using Scratch.

Tynker has some great options on their "Hour of Code" page. I played some of the games, and they are great for computer-savvy young children up through old children. It uses a Scratch interface and is a perfect example of different action blocks. However, I didn't see any competitive games, and the price is a bit much. If they continue expanding their offerings I could potentially buy into their program. If you are a technical parent, then you can just go to Scratch since I think Tynker is based on Scratch.

Side Note / Pro Tip: Once you find something you like, you can Google for similar things. The two key phrases I use to accomplish this are, "alternative" and, "similar to". As an example, when I googled, "Tynker alternatives" I found "Grasshopper" which looks good for older kids, "Coding Planets" that looks similar to lightbot, "robo garden" which is free but kludgy, and finally "ScratchJr" which is a new-to-me app from the Scratch team. I like the code blocks in ScratchJr, but the objectives are not intuitive and will require guidance from a parent to get them going.

Another item I found by Class 42 is Robot Rattle. There is some voice instruction which I think is helpful for kids or when things are not intuitive. But good game design doesn't require it. Just look at Super Mario Bros Game Design for a perfect example of good design.

There is a super-cool RPG game done by "CodeCombat." It is marketed towards deucators, so I'm not sure on pricing. The demo I tried dumps you straight into Python or Javascript without much instruction. I'm guessing the educators package provides the necessary instruction, but the game could have easily been designed to include the instruction. While it's a fun option, it's not exactly what I was envisioning. I still suggest it for older kids or educators.

So I haven't found anything that fits my specs yet. There are several other potentially good options out there, but most of the ones I found are hidden behind registration walls. My purpose here is not to review everything out there, just to share what I think is needed and see if anything already exists. So far the answer is NO. Close, but not quite.

Sunday, April 7, 2019

Robotics Dev Kit for Kids


Background

If you read my other posts you'll know that I enjoy doing engineering projects with my kids. At home and at school they have played with some basic coding programs. My oldest son and daughter both expressed interest in programming as a hobby; my daughter is interested in astronomy, and my son is interested in robotics. They've played with scratch at school and dabbled in code academy. They have both lamented that the step between the kid programming games and real programming is too big and wish they had better stepping stones.

In a totally separate channel, I was riding on the train and thinking about introducing children to technology in ways that will KEEP them interested and engaged as they continue to grow.

From these two thoughts I wished that there was a robotics kit geared for kids that would provide a fun way to learn the basics of programming, but also incrementally unwrap the graphical programming methods to help them learn the underlying code structures.

The Idea

A robotics kit for kids with modular, easily connectable components and a coding interface that provides varying levels of difficulty.

Regarding the connectable components, I think Lego Power Functions is a perfect example of electronics that have pre-defined functions and can be built however you want right out of the box. They just work and don't take tons of soldering or programming to make something work. But Power Functions fall short when it comes to altering the behavior of the modular components. I think this is an essential part of programming robotics.

You might think that Lego Mindstorms is the answer. When I first had this idea, the answer was a definite NO. In my opinion the programming interface had a high learning-curve for younger kids. I think it is much better now, but the next strike against Mindstorms is the price point. I just think the $200-$400 price point for a single kit is too high of an entry point for most families who want to pursue this as a hobby, and whose kids may end up being not so interested.

As far as the programming interface, I really like the approach taken by the Scratch team. My kids have used it for silly projects and found it enjoyable. But they never learned how to dig into the code that underlies the little building blocks. So this robotics dev kit would provide that functionality to let them learn progressively more involved coding while learning how to control different properties of motors and sensors.

Progress

Has it Been Done Before?

Let me just say that we live in an amazing time in history. I love that people like me can have ideas,  share them publicly, and get the support from their peers to release a product to market, nearly risk free. And there are so many smart people who recognize a need and are willing to take various approaches to provide a solution.

There are some great options out there now that I would consider buying. If you combined the best features of the three below kits then you would obtain my ideal product!

1) Root Robotics

What is it?

  • A pre-built robot with controllable behaviors and a programming interface with increment difficulty.

Pros

  • Easy to use
  • Fun
  • Three levels of programming difficulty
  • Teaches real programming
  • Multiple programming languages
  • Good for educators
Cons
  • Limited ability to customize hardware
  • Best used on a large whiteboard


2) Mabot

What is it?

  • A plug-and-play, programmable robot.

Pros

  • Modular components can be hot-swapped
  • Plug and play
  • Simple programming interface
  • Compatible with Legos
  • Expandable
  • Good for young kids
Cons
  • Full functionality requires a tablet
  • Proprietary, limited programming interface


3) ROKit Smart

What is it?
  • A robotics kit based on the Arduino development board.
Pros
  • Standard electronics platform means nearly limitless expansion potential
  • Teaches full-fledged robotics programming on Arduino
  • Online lessons provide varying difficulty and project examples
  • Good for older youth
Cons
  • Programming interface requires installation and configuration
  • No graphical programming for younger audience
  • Not plug-and-play. Requires advanced ability to read and follow directions or an experienced teacher.

Sunday, July 19, 2015

Kids Project: Vibrobots


It's pretty cool what you can do with stuff you already have laying around. Once again, Lewis showed me a book of robotics that had some pictures of vibrobots. These are small robots that move using vibration. All it takes is a "AA" battery, a vibrating motor, some wire and hot glue. We used other junk electronics I had laying to add features to our bots. You could use motors from a pager, cell phone or RC car, but mine came from a pair of defunct Xbox controllers.

Lewis was the traditionalist and went with a vibrating bug. Nate and Corinne went with animals near and dear to their hearts, a dog and cat respectively. Lydia pushed her creativity and came out with a dancing frog. All told this took us the better part of a Saturday morning.

These don't stand up well to abuse, and I've re-glued the precious cat multiple times. I dread the battle that awaits when the battery dies...


Kids Project: Rubber-Band Cars



Here is a project we did several weeks ago that put huge smiles on the kids' faces. One day Lewis brought home a book from the school Library called, "Amazing Rubber Band Cars" by Mike Rigsby. He was very excited about making some of the cars from the book. So one Saturday we sat down and copied a basic template from his book and came up with our own design. Below are the results.



We used hot glue for nearly all of the construction, but found that you needed glue on both sides of the tires to make them durable enough for kid use. We also had to play around with the rubber-band size and spacing since our rubber bands obviously differed from those used in the book. The cars withstood quite a bit of abuse and got used periodically throughout the following weeks. I love projects that keep the kids entertained for more than an hour.

Saturday, May 30, 2015

Kids Project: Pop Pop Boats



This weekend we decided to make our own pop-pop or putt-putt boats like the one in the movie Ponyo. We followed the directions from Science Toy Maker: http://www.sciencetoymaker.org/boat/


It took a couple hour-long sessions to make the pop-can flash engines. Luckily all four engines worked on the first try. Some were obviously more powerful than others. We also learned that the smaller, lighter boats go faster. The foam used for the hull is rigid extruded polystyrene made by Dow that we picked up form Lowe's. Thick, but stable enough to hold the boilers without additional weights.


Tuesday, January 27, 2015

Water Rockets

Intro

One day in the church parking lot, while waiting for an activity to begin, my step-brothers pulled out a bike pump and a soda bottle half filled with water. The lid of the soda bottle had a hole drilled inside with a bike tire stem poking out. They attached the pump to the bottle and pressurized the contents. Finally, one of them pointed the bottle up in the air and removed the cap. It rocketed out of his hands spewing water everywhere. That was my first introduction to water bottle rockets.

As kids we never took that principle any further. It wasn't until college when I learned that some people get very serious about building complex launchers and rockets. For me it has become a fun summer pastime, but not a serious hobby. I mostly enjoy launching rockets as a way to spend fun time with my children.

My Rockets

My first rocket no longer exists. I shot it so many times that the plastic got weak from landing and it exploded during pressurization. So unless you have a soft recovery system, I recommend retiring your pressure vessel after about 20 launches.

"Red Rocket", my second rocket, is a two-liter bottle with fins stolen from a firework. The nosecone is a Nerf football cut in half and hollowed to the correct weight. The fins and nosecone are attached by duct tape to allow fast repairs and relaunches. I've found duct tape to be very reliable and convenient in withstanding launch forces. These fins are too small to be really effective, so I'll probably replace them soon.
My family at the engineering competition, me holding "Red Rocket."
My family at the engineering competition, me holding "Red Rocket."

"One Night Wonder", my third rocket, was designed for an engineering competition at work. I procrastinated the build until the night before the competition. The nose cone was 3D printed, and I invented a circular fin that extends on launch. This system allowed the rocket to be fired from virtually any launcher design. With only a single good launch my rocket won second place for height, and first place for closest to target. The fin extension system used short sections of drinking-straw as linear bearings. The straws were cheap and thin and failed on the second launch. The design is sound and one I will duplicate with stronger materials.
"One Night Wonder" Maiden Flight
"One Night Wonder" Maiden Flight

"One Night Wonder" Maiden Flight
"One Night Wonder" Catastrophic Second Flight

My Launcher

I'll add a picture soon. You can find instructions on how to build a similar launcher from The King of Random. Or you can buy a kit from the Taylors. My current release mechanism uses a Clark Cable-Tie Launcher.

Useful Links

  • Dean's Benchtop - Dr. Wheeler was one of my professors and bosses in college. He is the one who re-introduced me to the world of water rockets.
  • Air Command Water Rockets - Lots of resources and tutorials.
  • Clifford Heath's Simulator - I don't know Clifford, but he wrote a nice simulator for modeling different rocket design parameters. I've found it to be reliable for making design choices. It also allows you to change launcher and nozzle parameters.
  • It's a Blast! - The Taylors were our neighbors while I was in college. They introduced me to the world of paper rockets. The pneumatic system I use for launching my water rockets is based on their launcher design.
  • 3D Printable Rocket Parts - Here are some water rocket parts that you can print with a 3D printer. I used a nosecone in the engineering challenge.

Thursday, November 27, 2014

Arduino Decibel Alarm for Noisy Kids

Background

My wife and I are night-owls but our children are early risers. We used to get up with them every morning, but have slowly trained them to do their morning routine by themselves. The only problem with this arrangement is when the kids decide to reenact "Lord of the Flies." They can get very noisy, interrupting my precious sleep. I get really cranky when I haven't had enough sleep. The kids are very responsive when I tell them to be quiet, but they quickly return to their activities and resume their loud volumes before I can drift back to happy land.

If my wife or me sits down with the kids and constantly reminds them to be quiet, then they do pretty well. But then only one of us gets to sleep (usually me). I just wish there was some kind of electronic babysitter that could tend the to the kids' volume during that hour between six and seven in the morning.

The Idea

Use an electret microphone on an Arduino to listen to the kids as they play. When their noise level goes too high then it will trigger a recorded message that will encourage the kids to be quiet.

This could be used in multiple ways. If noise a single, short noise spike is detected (like a shriek) then it could play a nice recording of Dad saying, "Remember to be quiet kiddies." If the volume is steadily rising it could say, "Hey, your getting out of control, time to do something more quiet like reading a book." Finally, if the volume stays steadily loud it could play something truly frightening.

Progress

11/27/2014 - I've got an Arduino, and an SD card kit that can be used to play MP3 files. I just need to find a suitable speaker and microphone. Instead of a speaker I've got an FM transmitter that can be connected to the Arduino and I could turn on the radio to a blank channel. I think a speaker would be easier, and more portable.