Do I need a motor shield?

I'm fairly new to arduino based projects, and I'm trying to make a simple robot. Really, I need to know whether I need a motor shield or not. The motors I'm planning on using are these: and I'm only planning on using two of them.

As I understand, most robots need a motor shield to avoid damaging the board, but I want to avoid spending another $30 if possible. I'm using an Arduino Duemilanove, if that makes any difference. So can I attach the motors directly to my board, or do I need a motor shield, or is there an easy alternative?

If you only ant them to run in 1 direction you can drive them with a transistor or MOSFET. If you want to be able to control direction also you will need an HBridge. You can by an H-Bridge chip and wire it up yourself, or you can by a motor shield which already has an H-Bridge.

If you are a noob, I would recommend buying the shield, if you try building one, it could work, or it might not and that means more troubleshooting without knowing where the problem is. Is your program wrong, or is you hardware wrong...

If you try too many new things at the same time there are too many places for something to go wrong. If you use some pieces that are known to work then you can work an learning the pieces you need to make the known good part work.

Not trying to discourage you from making your own motor controller, But get some experience with Arduino and some pieces that work before you add more variables to the project.

Yes, unless you have the tiniest of motors you can not drive a motor from the arduino pins. The important thing to look at is the current. The pins can only handle up to 40 ma of current. Some small motors may have a no load current below that but under load or stalled the current can increase over an order of magnitude. It's just safer to always power a motor separately.

As kf said above you can go about that in many different ways. A motor shield or other controller is an easy way to go and will give you more options but also costs more. An H-bridge is a cheaper solution which you could build yourself or buy. H-Bridge Motor Driver 1A - COM-00315 - SparkFun Electronics