Главный вопрос - для чего вы открываете дыру? Почему приложение, работающее в user-mode должно получать прямой доступ к устройству? Вот что действительно "непрофессионально".
Никак. Старинная клавиатура ничего не знает о USB и так работать не сможет.
Новые клавиатуры, для которых есть переходники "наоборот" (USB в PS/2) имеют достаточно умный контроллер, который понимает, куда его воткнули и ведет себя соответствующе.
Долой AVR и V-USB в частности. Возьмите stm32f3 discovery. На ней есть
1) 4 быстрых АЦП, каждый из которых мультиплексируется на 10 внешних пинов
2) акселерометр
3) аппаратный usb
4) гироскоп
5) компас
6) аппаратный отладчик st-link
7) готовый пример джойстика https://github.com/cjheath/stm32f3-discovery-usb-e...