Índice:

Pumpktris - a abóbora de Tetris: 10 etapas (com fotos)
Pumpktris - a abóbora de Tetris: 10 etapas (com fotos)

Vídeo: Pumpktris - a abóbora de Tetris: 10 etapas (com fotos)

Vídeo: Pumpktris - a abóbora de Tetris: 10 etapas (com fotos)
Vídeo: Как сделать легкую цементную стяжку в старом доме. ПЕРЕДЕЛКА ХРУЩЕВКИ ОТ А до Я #12 2024, Julho
Anonim
Pumpktris - a abóbora de Tetris
Pumpktris - a abóbora de Tetris

Quem quer rostos sorridentes e velas quando você pode ter uma abóbora interativa neste Halloween? Jogue seu jogo de empilhamento de blocos favorito em uma grade de 8x16 esculpida na superfície da cabaça, iluminada por LEDs e usando a haste como controle. Este é um projeto moderadamente avançado e requer experiência em soldagem e programação no ambiente Arduino. Você trabalhará com matéria orgânica e todas as suas peculiaridades inerentes, portanto, as medidas podem precisar ser adaptadas para caber na abóbora que você está usando.

Etapa 1: Materiais Necessários

Materiais requeridos
Materiais requeridos
Materiais requeridos
Materiais requeridos

Para construir seu próprio Pumpktris, você precisará do seguinte: Componentes

  • 128 LEDs âmbar de 5 mm (usei esses da Mouser) Compre alguns extras para cobrir quaisquer erros ou testes. Eu tenho 140. Âmbar se parece mais com a chama que estaria dentro de uma lanterna tradicional, mas você está livre para usar a cor que quiser.
  • Microcontrolador Arduino
  • Tubulação termorretrátil de 1/16 "(peças longas de 11 pés ou 256 1/2")
  • Joystick de arcade com uma alça removível (este da SparkFun funcionou bem para mim)
  • Âncoras de drywall de náilon 4 # 6 Este não é o tipo com batoques, mas o tipo que se parece com parafusos com roscas profundas
  • 4 parafusos de meia polegada do mesmo tamanho e tipo que vieram com as âncoras para drywall. Os que vêm com as âncoras serão muito longos.
  • Parafuso de 6 mm x 50 mm (ou qualquer tamanho que corresponda ao suporte para o cabo do joystick)
  • Porca de acoplamento de 6 mm (ou qualquer tamanho necessário para combinar com o parafuso acima) Uma porca de acoplamento parece uma porca normal, mas tem cerca de uma polegada de comprimento e é usada para unir dois parafusos ou pedaços de haste roscada.

E por último, mas não menos importante, você precisará de 1 abóbora. Você só precisa de um, mas recomendo dois para que você tenha um que possa usar para praticar a perfuração e o corte. Sua matriz de LED vai cobrir uma área de aproximadamente 4 "de largura por 8" de altura, então você quer uma abóbora com uma área desse tamanho o mais lisa e plana possível para que sua matriz não fique muito enrolada. Você poderia usar uma abóbora de espuma, mas onde está a mágica nisso? Não posso falar sobre as técnicas de escultura necessárias em uma abóbora de espuma. Ferramentas e consumíveis

  • Ferro de solda
  • Solda
  • Cortadores de arame
  • Decapantes de arame
  • Furadeira
  • Serrote
  • Faca X-Acto
  • Broca 13/64"
  • Broca de 1-1 / 8 "(usei uma broca Forstner, mas uma pá também pode funcionar)
  • Placa de núcleo de espuma de 1/4"

Etapa 2: Construindo uma matriz de LED

Construindo uma matriz de LED
Construindo uma matriz de LED
Construindo uma matriz de LED
Construindo uma matriz de LED
Construindo uma matriz de LED
Construindo uma matriz de LED

Cada matriz é feita de 64 LEDs e 128 pedaços de fio. É mais fácil cortar e descascar todos os fios de cada matriz com antecedência. Corte 112 em pedaços de 2,5 "e retire 1/4" de cada extremidade. Corte os restantes 16 cm em pedaços de 30 cm e descasque ambas as pontas. Quanto mais consistente você conseguir com os comprimentos dos fios, mais fácil será construir e instalar.

