1. Usaré el encoder del numpad (USB HID)
La mayoría de teclados/numpads sondean a 125 Hz (cada ~8 ms). Si dos jugadores presionan dentro del mismo intervalo de 8 ms, el dispositivo reporta ambos “al mismo tiempo” y el orden puede ser arbitrario.
2. pulsadores a GPIO
-
GPIO con pulsadores + diodos o un encoder USB arcade (NKRO).
-
Ventaja: cero latencia (1–3 ms) y evita ghosting, a costa de más cableado.
-
Usa
gpiozero
oRPi.GPIO
, con pull-ups internos (o resistencias) y antirrebote (debounce). -
Si vas a superar 8–10 botones, considera un
MCP23017
(expansor I²C)
Librerías
- Recomiendo: Pygame o Pygame Zero (eventos de teclado)
Pygame ya te da el orden en que llegaron los eventos, suficiente para la mayoría de juegos.
- evdev
Con python-evdev puedes leer directamente /dev/input/event*
del numpad y evitar que el sistema “escriba” dígitos en otras apps. El paquete evdev está diseñado específicamente para Linux.