Atmel (y también creo que Microchip) tiene un controlador HID genérico para sus MCU disponibles, con código fuente completo en cada extremo disponible (software de prueba del cliente y pila HID integrada).
Explorando la oferta de Atmel, incluso tienen una placa de demostración de teclado en toda regla , de nuevo con el código fuente.
No es el ejemplo más simple (¡han escrito su propio planificador de tareas!), pero creo que debería ser bastante fácil modificar lo que quieras hacer.
Busque en keyboard_task.c
en la demostración del teclado de los enlaces anteriores ( o aquí ). Parece ser exactamente lo que quieres. Una gran variedad de scancodes, que se utiliza para escribir un mensaje en la computadora mediante la emulación de un teclado en cualquier editor de texto.
Los valores reales de pulsación de tecla de HID se extraen mediante el uso de #define en un archivo llamado usb_commun_hid.h
, que parece no estar incluido (!) en la descarga anterior (¿supongo que viene con el compilador?), pero simplemente se asignan para definir los valores de un solo byte antiguo, por lo que debería poder agregar más todo lo que desee. (Consulte el archivo a00102.html
en el enlace anterior).
Me imagino que Microchip tiene algo similar, pero no tengo muchas ganas de investigar su implementación en este momento. Si lo deseas, puedo hacerlo más tarde.
Por supuesto, esto realmente no hace nada respecto a cómo decodifica estos scancodes al final de la computadora, pero nuevamente, Atmel tiene ejemplos .Net de cómo hablar con sus dispositivos HID , así que algo hackeable debería estar disponible.