La forma más fácil de interactuar con un AVR a través de USB sería conectar un FTDI FT232 al UART, y luego interactúe con su AVR como un puerto COM virtual utilizando los controladores FTDI .
Probablemente has escuchado o usado este chip; está en muchos dispositivos integrados (incluidas las placas Arduino) y es probablemente la forma más fácil de interactuar con un microcontrolador a través de USB. Sin embargo, no estoy seguro de que pueda hacer lo que estás tratando de hacer; crea un puerto COM virtual. Si puede escribir un complemento para consultar el dispositivo para las pulsaciones de botones, será ideal. Sin embargo, si desea que aparezca como un dispositivo de entrada, no estoy seguro de que esta sea la solución para usted.
Editar: Esta es la solución simple para agregar comunicaciones básicas. La respuesta de Joby no restringe su proyecto a un puerto COM virtual como lo hace este dispositivo.
Sin embargo, el puerto proporcionado puede funcionar de la misma manera que con inputatach. (Fuente: el comentario de Joby a continuación) Sin embargo, parece que tendrá que conectar el controlador de su dispositivo a la utilidad inputattach.