Step 7: Motor Controller
So I chose the Sparkfun Motor Driver: http://www.hvwtech.com/products_view.asp?ProductID=1266
You can also use the Pololu Motor Controller, but it is expensive: http://www.hvwtech.com/products_view.asp?ProductID=915
Wiring the Motor Controller is quite simple. The instructions included with the controller you choose will have labels for each motor's + and -, as well as the 2 channels from the microcontroller. Motor Controllers are called HBridges, and buying assembled ones will save you a huge hastle in making your own.
You may do a google search on HBridge to read more about them. Simply put, they are a collection of transistors that allow you to control the direction of a motor via logic lines.
Also, if you are using the OmniBot .Net source code, you wlil notice there is an ADC Port for monitoring the motors. The motor controller I chose does not have a Voltage Load pin, but you can get around that. When the motors are under a lot of strain and load, a tiny bit of positive current wll be detected on the GND feeding the motor controller. You will want to monitor the GND with an ADC connection directly at the motor controller to be accurate.
When the monitoring software notices a teeny tiny bit of positive voltage (caused by a short) on the GND at the motor controller, the routine stops the robot, backs up, looks Left and Right, turns in the direction of freedom.