I just got an Arduino after playing around with some AVR microcontrollers during Robotics team meetings. I liked the idea of a really cheap programmable chip that could run just about anything from a simple computer interface so I got an Arduino because it already has a nice board and USB interface. For my first Arduino project, I dug up a Vex Robotics kit I had laying around from some competitions I did in high school. I had always wanted to make a computer driven robotics platform but the Vex microcontroller requires a programming cable that I didn't have. I decided to use my new Arduino (and maybe later a bare AVR chip if I get it working) to drive the platform. Eventually I want to get a netbook and then I can drive the robot using WiFi and view its webcam remotely.
I managed to get a decent serial protocol and a simple example that drives the robot using an Xbox 360 controller connected to a Linux PC.
Step 1: What it can do...
The Arduino is a very versatile platform. My basic goal was just to get the Arduino to interface two Vex motors to the PC, but I had a lot of leftover input/output pins and decided to add some extra stuff. Right now I have an RGB LED for serial port status (green if packets are good, red if they are bad) and a PC fan driven by a transistor. I can also add switches and sensors but I didn't put any of those on it yet.
The best thing about it is that you can add whatever you want to an Arduino robot. It only takes a little bit of interface code to control extra stuff and get input to the computer.