We've spent a lot of time writing interesting programs for the 3pi robot. We've built a menu system into the 3pi that allows the user to select the program they want to run; this means that they don't have to re-flash a different program onto the 3pi every time they want to do something different. Each program is described and demonstrated in separate links below.
There's only so much you can do with the 3pi base model, so we've made a few expansions that allow us to do some of our more recent projects. Note that 3pis with the ATmega168-based controller don't have sufficient flash memory to run Project Tabletop. The 3pis we use have ATmega328P-based processors.
Line Follower: Since the 3pi was designed to excel at line following, no collection of 3pi applications would be complete without a line follower!
Fence: A very simple application where the robot is programmed to stay within a region of electrical tape.
Obstacle Avoidance: A sort of extension to the Fence program, where the robot does its best to quickly avoid regions of electrical tape.
Barcode Reader: Using the 3pi's IR sensors, we've developed a method for the robot to run a course and read messages encoded on it.
Grid Navigation: An interesting application where the 3pi uses a grid of electrical tape to navigate from one intersection to another.
Multi-Agent Grid Navigation: Involves multiple m3pi robots navigating on a grid, as commanded by a PC.