Una gran cantidad de botones en una Raspberry Pi

1

Estoy trabajando con un amigo (él tiene la visión, está construyendo la estructura, estoy trabajando en la electrónica) en un proyecto a gran escala que involucra una cuadrícula de imágenes iluminadas por un LED con solo presionar un botón. Él planea tener 1000 fotos, cada una con sus propios botones. Planeo ejecutar todo el proyecto en una Raspberry Pi. Los LEDs pasarán por SPI. Estoy teniendo problemas para averiguar cómo conectar y monitorear una cantidad tan grande de botones (he hecho muchos LED pero tengo poca experiencia con el monitoreo de entradas múltiples). Me he imaginado un par de opciones y me pregunto cuál es la mejor, si esto es posible:

  1. Un número de IC de escáner de teclado (como el TCA8418 o LM8330) conectados a un multiplexor I2C conectado a RaspberryPi. No sé si esto tendría un tiempo de respuesta razonable o si ciertas secciones del teclado no responderían mientras otras estaban activas.
  2. Múltiples arduinos más pequeños controlan una pequeña cantidad de botones que envían información al Pi. Podríamos manejar más prensas simultáneas, pero parece ser la opción más cara.

¿Alguna de estas opciones factibles se puede ejecutar en un solo RaspberryPi con buenos tiempos de respuesta? Registrar varias imprentas es menos importante que tener algo que responda rápidamente con cada pulsación individual en este escenario.

    
pregunta Ely Beau Eastman

2 respuestas

1

Ciertamente podría funcionar, I2C puede funcionar bastante rápido. Solo se asegura de que los circuitos integrados que está usando admitan un espacio de direcciones lo suficientemente amplio como para sentarse en el mismo bus. Lo bueno de I2C es que es multimaster, si encuentra un IC que le permita saber a su controlador principal cuando se presiona un botón que debería funcionar bien. Incluso si tiene que recurrir al sondeo de la frambuesa pi debería poder manejar esa carga sin problemas.

En cuanto a los tiempos de respuesta, puede calcularlo aproximadamente siguiendo los diagramas de tiempo en la hoja de datos y con un poco de experimentación. Comience con el tiempo que le lleva adquirir los datos en primer lugar. A menos que haya un terrible cuello de botella en algún lugar, debería ejecutarse lo suficientemente rápido para su función prevista.

    
respondido por el alphasierra
1

En gran medida, dependerá de qué tan separados estén los botones, también dependerá de la necesidad potencial de admitir múltiples botones activados al mismo tiempo.

Le sugiero que use un controlador de teclado de PC simple (los teclados son muy baratos), admite alrededor de 104 teclas (botones) y proporciona reinversión de la tecla N para que pueda ver muchos botones a la vez. Si usa un controlador de teclado, puede conectarlo a través de USB, conectar varios a través de un concentrador (un concentrador de 8 puertos le daría aproximadamente 800 botones) y el software para un dispositivo de teclado es fácil de escribir. Si incluye teclados con conectores USB, ya tienen un concentrador interno, por lo que también podría serializarlos de esa manera.

En muchos teclados, el controlador se encuentra en una pequeña placa madre separada, separada de la matriz clave, lo que hace que las cosas sean agradables y fáciles. He cortado muchos teclados solo para obtener las teclas de función para varios proyectos y funciona bien.

    
respondido por el Jack Creasey

Lea otras preguntas en las etiquetas