RoboCamp - We Teach Kids to Build and Program Robots!
This RoboCamp was the largest so far. Several levels were offered:
- Beginner
- Building (from instructions)
- Mechanical Design (from imagination)
- FIRST Lego League missions (not attempted)
Unlike previous RoboCamps, higher level classes were offered concurrently with the beginner class. Unfortunately, this didn't work out so well. Some of the beginners were distracted by the more imaginative free building going on in the more advanced classes. It was also very difficult for the instructor to try to keep the more advanced classes on topic, as the beginners are always so demanding. We learn lessons at every RoboCamp, and make improvements for next time.
Beginners
The beginners course was run twice: Mon-Tue and Thu-Fri.
We started off just getting our robots moving around the floor. How hard can it be to get a robot to move exactly 1m forwards along the floor? Harder than the students thought! And as for getting your robot to turn 90 degrees exactly, thats tricky too! Put together 4 sets of those, and the robot drives in a square. Except there are always errors that prevent your robot from returning exactly to where it started from.
Moving on, we attempted BumperBot. This program drives the robot forwards until it bumps into something. Then the program backs up, turns around, and barges off somewhere else. BumperBot is always a good opportunity to introduce reacting to a sensor, in this case, the bumper switch. The students also enjoy making their robot make sounds when it hits something - this part of the lesson gets noisy as the students experiment with the pre-recorded sounds and even learn to record their own sounds.
Line following comes next. A colour sensor is attached to the front of the robot, and we look at what it reads on black and white surfaces. The students learn about making decisions based on the reading of the colour sensor, so that their robot can follow a line. You can see plenty of this going on in the video. At RoboCamp, the students program their robots to follow the line. There are no remote controls, except for remotely downloading a program that the student wrote! Then the robot behaves autonomously, that is, by itself.
The line following exercise has plenty to keep the students busy. They have to cope with various curve radii, and tune their program so that it doesn't drop off the line on sharp corners! (See the video.) We always try to get the students to have a race to see who is the fastest, but that seems to be hard.
The colour sensors are also important for keeping the robot in the sumo circle, so we get out the sumo circles and get the students to make their robots bump off the black edge of the circle. Its a bit like BumperBot, but with a different sensor.
On the second day, we fit ultrasonic sensors to our robots to measure the distance to walls. The first exercise is to try to drive parallel to the wall by following it. This is a little bit like line following, but must be coded differently. The program must do some computations on the distance before it can decide whether to turn to the left or to the right.
The maze requires that the students bring together various skills that they have already mastered. The beginners have become more confident by this stage, and the maze problem is set in fairly loose terms, without providing examples. The students review their past work and start to draw together elements from previous programs to guide their robot through the maze and out the other side.
The second batch of beginners were very disciplined about staying to the course, and got up to solving the maze with time to spare on Friday afternoon. This led to the sumo match, which is described below.
Building
The building students worked on a few projects. The first one was a robot arm, built from the instructions. This arm was programmed to grip a wheel hub, from a particular location, to pick it up and move it to another location. You can see it in action in the video below.
After that, a more open-ended building project was attempted. The problem was set to create several modules forming a Great Ball Contraption (GBC). A GBC passes balls around in a loop, from one module to another, in the most over-complicated way possible. The instructor provided one module as an example. A couple of students worked on this problem, and created two modules based on the track pieces. Unfortunately the modules didn't loop around to connect the output back to the input, and reliability was an issue. This building project will be attempted again another time. This is harder than it looks!
Sumo Match!
With about 2 hours to go on Friday afternoon, and having completed the beginners material, I set all of the students to creating sumo robots and programming them. What do you get with 2 hours work? Very simple sumo robots. The programs can't find the other robot; they stumble across them accidentally. A search and destroy program is more complex and takes more time. However, the whole group worked enthusiastically, and some very original ideas were displayed.