Você começará construindo dezesseis cadeias de fios de oito segmentos - cada uma com 7 fios curtos e 1 longo. Torça cada extremidade junto com a próxima peça e solda. Para conectar os fios aos LEDs, você precisará de um gabarito para prendê-los. Desenhe uma grade de 8 x 8 com espaçamento de meia polegada em um pedaço de placa de espuma de 1/4 "de espessura e, em seguida, use um furador para fazer um orifício ligeiramente menor em diâmetro do que o LED em cada interseção. Você terá 64 orifícios quando está feito. Na linha superior de orifícios, insira 8 LEDs. O núcleo de espuma se esticará para caber nos LEDs e os manterá firmes. Alinhe os LEDs de forma que a perna mais longa - o cabo do ânodo - fique voltado para você em cada um. Verifique novamente, porque se você errar, a matriz não funcionará. Prenda cada terminal do ânodo com cerca de 1/4 "de comprimento e estanhe-o com solda para facilitar a conexão dos fios. Corte 8 pedaços de tubo termorretrátil em segmentos de 1/2 ". Deslize um pedaço de tubo sobre a primeira conexão de fio, empurre-o de volta para que não seja afetado pelo calor da solda e, em seguida, solde a conexão de fio ao ânodo de LED. Deslize o tubo para baixo sobre a conexão assim que ele esfriar. Continue para o próximo LED, repetindo mais sete vezes o processo de deslizar em um pedaço de tubo, soldar a conexão e, em seguida, abaixar o tubo sobre a junta. Quando você tiver um conjunto de oito LEDs todos conectados entre si, remova-os do gabarito e repita novamente por mais sete linhas, certificando-se de fazer todas as conexões com o ânodo de cada LED. Você pode usar a linha do gabarito que for mais fácil de alcançar, já que você está trabalhando apenas com uma de cada vez. Depois que todas as oito linhas forem soldadas, é hora de unir as colunas e fazer uma matriz. Insira todas as cordas de LED no gabarito que você fez. Mantenha o fio longo no mesmo lado de cada fio. Corte e estanhe o terminal catódico de cada LED na primeira coluna umn, assim como você fez para construir a corda. Pegue outra corrente de fios e repita o processo de soldá-la aos LEDs, só que desta vez você está conectando a 90 graus ao primeiro conjunto de fios que fez. Mantenha o fio longo do mesmo lado da matriz. Conforme você completa cada coluna, remova-a do gabarito de espuma e dobre-a para fornecer acesso à próxima coluna. Quando estiver tudo pronto, você terá 64 LEDs unidos em 8 linhas e 8 colunas. Infelizmente, você precisa repetir o processo novamente para a segunda matriz. Se precisar de uma pausa, pule para as etapas 3, 4 e 5 para trabalhar no código e, em seguida, volte a este.

Etapa 3: Controlando os LEDs

Controlando os LEDs
Controlando os LEDs
Controlando os LEDs
Controlando os LEDs
Controlando os LEDs
Controlando os LEDs
Controlando os LEDs
Controlando os LEDs

As matrizes de LED que você fez serão controladas por duas Mini 8x8 LED Matrix Backpacks da Adafruit. Cada controlador permite que você acione 64 LEDs com apenas dois fios do Arduino, e você pode encadear vários controladores nesses mesmos dois fios. Siga as instruções que vêm com a LED Matrix Backpack para soldar no conector de alimentação / dados / relógio de 4 pinos. Então, em vez de soldar a matriz de LED que vem com ele, solde duas fileiras de conectores fêmeas na mochila. Conecte a matriz de mini LED incluída nos conectores. Conecte a matriz em uma placa de ensaio e conecte-a da seguinte maneira:

  • Conecte o pino CLK da mochila ao pino 5 analógico do Arduino.
  • Conecte o pino DAT ao pino 4 analógico no Arduino.
  • Conecte o GND ao pino terra no Arduino.
  • Conecte o VCC + à alimentação de 5v.

Baixe a biblioteca Adafruit LED Backpack e as bibliotecas Adafruit GFX e instale-as em seu computador, copiando cada uma para a pasta "libraries" da pasta de sketch do Arduino do seu computador. Carregue o arquivo "matrix8x8" em seu Arduino e verifique se a mochila de LED está funcionando. Os pinos da matriz de LED podem não fazer um bom contato nos conectores fêmeas, então você pode precisar mexer ou remover parcialmente para fazer contato e permitir que todas as linhas e colunas se iluminem. Repita o processo com a segunda mochila de LED, mas desta vez você precisará definir um novo endereço para ela soldando um jumper nas almofadas A0 da mochila. Execute o código "matrix8x8" novamente, mas altere a linha "matrix.begin (0x70)" para "matrix.begin (0x71)" para que o código se dirija à nova mochila de LED.

