Using external USB to control an arduino project.

Hi, where can I find some info on using an external controller, like a joystick, to control a "robot"?

I have only been able to find guides where you make your own controller or you make use of an xbox controller and stuff like that, however, i wish to use other options like a NES controller which has mainly 2 buttons (A,B) and directions (U,D,L,R) since for my project i don't need much more than that, every other button is an extra.

I understand that USB is a kind of serial port but I don't know how I'm supposed to read its info on arduino.

Thanks in advance.

It's not possible to plug a USB HID into the Arduino USB port, if that's what you mean.

aarg:
It's not possible to plug a USB HID into the Arduino USB port, if that's what you mean.

This is definetly what I wasn't thinking. I was thinking about something akin to sensors and receptors and stuff like that, which you can program. With futher research, I found some info that there are shields but apparently you can't stack usb host shield with motor shield so I'd need some extra time to look further into it but I still need to buy the arduino kit and then start programming.

A little googling gave me this very nice article on how to attach a NES controller to the arduino and read it's outputs:

andrey_physics:
I have only been able to find guides where you make your own controller

Making your own controller is the best way for robots, and I would advise against a NES controller. The problem is the D-pad (up,down,left,right buttons), which gives digital outputs instead of smooth analog outputs. With a joystick and such, it's easier to control something because a small movement on the stick gives you an accurate movement on your robot, however a button requires lots of taps that you may not be able to press quickly enough (unless you have mad gaming skills). It's also easier to just send your joystick data to the Arduino rather than muddle through decoding the shift register, which is good since you said you hadn't even bought a kit yet, so a simple route is best to start with. No matter how capable you think you are, always try the easy way first so you can learn, then work on the fancy stuff. It's easier to code that way.

Also, how is USB involved? A NES controller doesn't use USB, do you mean sending commands over the USB/TX-RX pins to the Arduino? That could work, if that's what you're trying to do.