Non so quanto sei bravo a programmare su win o su linux ma ti posso garantire che sviluppare periferiche USB non è cosa facile perchè necessità la scrittura di un driver ad hoc...se lo sai fare allora hai già fatto una buona parte del lavoro.
Veniamo all'hardware...ti dico come lo farei io:
Intanto utilizzeri un micro tipo atmel (che secondo me sono fantastici) e per interfacciare con l'usb io conosco il Philips ISP1181 oppure USBD12. Sono semplici da utilizzare e vengono dati con un fw demo ben documentato. escono verso l'esterno con il bus dati in modo che riesci a mappare direttamente in meoria oppure comunichi con un normalissimo port.
Con il D12 ho sviluppato una piccola scheda con ATMEGA128 mentre con ISP1181 ho sviluppato una scheda con DSP F2812 della TEXAS. (In entrambi i casi io ho sviluppato solo l'hw e fw ma non il sw lato pc...per fortuna)
Guarda a mio parere ti conviene utilizzare la porta seriale e te la cavi con un micro di piccole dimensioni e con pochi costi....
Nel caso vuoi cimentarti con l'usb allora puoi trovare tutta la documentazione su
formatting link
(sito ufficiale) oppure su
formatting link
per il micro atmel
formatting link