Construa uma Caixa de Jogos Arcade LEGO com Arduino Nano – Kit DIY com Bateria, LCD e Mais
Componentes e Materiais
| Arduino Nano R3 | 1 |
| Controlador de carga/descarga TP4056 | 1 |
| Botão Grande Vermelho Dome (SparkFun) | 4 |
| Display LCD Padrão Adafruit - 16x2 Branco sobre Azul (com módulo I2C) | 1 |
Ferramentas Necessárias
- Ferro de solda (genérico)
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Se você tem filhos, provavelmente enfrenta o mesmo problema que nós com os conjuntos de Lego: eles montam e brincam, mas depois de um tempo os conjuntos viram uma única pilha de peças. As crianças crescem e você não sabe o que fazer com essa pilha.
Decidimos reciclar os tijolos de Lego indesejados e criar um jogo arcade.
Este guia passo a passo é resultado de vários meses de trabalho para tornar o jogo replicável e de custo muito baixo. Praticamente qualquer um poderia repetir este projeto! O código foi escrito de forma a não ter dependências e compilar em qualquer placa Arduino. E claro, os jogos foram testados intensivamente pelos nossos filhos :-)
Como este jogo difere de muitos outros já publicados?
- 5 jogos embutidos:
- Jogo da Memória (estilo "Simon-Diz", similar ao Touch Me)
- Jogo de Reação (similar ao Whack-a-Mole)
- Jogo de Competição (para 2-4 jogadores)
- Jogo de Melodia (modo livre para crianças pequenas)
- Jogo de Guerra (para 2-4 adultos)
- Ótimo design (na nossa opinião) e fácil de replicar.
- Ecológico porque permite reciclar o plástico.
No final deste guia há um vídeo passo a passo caso prefira o formato de vídeo.
Passo 1: Lista de Peças
Se gosta do projeto mas não tem pilha de Legos, o mais fácil é comprar o conjunto Lego Classic 10704 com 900 peças.
Lista de itens necessários:
- 1kg (2lb) de tijolos Lego indesejados (ou similares como Mega Bloks)
- Placa base 25x25cm para Lego (32x32 pinos). Se não tiver, custa ~$3 online (busque "32 25 blocks")
- Peça de acrílico transparente 30x30cm (5 ou 6mm espessura)
- 4 botões arcade grandes 60mm (recomendo vermelho, verde, azul, amarelo) (busque "60mm arcade button") – componente mais caro (~$2 cada)
- 2 botões momentâneos 16mm (recomendo branco e preto) (busque "16mm push button")
- Chave liga/desliga tipo rocker 27x21mm (recomendo vermelho transparente 4 pinos) (busque "rocker switch 16a")
- Arduino Nano
- Display LCD 1602 e módulo I2C
- 2 alto-falantes 4ohm 5W, tamanho 30x70mm (outros pequenos servem, mas o desenho CAD é para 30x70mm)
- Placa de prototipagem 8x6cm ou protoboard 830 pinos
- 2 baterias 18650 recarregáveis (podem ser recicladas de bateria de notebook morta)
- Suporte duplo para 18650 (busque "holder 2 x 18650")
- Controlador TP4056 de carga e proteção de descarga
- Conversor step-up 5V (menor 500mA serve)
- Pequenas coisas: fios, cabo Mini-USB ou plug DIY, soquete Micro-USB em PCB breakout, parafusos/porcas/arruelas M3, 4 parafusos tampa superior
- Resistores: 6x 100Ω, 1x 1kΩ, 3x 10kΩ
Passo 2: Construir a Caixa
Esta é a parte mais fácil, pode delegar às crianças. Use a base 32x32 pinos e construa as paredes com as peças recicladas. Deve ter cerca de 9 camadas no total. Escolhemos cinza claro para a base para que as paredes coloridas aleatórias sejam o foco.
Nenhuma caixa será igual. Seja criativo nas camadas. Recicle até peças pequenas – ficam legais. Formas irregulares também ficam bonitas. Adicione janelas, para-brisas de carros, portas e caixas.
A caixa deve ter pelo menos uma porta de tamanho normal do Lego. Necessária para instalar a chave rocker na parede.
Passo 3: Fazer a Tampa Superior
A tampa é feita de acrílico transparente 5 ou 6mm. Baixe o desenho CAD, coloque num pendrive e leve à oficina CNC mais próxima – eles fresam para você. O desenho CAD também inclui a placa de montagem da chave rocker (veja foto).
Você precisará fazer acabamento na tampa: chanfrar as bordas com lixa e bloco de madeira. Fure os furos para montar alto-falantes e display 1602. O display 1602 também requer um pequeno triângulo fresado na lateral da janela do LCD na chapa de acrílico (veja foto). Fiz isso em meia profundidade com ferramenta rotativa (Dremel) e fresa pequena.
top-template2.dxf
Passo 4: Adicionar Todos Componentes à Tampa
Instale os 4 botões arcade grandes, 2 botões de mudança/seleção de jogo, 2 alto-falantes e módulo LCD 1602+I2C. Tudo fixado com parafusos M3 + arruelas e porcas M3 na parte traseira.
Antes de instalar os botões arcade – remova os suportes de LED. Você precisará modificá-los um pouco – veja próximo passo.
Passo 5: Modificar LEDs nos Botões Arcade
Estes botões arcade são projetados para operar a 12V. Funcionam com 5V (tensão padrão do projeto) mas ficam muito fracos. Removi os soquetes de LED dos botões, deslizei os suportes de LED para fora e removi os LEDs com resistores. Os resistores de 460Ω precisam ser dessoldados e substituídos por 100Ω. Depois, montei tudo de volta e instalei os LEDs com suportes nos botões.
Passo 6: (Opcional) Rótulos nos Botões de Controle
Pode ter notado os rótulos nos 2 botões de controle. Nossa primeira versão não tinha, mas decidi adicionar na segunda montagem.
Ambos os botões têm múltiplas funções dependendo do estado do jogo. Botão branco inicia o jogo selecionado ou confirma seleção durante alguns jogos. Botão preto muda o jogo selecionado ou sai durante o jogo.
Para criar rótulos redondos, precisa de chapa de alumínio fina (máx 1mm), serra copo, broca escalonada e punções de letras (veja foto). Primeiro corte o círculo com serra copo. Depois alargue o diâmetro interno com broca escalonada e use punções para criar os rótulos. Para tornar letras mais visíveis, use marcador permanente preto (sharpie).
Passo 7: Fazer a Placa Breakout
Duas opções: usar protoboard e ligar Arduino com cabos através da protoboard, ou instalar uma pequena placa breakout na traseira do painel LCD.
Na primeira montagem usamos protoboard (veja foto). Na segunda, decidimos gastar mais tempo para criar placa breakout. A funcionalidade não muda, mas há menos fios e a breakout fica escondida sob o painel LCD.
Se optar pela breakout, pegue a placa de prototipagem 8x6 e corte como mostrado na foto. Parte maior para breakout, menor para fonte de alimentação.
Solde o Arduino Nano nesta protoboard.
Passo 8: Ligar as Conexões
Prepare cabos e faça a fiação dos interruptores e conexões ao Nano conforme o diagrama.
Desde que comecei a usar cabos de par trançado Ethernet – esqueci a dor de cabeça de onde conseguir fios. São coloridos e multicondutores, não quebram fácil. O único cuidado ao soldar é ser rápido para não queimar o isolamento.
Observações sobre conexões:
- Botões de controle Preto/Branco conectados dos pinos D2/D3 diretamente ao GND porque usam pull-up interno do Nano.
- A4/A5 conectados aos pinos I2C SDA/SCL. Necessário para módulo LCD I2C.
- Alto-falantes devem conectar a D10/D11 porque estes pinos têm PWM.
- Recomenda-se adicionar uma pequena trilha de cobre como trilho GND para facilitar conexão de todos os fios de terra (haverá ~5).
Passo 9: Ligar os Botões Arcade
Todos os Botões Arcade conectam a um único pino A1 através de uma série de resistores. A1 configurado como Pull-up Analógico Interno. Esta é uma das funcionalidades pouco conhecidas do Arduino que nos ajudou a economizar fios indo aos botões.
Configuração: de A1 ao primeiro botão através de resistor 1kΩ. Do botão1 ao botão2 através de 10kΩ. Botão2 ao botão3 através de 10kΩ. Botão3 ao botão4 através de 10kΩ. Cada botão no estado "fechado" curto-circuita ao GND. Como já há GND em cada botão para o LED, o segundo pino de cada chave conecta ao terra do LED. Veja o diagrama para entender a fiação.
Neste ponto, conectar um cabo Mini-USB no Arduino Nano deve permitir jogar após carregar o sketch. Só falta fonte de alimentação para tornar o jogo portátil.
Passo 10: Instalar as Baterias
Usei duas células 18650 recicladas de baterias de notebook mortas. São de menor capacidade (~600mAh) que não queria usar em aplicações de alta carga. O dispositivo não consome muita energia, deve durar dias.
As baterias ficam no suporte duplo 18650 com conector para fácil ligação à fonte.
Passo 11: Instalar Extensor de Soquete USB
O jogo deve recarregar e atualizar firmware sem desmontar. Furei um dos blocos para esconder o conector Micro-USB.
Para estender o USB da parede do bloco ao Arduino Nano, peguei um cabo Mini-USB, cortei a ponta USB-A (conector grande) e descasquei os fios. No meu caso, vermelho/preto eram alimentação e branco/verde eram D+/D-.
D+/D- precisam ser soldados no breakout Micro-USB. 5V e terra (vermelho/preto) devem passar pela fonte de alimentação.
Por que escolher breakout Micro-USB se o Nano usa Mini-USB? Simplesmente porque Micro-USB está em todo lugar nas nossas casas – carrega celulares e outros dispositivos. Assim você poderá carregar o jogo e atualizar firmware com seu cabo de celular :-)
Passo 12: Fazer a Fonte de Alimentação
Peguei a menor protoboard e soldei nela o módulo carregador/proteção TP4056 e também o booster 5V.
Entrada no TP4056 vem do soquete Micro-USB. Cabo da bateria conecta nos pinos B+/- do TP4056. Pinos OUT+/- vão para a chave rocker. Da chave rocker, conexões +/- vão para o módulo booster 5V e da saída do booster os fios vermelho/preto do cabo USB descascado são conectados.
Veja o diagrama para entender a fiação.
Passo 13: Epóxi no Breakout Micro-USB
Usei epóxi para fixar o breakout Micro-USB no bloco Lego. Após curar, o soquete ficará mais robusto que os de celulares, então as crianças poderão recarregar sem quebrar.
Recomendo epóxi de cura rápida. Se não tiver, adicione um pouco mais de endurecedor na resina e deixe descansar.
Passo 14: Instalar Chave Rocker e Conectar Chicote de Alimentação
Esta chave é enorme. Projetada para 250V rede. Mas usei este modelo porque fica ótimo e encaixa perfeitamente numa porta padrão Lego City. Insiri a chave na placa de montagem e fixei a placa na parede do bloco usando 2 parafusos (paredes pré-furadas).
Também o chicote pôde ser finalmente instalado, bem como o breakout Micro-USB epóxiado no bloco. Note como blocos adicionais foram usados para fixar componentes à base.
Passo 15: Fechar a Tampa
Insira o cabo Mini-USB no Arduino Nano fixado na tampa e feche a tampa.
Furei 4 furos nas paredes e usei 4 parafusos para fixar a tampa à caixa.
Passo 16: O Código
A primeira versão do jogo foi escrita por mim, seguida por 4 novas versões do meu amigo Alex que adicionou 4 jogos e limpou o código até a perfeição. Também usamos o trabalho de Reyboz para os sons – o nível de som produzido por este código é incrível comparado ao que vem por padrão com a biblioteca Tone do Arduino.
Como mencionado, o código foi otimizado por meses após testes extensivos de QA pelas crianças e atualmente subimos a versão 4 para o GitHub.
Última versão do Código Fonte: https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box
Tudo que precisa fazer é instalar a biblioteca 1602 I2C LCD (disponível no gerenciador de bibliotecas da Arduino IDE) e carregar nosso código.
Primeiro carregue o button-calibration.ino e anote em papel os valores que cada Botão Arcade produz. Este script também apaga a EEPROM para zerar recordes.
Depois, altere no Game-Settings.h os valores dos botões que você calibrou e carregue o Lego-Games-Box.ino principal e comece a jogar (desde que conectou tudo conforme o esquema dado acima).
Nota: se estiver fazendo este jogo para crianças, remova no Game-settings.h a última entrada de String GameTitle[] = {"Memory Game", "Reaction Game", "Tournament Game", "Melody Game", "Nuclear War Game"}; Esta última entrada tem regras onde cada jogador seleciona inimigos e pode ser muito agressivo para crianças.
Passo 17: Vídeo Detalhado de Como Fazer
Caso prefira assistir vídeo em vez de ler instruções, aqui está a versão em vídeo desta montagem.
Passo 18: Regras dos Jogos
Atualmente 5 jogos implementados. Se tiver mais ideias de jogos que poderiam ser criados com esta caixa – avise nos comentários. Vou explicar brevemente cada jogo.
Vire a chave rocker na lateral para ligar a Caixa de Jogos Arcade LEGO. Todos os jogos têm sons do jogo Mario nostálgico. Na inicialização você ouvirá a melodia de startup do Mario.
Uma vez ligado, verá no display LCD o jogo selecionado. Para mudar de jogo, pressione o botão preto.
Quando decidir qual jogo quer jogar, aperte o botão branco para iniciar.
Se quiser sair do jogo em andamento – pressione o botão preto.
Na inicialização, pode desligar sons (modo noturno) pressionando o botão vermelho.
Jogo da Memória
(estilo "Simon-Diz", similar ao Touch Me) Regras conhecidas e simples. O jogo mostra uma sequência de notas/luzes e você deve repeti-la. A cada rodada, mais um tom/luz é adicionado à sequência. Quanto mais tempo sobreviver, melhor sua memória. Excelente para treinar memória de curto prazo de crianças e adultos.
Jogo de Reação
(similar ao Whack-a-Mole) Precisa ser rápido para acertar cada botão que acende. Quanto mais tempo joga, mais rápido os botões acendem. Ótimo para treinar reflexos de crianças e adultos.
Jogo de Competição
(para 2-4 jogadores) Dadas 5 rodadas. Todos devem apertar seu botão o mais rápido possível após o sinal (som de moeda do Mario). Quem apertar primeiro vence a rodada. O número de vitórias é calculado ao final de 5 rodadas e o vencedor é anunciado.
Jogo de Melodia
(Modo livre "aperte e toque" para bebês e menores) Excelente para bebês – toca melodias alternadas quando você pressiona e segura um botão. Após testes iniciais com crianças, percebemos que nosso menor de 1 ano queria jogar mas não entendia COMO. As regras deste jogo são – SEM REGRAS. Pode apertar qualquer botão e ele produzirá sons.
Jogo de Guerra
(para 2-4 adultos) Meu amigo Alex, que programou versões posteriores, teve a ideia durante a crise Trump/Kim sobre quem tem o botão nuclear maior. As regras precisam de vídeo separado (pode encontrar aqui e aqui), mas resumidamente: seleciona número de jogadores no início e a cada rodada cada pessoa seleciona seu inimigo. Uma vez todos selecionados, mísseis começam a voar. Quem foi selecionado como inimigo tem alguns momentos para apertar o botão e enviar míssil de intercepção e salvar seu país. Rodadas continuam até restar apenas um país.
Passo 19: Resultado Final
Somos 3 amigos que dedicamos tempo para construir o jogo para nossos filhos. Esperamos que gostem tanto que construam sua própria versão usando estas instruções. Se tiver dúvidas ou sugestões – poste nos comentários.
Fotos finais em alta resolução:
Código
Disponível no GitHub: https://github.com/LenkaDesign/Arduino-Arcade-Lego-Games-Box
Peças Personalizadas e Gabinetes
top-template2_Ku502q1zeA.dxf
Esquemáticos
Processo de manufatura
- A Revolução da Caixa de Suco: História, Design e Impacto Ambiental
- Pinball: História, Design e Fabricação de um Clássico dos Fliperamas
- Robô DIY Inspirado no Wall‑E com Caixa de CD e Raspberry Pi
- Construa uma Boneca Interativa Temática de Round 6 com Arduino UNO – Projeto DIY
- Giftduino: Kit Presente Arduino Definitivo para Hobbyistas e Educadores
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Construa um Atirador Automatizado LEGO Star Wars com Arduino Uno