Índice:

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

Vídeo: LED Matrix Game of Life 32 X 32: 8 Passos

Vídeo: LED Matrix Game of Life 32 X 32: 8 Passos
Vídeo: Standalone Conway's game of life on 1"8 screen with arduino 2024, Novembro
Anonim
LED Matrix Game of Life 32 X 32
LED Matrix Game of Life 32 X 32

Fui inspirado pelo Game of Life 16 x16 de Jptrsn, mas acabei sendo quatro vezes maior. Encontrei algumas placas de display 4 em 1 do Módulo Matrix de Pontos MAX7219 para Arduino em Bangood.com por £ 3,50 quando eles chegaram, descobri que era muito difícil separá-los e usá-los em uma grade 16x16 como eu havia planejado, então decidi fazer uma grade 32x32. Foi quando as coisas ficaram complicadas, já que você não pode simplesmente aumentar o código.

Etapa 1: peças

Peguei minhas peças do BangGood, mas você pode obtê-las em qualquer lugar. 1. Um Arduino Nano (~ £ 2) 2. 4 Matrizes LED 1x4 (~ £ 3,50 x 4) ou procure multipacks que às vezes são mais baratos 3. Alguns fios 4. Uma micro entrada USB (<£ 1) 5. Um USB fonte de alimentação (<£ 5) 6. Uma moldura de caixa de 6 "x6" / 15cmx15cm (~ £ 4) da loja de artesanato local

Etapa 2: Ferramentas

1. Pistola de cola quente

2. Ferro de soldar

3. Descascadores de fios

4. Faca afiada

Etapa 3: construção do breadboard

Construção de tábua de pão
Construção de tábua de pão

Uma coisa que aprendi neste ponto é que um nano (e provavelmente outros Arduinos) não pode fornecer energia suficiente para executar todas as 4 matrizes sem queimar a fonte de alimentação! esteja avisado

Quando minhas placas chegaram, elas tinham apenas pinos na extremidade de entrada e os pinos de saída estavam soltos na bolsa ou, em um caso, presos sob uma tela, causando um curto nos pinos. Acontece que não é bom para esses monitores (bom trabalho, comprei 6). Você precisará soldar os pinos de saída em duas das matrizes de LED se elas não estiverem instaladas na sua.

O layout é bastante simples, você pode encadear duas das matrizes para formar duas cadeias simplesmente conectando os pinos de saída aos pinos de entrada correspondentes. Você não pode encadear todos eles de uma vez, pois a biblioteca LedControl é limitada a 8 monitores por vez.

Em seguida, conecte DataIn ao pino 12, carregue (ou CS) ao pino 11 e Clock (ou CLK) ao pino 10 e para a outra cadeia a 5, 4 e 3. Alternativamente, você pode escolher qualquer pino digital de sua preferência, mas lembre-se de mudar o código para refletir sua escolha. Em seguida, adicione o soquete USB à placa de ensaio. Em seguida, conecte os pinos v + e de aterramento aos trilhos da placa de ensaio. Em seguida, você precisa conectar os cabos de alimentação das 2 correntes ao + ve e aterrar e conectar o Arduino ao aterramento. Assim que terminarmos de programar a placa, você pode conectar o Arduino vin a v + e nunca conectar o USB Aurdino novamente.

Etapa 4: Código

No início, pensei que tudo que eu precisava fazer era pegar o código existente e escalá-lo para 32x32, mas é um pouco mais complicado do que isso. 1. Você precisa de dois LedControls, pois cada um pode controlar apenas 8 MAX7219s LedControl lc [2] = {LedControl (12, 10, 11, 8), LedControl (5, 3, 4, 8)}; 2. Não há memória suficiente em um Nano para armazenar 2 arrays completos de 32x32 bytes para manter o estado do tabuleiro. (Finalmente, todas as vezes que escrevi o código do Game of Life em um quadro branco em entrevistas valeram a pena.) Portanto, definimos o agrupar matrizes como 32x4 e armazenar o estado de cada célula como um bit nos bytes da matriz.

Etapa 5: juntando tudo

Primeiro teste o código e o layout das placas conforme o esperado usando o método "testPattern" para desenhar uma cruz diagonal nas placas. Se isso não parecer certo, então há algo errado com a ordem das placas e / ou pinos que você inicializou. Verifique as coisas com o método planador que cria um planador que se move pela tela. Novamente, se não funcionar, verifique a ordem dos pinos etc. Por fim, defina o método principal como "randomize", defina NUMITR para o número de vezes que deve ser repetido antes de redefinir.

Etapa 6: Enquadrar

Emoldurar
Emoldurar

Agora, para colocar tudo em uma moldura. Primeiro, cole as matrizes juntas em uma moldura de 32x32. Lembre-se de certificar-se de que a extremidade de entrada esteja do mesmo lado para todos eles (ou modifique o código de pesquisa em "gridToCell" para permitir que as segundas placas fiquem de cabeça para baixo). Adicione a tomada e um interruptor na linha 5v e solde tudo junto.

Etapa 7: Problemas de quadro

Acontece que você precisa de um quadro maior do que o 6x6 que tenho. Então, vou precisar voltar para terminar isso quando tiver a chance de chegar à loja.

Etapa 8:

Recomendado: