Modificar un controlador de teclado / mouse / juego es una posibilidad para muchos proyectos de este tipo.
O podría usar algo como un Arduino como un adaptador de entrada analógico / digital. Esto se conectaría a la PC a través de USB y, en general, le gustaría un puerto serie para su programa. Su programa solo monitorearía el puerto serie en busca de datos, que podrían ser bytes individuales que indiquen varios eventos, varios mensajes de bytes, o incluso cadenas terminadas en nueva línea legibles por humanos. Esto puede hacer que la depuración sea mucho más sencilla si no necesita mover tantos datos que llenaría un conducto serial de alta velocidad. Por ejemplo, sus datos podrían verse así:
airbrake 0\n
throttle 10\n
throttle 85\n
whistle 1\n
whistle 0\n
O por simplicidad de firmware, podría ser algo así como
digital 3 0\n
analog 2 10\n
analog 2 85\n
digital 4 1\n
digital 4 0\n
Dejando su programa de PC para asignar los canales a los nombres basados en el conocimiento del cableado de su adaptador a los controles físicos