I would recommend an
Arduino, It is a little board with an ATmega8 or 168 and a built in programmer, so you get it and its ready to work. There are USB and serial versions. All of the code open source and you program it in C. It supports everything you need it to do.