Every robot needs some manner of propulsion system and usually this comes in the form of electric motors because they are the simplest and cheapest method of getting a robot moving. The main problem with the motor is that they require quite a bit of current to drive and this means the microcontroller needs to be isolated from these currents. To this some sort of motor driver must be created and thats what this section is all about.
This concept is from a good website Chucks Robotics and you'll find the main article here. I lost patience with is before I got it working perfectly (I was much happier with concept 2 below) but clearly his worked so I more than likely messed up somewhere. You'll find a little about it here and I'll hopefully return to it at some point and get it working.
I'm very happy with this motor controller, it seem's to be very reliable and very easy to control. It only takes two pins, one to control the direction and one to turn the motor on and off, that's two pins less than concept 1. I have a design for a 4 motor controller shown in this section so you can just modify it for your needs. You'll find the details here.
A stepper motor is a motor which contains a number of coils which can be individually powered. Energising one coil at a time in the correct order causes the motor to turn. This type of motor allows much greater control of the device as the number of turns can be counted and the motor can be stopped at an exact position. As a result these motors are used regularly in CNC machines to provide the accuracy needed for precision milling.