The next CamJam (May 10th tickets are now available see this post for links) starts the journey for hopefully many people in creating a Pi controlled robot, which hopefully will be entered in the culmination of the journey the Pi Wars Competition at the December CamJam.
I've already started planning my entry for the Pi Wars and I will be making use of the workshops at CamJams to brush up my skills like soldering (hey I'm software not hardware).
Apart from the education track at the May CamJam (and you should be going along to this really) this build a Pi controlled robot is a great idea for a class project or after school club.
There are a few approaches that you can take with this project and several learning opportunities along the way. For instance there are several robotic kits on the market that contain everything that is required (except the Pi), some are inexpensive, while others cost more. Or you could go along the custom build route, where you source the parts yourself from the chassis, motors, wheels, sensors, etc. You could of course also modify an existing robotic device like a Bigtrak toy (see MagPi back issues for project details of using one to make a scutter [Red Dwarf reference] ).
The above options assume that you are going to use the Pi to rely on sensors to interact and move around the environment. But you could also build a Pi controlled robot that uses a game controller wirelessly to control direction and speed.
The advantage of this sort of project is that it combines skills. So there is the obvious electronics, soldering, robotic practical skills. But there is planning, and also the software programming skills required.
I'm not a big Scratch fan but using ScratchGPIO it should be possible to control your Pi controlled robot using Scratch. This isn't the ideal solution as Scratch is an extra overhead that would slow things down, but it does make the whole project open to a younger audience. So the trade off may be worth it.
The next programming option for the Pi controlled robot is the one I expect most people to go with and that is Python. Python is well supported, and the majority of examples on the net for controlling and interacting with motors and sensors will be in Python on the Pi, and I think all the kits come with examples in Python (I bet some-one will now find a kit that does not have Python examples/libraries). Other options of course would be Java, C/C++ and Arm Assembler. Theses will be able to communicate over the GPIO port, but the examples out there to look at are a lot less. At the end of the day it comes down to what language you are comfortable in, and can support your students in using.
Don't forget this project spans the last half of the academic year and the first part of the following academic year. So for the really keen student this gives them something they can work on during the Summer holidays too. And for those students keen to do this I would have some Pi's spare that can be used as loan units.
I think the guys at CamJam have come up with a great idea that will be a lot of fun to take part in, and a great fun learning opportunity for students. Hope to see you in the Pi Wars arena in December.
P.S. My personal entry is going to be a custom job, possibly with the software written in Arm Assembler.