This is an Arduino application that implements a PID controller for a line-following robot. Unfortunately, special, custom-built robotic hardware is necessary to run this code, but it would be relatively easily adapted to any other robot with sensors and differential drive motors, and hopefully the code itself will serve as an instructional example.
This application was programmed by Nat Guy. The hardware that this demo uses was developed by Eric Schoof in the UW Rain Lab.