To be honest, I've never done this either. You might check with your local library, I just checked mine and was suprised to find a book about embedded communications(rs232/usb/serial) which is exactly the subject I've been wrestling with recently.
I believe the freeduino can be programmed by it's serial or usb port with some free software that you download and write your programs in (C based).
Also check out:
http://www.freeduino.org/
Especially read
http://www.freeduino.org/files/ardui...ebook_v1-1.pdf , skip over all the C syntax stuff if you like but there are some handy functions that save you from most assembly language tasks and some good examples,
like analogRead(pin) returns 0-1023 but analogWrite(pin,value) will do PWM on the pin where 255 is a constant 5 volts.
And
http://www.arduino.cc is a good resource