This is one of a series of posts documenting my approach to teaching robotics in a year 11/12 Engineering Design class. The students are 16- to 19-year olds and we typically have three ~90 minute classes per week.
One of my favourite challenges to run within the first few weeks of the school year is the Wave challenge. The building and programming is pretty straight forward so it serves nicely as an introductory challenge for any students who have just joined the class. Its main strength, however, is in having the class work together to solve a challenge collaboratively.
The challenge: Work together as a class to make all the robots perform a synchronised dance.
I normally frame this challenge by showing the class an example of another dance, such as the following video, and break it down into parts (much like the approach taken by Ian Chow-Miller as described in this post).
I was aware of this challenge for years before I used it with my students because I felt it was too simplistic. A few years ago, however, I had a class that wasn’t feeling at all collaborative, so needed a challenge that would encourage them to share ideas and help each other. I gave them the Wave challenge and it worked so well that I have used it every year since. Check out the sense of accomplishment displayed in the following video. And this was just from them getting the first part of the challenge working.
Although it’s not absolutely necessary, I would recommend having everyone build the same robot, so that you can focus on the programming. To that end, I have them all build the Robot Educator Model Driving Base (external link) and give the fastest builders something like the Figure 8 challenge to keep them occupied while we’re waiting for the rest of the class to catch up. See my previous blog post for more information about the Figure 8 challenge.
Going the Distance
The challenge (short version): Build and program a robot to drive as close as possible to a given distance, without overshooting.
The challenge (long version):
Daredevil Dan is preparing for a stunt that will be held on a 3-metre track. As Daredevil Dan’s stunt coordinator, your challenge is to build and program a robot car to drive as close to as possible to Dan, without knocking Dan over.
This is a dead reckoning challenge. You are not allowed to use any sensors to detect Dan.
You will have a time to practise making your robot drive various distances. At the end of the practise time, you will be told exactly how far from the starting line Dan will be. You will then have time to program your car, but you may not test it.
Once all the cars are programmed, they will take turns driving from the starting line. The car that finished closest, without knocking over Dan, is the winner.
Download: Going the Distance 2019 (PDF)
I usually frame this as per the long version and give the students a deadline. For example, “In 20 minutes I’m going to give you the distance that Daredevil Dan will be standing from the starting line. Until then you can do as much experimenting as you like. I’d suggest recording the results of what you try, because once I give you the distance, there will be no more experimenting. You will then have a few minutes to make any adjustments you like to your program, but you will only get one attempt at the given distance.”
Normally I don’t give them too much more advice than that. This year, however, I explicitly instructed them to record their results in a table of values. This seemed to make a big difference, both in terms of their confidence and their success. And, of course, this challenge provides a great opportunity to assess students’ understanding of linear relationships.
Here is a sample of the data collected from two different teams (click on each image for a larger version).
Some teams quickly came up with a rule (i.e. a mathematical formula) for converting a given distance into a number of degrees (or a time) to run the motors. I asked someone from each of these teams to come up to the front of the room and together we looked at how you could use the Math block in the EV3 Software to perform these calculations.
For example, using the formula that Team 2 determined in the data above, the program could automatically calculate the rotations required to drive, say, 1500mm (1.5m).
We then looked at how this could be converted to a MyBlock (see the image below). Note the use of the Constant block to create a parameter for the distance input. This isn’t strictly necessary with recent versions of the EV3 software, but I still like to do it this way to emphasise the values that we want a new MyBlock to take as inputs (and/or return as outputs).
You can find another variation of the Going the Distance challenge in this post.
And finally, if you’re feeling brave (or reckless!), instead of using a minifig or another object as the target, you could have the robots start a set distance from the edge of a bench/table with the aim of end closest to the edge of the table without falling off. Good luck with that. 😄
The Plan and the Reality
This series documents my approach to teaching robotics in a year 11/12 Engineering Design class.
- The Plan and The Reality 2: Ramping Up
- The Plan and the Reality 3: Wave to the Distance
- The Plan and the Reality 4: Research Task and Tallest Tower
Latest posts by Rob Torok (see all)
- The Plan and the Reality 5: Relay Race - 15 August 2019
- Line Following and Proportional Controls - 15 August 2019
- The Plan and the Reality 4: Research Task and Tallest Tower - 1 July 2019