Lego Robots – Part 2
Posted February 21, 2010on:
I wanted to build this robot, but we just didn’t get that far. I’ll save it for my summer program at the community college. After midterm exams, we came back to the robots for a final two weeks of programming.
First up was the touch sensor. I liked this lesson, it added switch blocks (if-then) into the programming. We used it with the “follow the line” activity, but the training software told the kids what to do. This time they had to do it on their own. By now, the CMU software has become only a guideline and a reference for the kids. Their assignment was to teach the robot to move forward until it bumped into something. When that happened, the robot was supposed to stop, say “sorry,” back up a little, turn, and start over. This is actually an easy program, so while they were figuring this out, I build a maze out of textbooks.
Part two of this got tricky. I stopped class and explained how you can find your way out of any maze by simply hugging either the right or left wall. They had to try to get through the maze using the single touch sensor in the front. Only one of my students got this to work, and I actually gave him the method. I won’t give it away. Most of the kids got frustrated because the robot would enter the maze and just bump around aimlessly. I asked them to brainstorm a method of using two or more sensors to get through the maze.
The general solution was to add the ultrasonic sensor. Rather than add the sensor to the front, we added it to either the right or left side. The idea was to have the robot stay a certain distance from the right wall. But if it hit something while following the right wall, it would need to make a left turn and continue. This took a lot of trial-and-error for them. It required two switch blocks, one first for the ultrasonic sensor, then one for the touch sensor, both of them together in a loop.
I made this more interesting by changing and growing the maze each day and requiring that the robot must enter the maze from point A and exit at point B, then do it in reverse. This eliminated the possibility of somebody getting clever and just teaching the path to their robot. I made it a point challenge, 50 out of 50 for the fastest combined time, 45/50 for completing the maze in both directions, 40/50 for completing it in one direction, and 35/50 for trying until they ran out of time. Slackers got less, mostly 25/50.
The other final 50 point project was an ad campaign for a robot they had to design and market. The kids had to come up with a feature set and figure out who they would sell it to. They had 3 to 5 minutes to present their idea and tell us why their robot would solve our problems. After the presentation, we discussed what in their design existed today, how some of the technology was 20 years old, how some of it is so hard to do. I ended this with Michio Kaku’s new show How to Build a Robot. Final Project
So what did I learn?
- The CMU lesson software is a good starting point for a lesson, but I needed to add a timed point challenge at the end of each training sesson. I will use the CMU lessons in the future, but not rely on them alone.
- It’s really hard to put this stuff on a midterm exam. Best to not try and give them graded programming challenges every day or two.
- Keeping the kids out of the parts bins is a good idea as long as several classes are sharing the robots. Next year when I have a dedicated class, it won’t be an issue. But not letting them modify the robot beyond the guidelines of the lesson was the way to go.
- Number all the big parts to match the brick and bin.
- I started to have the kids delete their programs from the computer and the robot so others wouldn’t cheat. I don’t have a better way around that right now. I’d like to use USB drives, but we’ve had virus issues, so that’s not allowed. Ideally, LEGO will add password protection.
- Invest in some NXT books. I found a bunch on eBay and half.com and went crazy. If you are only purchasing one of them, buy the book “The Lego Mindstorms NXT Idea Book” by Boogaarts, Daudelin, Davis, Kelly, Levy, Morris, … . This is the book I wish I had before I started the course. It tells you how to do all those things you figure out a little too late, like making your own subroutines (it’s so easy) and how each of the sensors work (if you use more than one ultrasonic sensor at a time, they interfere with each other). Also, books by James Kelly have some good challenges based around a storyline. I think this would be a great way to introduce these robots to a middle school class. I have the Mayan Adventure, his newer one is called The King’s Treasure; I’ll be picking that one up as well.
- I will add the “My Blocks” early on. Next time, after the kids complete the first task of programming the robot to travel in rectangle, I’ll show them how they can make a single “My Block” for a 90 degree right turn and just use it rather than cutting and pasting 5 blocks for each turn. Hopefully, they’ll build their own library of additional blocks as the class progresses.
- Download videos of LEGO projects from YouTube. There are a whole bunch of different walking robots, Rubik’s Cube solvers, and an amazing Sudoku solver that you absolutely must see. I plan to show the walking robots to the summer kids and let them go on their own to design and build their own walking creation. The videos showed the kids the power of the “toys” they were playing with. I will show these and other short robot videos, perhaps one at the start of each class, in an effort to motivate them into doing more.
I was worried I wouldn’t have enough material for the kids to do this for 6 hours a day for a week. I’m pretty sure the projects and videos will make the summer session fly by. It should be fun to let them experiment and build on their own.