Sean Hodgins designed this open source balancing robot to help teach PID control:
The PIDDYBOT is currently using a Atmega32u4 microncontroller. It uses 3 potentiometers that allow you to manually tune the PID loop to get the robot balancing. This allows you to see how each term affects the performance of the system. It is a great teaching tool for the classroom and is currently being used by students at McMaster University.
The design files and source code is available on GitHub: