if you want to make do with basic knowledge of electronics and embedded systems programming, then look into the popular Arduino project (
http://www.arduino.cc/). Basic skills are required here, USB connectivity is ready made for you. You only need to add the relevant hardware to make your application, like a few LEDs, some push buttons etc. The IDE for development is free to download and use. The programming language is like C/C++ and should not be difficult to learn. The developed code is loaded into the board via the USB port.
The NXP mbed project alos looks good, visit this link for more info (
**broken link removed**). Here again USB connectivity is ready made. You only need to concentrate on the application. The Mbed compiler is used to program the device, the programming language is similar to C and the IDE looks friendly. Here again code is programmed via the USB port.
On the other hand if you want to start from scratch, then visit the Microchip site (
http://www.microchip.com/), select an appropriate micro-controller, I think the PIC18F4550 should be good, it has plenty of I/Os for you to play with. The PIC18F2550 is the lower pin count version, this may also suit your purpose. The MPLAB IDE and the MPASM toolsuite can be downloaded from site, these are free.
If you want to use a C compiler then you can check out the student version of the Microchip C compiler. They also have some interesting development boards. Click on the USB link in their main page for more information. There is a wealth of info there, from datasheets to application notes, third party tools etc.
If you find Microchip C compiler expensive then check out the CCS C Compiler (PCH), I use it all the time. Visit
http://www.ccsinfo.com for more information on this. They also have development tools and demo boards.
In both the above projects (arduino and mbed) the programming (loading of developed code into the device/board) was done by the board, you didn't need a separate programmer. But to program the PIC you have to buy a separate programmer or a debugger (for diagnostics).
To sum up you need these items to start programming the Microchip PIC micro-controller
1. MPLAB IDE, MPASM assembler free to download and use.
2. Programmer for programming PIC micro-controller, must be bought from Microchip or third party companies, or can be made. Not required for a development board .
3. In-Circuit debugger, if advanced debugging is required. Also may not be needed for a development board.
4. Extra hardware for USB connectivity is required. Not needed for a USB based development board.
You should also get hold of a good book that describes USB interfacing for embedded systems. This is a good book on USB interfacing..
**broken link removed**
I hope this was helpful to you..