Tabla de contenido:

LED Matrix Game of Life 32 X 32: 8 Pasos
LED Matrix Game of Life 32 X 32: 8 Pasos

Video: LED Matrix Game of Life 32 X 32: 8 Pasos

Video: LED Matrix Game of Life 32 X 32: 8 Pasos
Video: RPi-Powered LED Wall - Conway's Game of Life 2024, Junio
Anonim
LED Matrix Game of Life 32 X 32
LED Matrix Game of Life 32 X 32

Me inspiré en el Juego de la vida de 16 x 16 de Jptrsn, pero terminé siendo cuatro veces más grande. bastante difícil separarlos y usarlos en una cuadrícula de 16x16 como lo había planeado, así que decidí hacer una cuadrícula de 32x32. Fue entonces cuando las cosas se complicaron, ya que no se puede simplemente escalar el código.

Paso 1: Partes

Obtuve mis piezas de BangGood, pero puede obtenerlas en cualquier lugar. 1. Un Arduino Nano (~ £ 2) 2. 4 matrices de LED 1x4 (~ £ 3.50 x 4) o busque paquetes múltiples que a veces son más baratos 3. Algo de cable 4. Un conector micro USB (<£ 1) 5. Un USB fuente de alimentación (<£ 5) 6. Un marco de cuadro de 6 "x6" / 15 cm x 15 cm (~ £ 4) de la tienda de artesanía local

Paso 2: herramientas

1. Pistola de pegamento caliente

2. Soldador

3. Pelacables

4. cuchillo afilado

Paso 3: construcción de la placa de pruebas

Construcción de tablero
Construcción de tablero

¡Una cosa que aprendí en este punto es que un nano (y probablemente otros Arduinos) no pueden proporcionar suficiente energía para ejecutar las 4 matrices sin quemar la fuente de alimentación! ser advertido

Cuando llegaron mis tableros, solo tenían pines en el extremo de entrada y los pines de salida estaban sueltos en la bolsa, o en un caso atascados debajo de una pantalla, provocando un cortocircuito entre los pines. Resulta que no es bueno para estas pantallas (buen trabajo compré 6). Deberá soldar los pines de salida en dos de las matrices LED si no están instaladas en la suya.

El diseño es bastante sencillo, puede conectar en cadena dos de las matrices para formar dos cadenas simplemente conectando los pines de salida a los pines de entrada correspondientes. No puede encadenarlos todos en una sola ejecución, ya que la biblioteca de LedControl está limitada a 8 pantallas a la vez.

Luego conecte DataIn al pin 12, cargue (o CS) al pin 11 y Clock (o CLK) al pin 10 y para la otra cadena a 5, 4 y 3. Alternativamente, puede elegir cualquier pin digital que desee, solo recuerde cambiar el código para reflejar su elección. Luego, agregue la toma USB a la placa de pruebas. Luego, conecte los pines v + y de tierra a los rieles de la placa de pruebas. Luego, debe conectar los cables de alimentación de las 2 cadenas a + ve y tierra y atar la tierra de Arduino a tierra. Una vez que terminemos de programar la placa, puede vincular el Arduino vin a v + y nunca volver a enchufar el Aurdino USB.

Paso 4: Código

Al principio, pensé que todo lo que tenía que hacer era tomar el código existente y escalarlo a 32x32, pero es un poco más complicado que eso. 1. Necesita dos LedControls ya que cada uno solo puede conducir 8 MAX7219s LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. No hay suficiente memoria en un Nano para almacenar 2 matrices completas de 32x32 bytes para mantener el estado de la placa. (Finalmente, todas las veces que escribí el código de Game of Life en una pizarra en entrevistas vale la pena). Board arrays como 32x4 y almacenar el estado de cada celda como un bit en los bytes a través del array.

Paso 5: Poniéndolo todo junto

Primero pruebe el código y el diseño de los tableros es el esperado usando el método "testPattern" para dibujar una cruz diagonal a través de los tableros. Si esto no se ve bien, entonces hay algo mal con el orden de las tablas y / o los pines que ha inicializado. Luego, verifique las cosas con el método del planeador que crea un planeador que se mueve a través de la pantalla. Nuevamente, si no funciona, verifique el orden de los pines, etc. Finalmente, configure el método principal para que sea "aleatorio", establezca NUMITR en el número de veces que debería repetirse antes de reiniciar.

Paso 6: Enmárcalo

Enmarcarlo
Enmarcarlo

Ahora, para poner todo en un marco, primero pegue las matrices en caliente en un marco de 32x32. Recuerde asegurarse de que el extremo de entrada esté en el mismo lado para todos ellos (o modifique el código de búsqueda en "gridToCell" para permitir que los segundos tableros estén al revés). Agregue la toma de corriente y un interruptor en la línea de 5v y suelde todo junto.

Paso 7: Problemas con el marco

Resulta que necesitas un marco más grande que el de 6x6 que tengo. Así que tendré que volver para terminar esto cuando tenga la oportunidad de llegar a la tienda.

Paso 8:

Recomendado: