Here is a prototype line following robot we are working on for our new engineering curriculum. It uses an arduino but the final production will be a straight AtMEGA328 on a custom board to keep cost down, programming done via SPI. Just a xtal couple of caps and a v-reg a stripped version of the arduino. I am using the QRD1114 Reflective Object Sensor, initial test indicated work best about .05" above floor sensing electrical tape against a white background, speed is about 10 feet in 3.2 seconds at 9 volts. Got one channel and one PWM working to test viability, works great got it running full steam when over a black surface and stopping when hitting a white surface. Next step I will get three channels working with two PWM to steer.
Problems ran into so far:
Used wrong FETs to drive motor, was using N-CH should have been P-CH DOE! Changed wiring to break ground instead of plus rail, used IRFZ44. stupid oversight should have caught that.