by TeamJaeger @ instructables.com:
I’ve used this simple circuit several times to drive motors (like in my Stair Climbing robot) as well as solenoids. I originally picked it up from this instructable which is focused on controlling a solenoid. I wanted to isolate this circuit in its own Instructable as a motor driver so I could easily reference it from other future instructables and also provide example code to show how to use it in this manner.
Simple, Cheap Motor Controller – [Link]