Etapa 4: conectando o joystick

Conectando o Joystick
Conectando o Joystick
Conectando o Joystick
Conectando o Joystick

Seu joystick deve ter quatro interruptores com dois terminais cada. Quando você move o joystick para a direita, ele aciona o botão da esquerda; quando você o move para baixo, ele aciona o botão na parte superior e assim por diante. Em um terminal de cada chave, solde um fio de 3 ". Torça a outra extremidade de todos os quatro fios juntos e solde-os em um fio de 12". Este é o terreno comum para todos os quatro interruptores. Solde um fio de 12 "no terminal restante de cada chave e, em seguida, conecte-os da seguinte maneira:

  • Conecte a chave inferior (ativada quando você empurra para cima) ao pino analógico 0 no Arduino.
  • Conecte a chave esquerda (ativada quando você pressiona a direita) ao pino analógico 1 no Arduino.
  • Conecte a chave superior (ativada quando você pressiona para baixo) ao pino analógico 2 no Arduino.
  • Conecte a chave direita (ativada quando você pressiona para a esquerda) ao pino analógico 3 no Arduino.
  • Conecte o fio terra comum ao pino terra no Arduino.

Etapa 5: Programando o jogo

Programando o jogo
Programando o jogo

Baixe o Pumpktris.ino.zip anexado, descompacte-o e abra o arquivo no ambiente de desenvolvimento do Arduino. Compile e envie-o para o seu Arduino. Agora você deve conseguir tocar na matriz de mini LED que configurou na etapa anterior. Tentei comentar o código o máximo possível, mas aqui está uma visão geral dos processos principais: Descrevendo as formas Existem sete tetrominós, cada um com 4 pixels, e cada um com quatro rotações possíveis. Armazenamos tudo isso em uma matriz multidimensional: a primeira dimensão consistindo de sete formas, a segunda dimensão contendo as quatro rotações para cada forma, a terceira contendo quatro descrições de pixels, cada uma consistindo de uma coordenada X e Y. Por exemplo, isso descreve a forma "T": / * T * / {/ * ângulo 0 * / {{0, 1}, {1, 1}, {2, 1}, {1, 2}}, / * ângulo 90 * / {{1, 0}, {1, 1}, {2, 1}, {1, 2}}, / * ângulo 180 * / {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * ângulo 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Rastreando a peça ativa Para controlar a peça atualmente em execução, o programa mantém uma variável activePiece. Este é o índice da forma ativa no nível mais alto da matriz. Ele também mantém uma variável de rotação contendo o índice da rotação atual. Uma variável xOffset rastreia a que distância à esquerda ou direita (0-7) cada peça está, e yOffset rastreia a que distância (0-15) o tabuleiro está caído. Para desenhar a peça ativa, o programa adiciona os valores de deslocamento X e Y às coordenadas X e Y de cada pixel puxado da rotação atual da peça selecionada. Rastreando as peças fixas O programa usa uma matriz de 16 bytes para acompanhar as peças fixas peças, com cada byte representando uma linha. Por exemplo, a matriz abaixo representaria uma forma de L situada no centro das duas linhas inferiores (conforme indicado pelos 1s nos últimos dois bytes): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Detecção de colisão Quando é feita uma tentativa de mover a peça ativa, o programa primeiro verifica a nova posição em relação à matriz de peças fixas. Se não houver colisões, o movimento é permitido e a matriz é redesenhada. Se uma colisão for detectada ao tentar mover para a esquerda, direita ou girar, a ação é proibida. Se uma colisão for detectada ao tentar soltar uma peça, a peça ficará fixa em sua posição e será adicionada à matriz de pixels fixos. Soltando peças automaticamente O ritmo do jogo é controlado pelas variáveis gravityTrigger e stepCounter. Cada loop do programa incrementa stepCounter, e toda vez que stepCounter atinge a contagem armazenada em gravityTrigger, ele reduz a peça ativa um nível. Conforme o jogo avança, gravityTrigger é diminuído para que a peça ativa caia com mais e mais frequência até que finalmente esteja caindo em cada loop do programa. Cada vez que uma peça ativa é fixada na grade, o programa verifica se há bytes / linhas inteiras (B11111111). Se encontrar algum, ele apaga e acende três vezes e, em seguida, remove e solta as linhas acima para preencher a lacuna. Solução de problemas Se as peças não estão caindo de cima para baixo, mas vão de um lado para o outro, mude o valor passado nas linhas "matrixTop.setRotation (1);" e / ou "matrixBottom.setRotation (1);" no loop "setup ()". Se as peças começarem na matriz errada, troque a localização física de cada matriz ou inverta os endereços declarados em "matrixTop.begin (0x70);" e "matrixBottom.begin (0x71);" linhas do loop "setup ()". Se algumas linhas ou colunas não acenderem, mexa a matriz de mini LED nos cabeçalhos fêmeas. Eles podem não estar fazendo um bom contato.

Etapa 6: Conectando sua matriz de LED

Conectando sua matriz de LED
Conectando sua matriz de LED
Conectando sua matriz de LED
Conectando sua matriz de LED
Conectando sua matriz de LED
Conectando sua matriz de LED

Quando todo o código e controles foram verificados como funcionando com as matrizes de mini LED, é hora de conectar as grandes matrizes de LED que você mesmo soldou.

Você poderia conectar cada fio aos conectores da mochila de matriz individualmente, mas provavelmente conectará e desconectará muito, então isso pode se tornar um verdadeiro aborrecimento. Em vez disso, você deseja soldar cada fio em uma faixa macho e conectá-la à mochila da matriz. Montei as tiras de cabeçalho em um pedaço de placa de prototipagem para que pudesse conectar e desconectar todos os 16 pinos juntos. As linhas 1 a 4 se conectam aos pinos 1 a 4 na mochila do matrix (a numeração dos pinos começa no canto superior esquerdo enquanto você olha para baixo na mochila com os pinos de alimentação / aterramento / dados / relógio de 4 pinos no topo). As colunas 1-4 se conectam aos pinos 5-8. A numeração do pino envolve de forma que o pino 9 fique no canto inferior direito. As linhas 5-8 se conectam aos pinos 12-9 e as colunas 5-8 se conectam aos pinos 16-13. Veja o diagrama para mais clareza. Conecte cada matriz em uma mochila e execute o mesmo programa "matrix8x8" que você fez para as matrizes de mini LED na etapa 4. Se cada uma funcionar, você pode carregar o programa do jogo. Se não funcionar, verifique se as linhas e colunas da grande matriz de LED estão conectadas aos pinos corretos da mochila. Montar a matriz de LED no gabarito de espuma que você fez para a montagem pode facilitar o teste de todo o sistema.

Etapa 7: esculpir a abóbora

Esculpindo a Abóbora
Esculpindo a Abóbora
Esculpindo a Abóbora
Esculpindo a Abóbora
Esculpindo a Abóbora
Esculpindo a Abóbora

Não faça nenhum entalhe na abóbora até que todos os seus aparelhos eletrônicos estejam funcionando. Uma abóbora esculpida tem uma vida útil limitada, e se você esculpi-la primeiro e depois passar 2 dias na eletrônica, você perderá dois dias de diversão no jogo.

Encontre o lado mais plano da abóbora para que o painel de LED não fique muito enrolado e, em seguida, corte uma abertura no lado oposto. Seja generoso; você vai precisar de espaço para colocar as mãos lá para trabalhar. Você não vai cortar a parte superior como em uma abóbora tradicional, porque ela precisa ser deixada intacta para o joystick. A gosma de abóbora e os eletrônicos não são os melhores amigos, então limpe bem o interior. Para o Pumpktris mais bonito, você deseja que sua grade de LEDs fique reta e bem alinhada com a abóbora. Um PDF é anexado com espaçamento de 8 x 16, com meia polegada de distância. Imprima (ou faça o seu próprio com seu próprio espaçamento), corte nas bordas e prenda na frente da abóbora. Certifique-se de que está para cima e para baixo. Com um prego, palito ou outra ferramenta semelhante, faça um orifício piloto no centro de cada LED marcado no papel. Perfurar diretamente no papel não é aconselhável porque é provável que se desloque ou rasgue. Depois que todos os furos piloto forem feitos, remova o modelo de papel e use uma broca de 13/64 "em sua furadeira para fazer cada furo. Não alinhe a broca perpendicular à face da abóbora! Se você fizer isso, o A curvatura da abóbora pode fazer com que orifícios com meia polegada de distância na parte externa se encontrem no lado de dentro e será difícil inserir os LEDs. Em vez disso, tente manter todos os orifícios paralelos. Quando todos os orifícios estiverem perfurados, use sua faca X-Acto para cortar um "pixel" quadrado ao redor de cada orifício. Incline a faca em direção ao centro de cada orifício e deixe cerca de 1/8 "entre os pixels. Eu sugiro comprar uma abóbora prática e usá-la para aperfeiçoar sua técnica de perfuração e escultura de pixels. Domine-o antes de arriscar-se a estragar a abóbora perfeita que encontrou para o produto final.

Etapa 8: Montagem da haste no joystick

Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick
Montagem da haste no joystick

Agora você vai adaptar a haste para ser usada como joystick para controlar o jogo.

Corte a haste o mais próximo possível da base. Se o corte não estiver liso e limpo, use um bloco de lixa para aplainá-lo. Faça um orifício de 1-1 / 8 "direto na base do caule e na abóbora. Desparafuse a esfera do joystick e alinhe o eixo com o centro do orifício de dentro da abóbora. Certifique-se de que a parte frontal o joystick é alinhado com a face frontal da abóbora - quando você joga, você quer empurrar para a esquerda e para a direita para mover as peças, não em ângulo. Quando estiver centralizado e quadrado, use um prego ou palito para fazer buracos no interior de a abóbora acima dos orifícios de montagem na base do joystick. Remova o joystick. Com os alicates, corte as pontas expansíveis das âncoras de drywall para que fiquem mais curtas do que a espessura da casca da abóbora. Aparafuse essas âncoras de drywall curtas e arredondadas nos orifícios piloto que você fez. Os detalhes da próxima parte dependerão do joystick que você comprou. O que usei da SparkFun tinha um acessório de 6 mm para o punho da bola que será substituído pela haste. Se o seu joystick for diferente, use porcas e parafusos de qualquer tamanho que correspondam. Encontre o centro da haste e perfure um orifício de 13/64 "(do mesmo tamanho que você usou para os orifícios do LED, coincidentemente) cerca de uma polegada diretamente na haste. Este seria um bom passo para testar em sua abóbora de prática, para se certificar de que o parafuso está bem preso no orifício. Corte a cabeça de um parafuso de 6 mm x 50 mm com uma serra. Coloque cola epóxi ou madeira nas roscas perto da extremidade cortada do parafuso e aparafuse-o na haste. Você quer uma polegada ou mais dele no caule e uma polegada fora. Aparafuse a porca de acoplamento de 6 mm no eixo do joystick, mas não monte o joystick na abóbora ainda.

Etapa 9: Posicionamento de LED e Joystick

Posicionamento de LED e Joystick
Posicionamento de LED e Joystick

Do lado de dentro da abóbora, insira os LEDs fileira por fileira em seus orifícios até que suas bases fiquem alinhadas com a superfície interna da abóbora. Quando todos estiverem no lugar, use um espeto de bambu para empurrá-los mais para a frente. Eu deixei sua borda frontal posicionada cerca de 1/4 "a 3/8" abaixo da superfície externa. Se estiverem muito abaixo da superfície, a luz se espalhará na carne da abóbora e cada pixel será menos distinto.

Adicione uma camada de filme plástico na parte superior do joystick, com o próprio eixo aparecendo. Isso evitará que pelo menos um pouco de umidade penetre nele. Prenda o joystick com parafusos de 1/2 nas âncoras de drywall. Os parafusos que vieram com as âncoras serão muito longos e perfurariam a abóbora.

Etapa 10: jogar o jogo

Jogando o jogo
Jogando o jogo

Coloque uma tigela ou recipiente de plástico para armazenamento de alimentos no fundo da abóbora para evitar que qualquer aparelho eletrônico pendurado toque o fundo. Conecte o joystick em seu Arduino, as mochilas de LED no Arduino e as matrizes de LED nas mochilas. Conecte uma fonte de alimentação em seu Arduino. Agora jogue um pouco de Pumpktris! Idéias para exploração adicional Em vez de montar o joystick no topo da abóbora com os LEDs, você pode usar uma abóbora remota, sem fio ou com um cabo decorado para se parecer com uma videira. Em vez de um jogo, você pode exibir mensagens de rolagem em sua jack-o-lantern. Você pode querer montar as matrizes de lado (16 de largura por 8 de altura) ou até mesmo usar apenas uma matriz. Isso pode ser perigoso para a sua saúde e pode levar a falhas nos componentes eletrônicos. É melhor retirar todos os seus eletrônicos assim que vir qualquer crescimento na abóbora, para que você possa reutilizá-los mais tarde sem a necessidade de uma limpeza de Haz-Mat.

Concurso de decorações de Halloween
Concurso de decorações de Halloween
Concurso de decorações de Halloween
Concurso de decorações de Halloween

Segundo prêmio no Concurso de Decorações de Halloween

Recomendado: