Earlier this year I decided that it would be fun to use my wired Xbox 360 controller to control Arduino projects- in this case, an RGB LED. However, the most commonly used method to do so involves accessing the electronics inside the controller to directly interface it with the Arduino. I decided to take a different approach: using a program called Xpadder I can have the computer interpret controller button presses as keyboard strokes. From there, Processing can read those keystrokes and send them to the Arduino from which any number of actions can be programmed to be controlled.
This is what I'll specifically be making in this instructable:
Pros: Easy to do with a low barrier to entry, cheap and there's no risk of damaging your controller.
Con: Because a computer is being used as an intermediary between the controller and the Arduino, as it's interpreting button presses as keystrokes which are fed into Processing, the computer is required; with this method you can't have a standalone Arduino and controller. If that's what you want then you'd likely need to alter the controller to plug directly into the Arduino.
Last note: I'll be specifically talking about the wired Xbox 360 controller and some of the weird little issues that can come up with it, but I don't see why this couldn't apply to any USB controller.
I made this project over at TechShop (http://techshop.ws/