Usually to control electric motors with an Arduino one would use a motor shield, L298 or other controller IC in order to allow for safe control of the required current. However it is possible to directly drive a small... very small motor with an Arduino's PWM output as long as the current flow is less than the 40 mA maximum available from an ATmega328. This process has been demonstrated and documented by the Arduining website by using a tiny vibration motor and demonstrating its use via a simple rotational counter project, for example:
Even if you're not interested in motors it's an interesting article about pulse-width modulation and circuit design, so click here to find out more. And for more, we're on twitter and Google+, so follow us for news and product updates as well.
When creating external devices for your Arduino, such as the joystick mentioned above, you'll need a protoshield to mount the external circuitry. In doing so, consider our range of ProtoShields. From the tiny LeoStick to the Mega range, we offer a complete range for you to work with.