Handy how to for getting started with DC motor control – “This article explains the basics of how to get your motor to give feedback to a microcontroller and then control the speed of the motor with a good deal of precision (well… good enough for our robots). You can select any speed you want the ‘bot to go and it will try to go that speed – even if it runs into difficult terrain. It will apply more power when it senses a slow down and the power will continue to be increased until the wheels turn at the selected speed (or until you run out of battery juice). In fact, it is quite interesting to command the robot to turn at a low rpm and then watch it crawl very slowly across the carpet. If you put your hand on it to stop it, it ‘hunkers’ down and starts pushing harder until you let it go. It then quickly settles into its slow and straight crawl.” Link.