Sistema de jogos interativos com matriz 4x4 de LEDs conectada ao Arduino, controlado por aplicação desktop em Avalonia UI com sistema de autenticação e áudio integrado.
- Digite seu nome e código de acesso (ex:
AB1234) - Escolha um dos 7 jogos disponíveis
- Clique "🚀 Entrar no Jogo"
- Arduino conecta automaticamente e o jogo inicia!
- Digite apenas:
ADMIN2024 - Acesso total liberado (debug, configurações, geração de códigos)
- Conecte Arduino manualmente na porta desejada
| Jogo | Dificuldade | Descrição | Objetivo |
|---|---|---|---|
| 🎯 Pega-Luz | ⭐⭐ | Pressione LEDs que acendem rapidamente | Máxima velocidade de reação |
| 🧠 Sequência Maluca | ⭐⭐⭐ | Memorize e repita sequências crescentes | Memorização perfeita |
| 🐱 Gato e Rato | ⭐⭐ | Persiga o LED piscante pela matriz | Capture o "rato" LED |
| 🌧️ Esquiva Meteoros | ⭐⭐⭐ | Desvie dos meteoros que caem | Sobreviva o máximo possível |
| 🎸 Guitar Hero | ⭐⭐⭐⭐ | Toque as notas no ritmo correto | Timing musical perfeito |
| ⚡ Lightning Strike | ⭐⭐⭐⭐⭐ | Memorize padrões ultra-rápidos | Reflexos sobre-humanos |
| 🎯 Sniper Mode | ⭐⭐⭐⭐⭐ | Mire em alvos que piscam brevemente | Precisão impossível |
🔧 Administradores
- Código:
ADMIN2024 - Acesso total ao sistema
- Geração de códigos de cliente
- Debug e configurações avançadas
- Conexão manual do Arduino
🎮 Clientes/Jogadores
- Códigos únicos de 6 caracteres (ex:
AB1234,MX7391) - Nome obrigatório para identificação
- Interface simplificada focada no jogo
- Conexão automática do Arduino
- Formato: 2 letras + 4 números (ex:
UV7617) - Únicos: Cada código usado apenas 1 vez
- Arquivo:
client_codes.jsoncom 116+ códigos disponíveis - Controle:
used_codes.jsonregistra códigos utilizados
- WASD ou Setas: Movimento/navegação
- Espaço: Ação principal
- Enter: Confirmar
- ESC: Pausar/Voltar
- F2: Parar jogo
- F3: Reset do sistema
- F6: Parar todos os efeitos
- F7: Matrix Rain (chuva digital)
- F8: Pulso Universal (todos LEDs)
- F9: Fogos de Artifício
- F10: Demo completa de efeitos
- Arduino Uno R3
- 16x LEDs (4 vermelhos, 4 amarelos, 4 verdes, 4 azuis)
- 16x Resistores 220Ω
- Protoboard e jumpers
- Cabo USB A-B
Linha 0 (VERMELHOS): LEDs 0-3 → Pinos 2-5
Linha 1 (AMARELOS): LEDs 4-7 → Pinos 6-9
Linha 2 (VERDES): LEDs 8-11 → Pinos 10-13
Linha 3 (AZUIS): LEDs 12-15 → Pinos A0-A3
┌─────────────────────────┐
│ 🔴 🔴 🔴 🔴 │ ← Linha 0 (Pinos 2-5)
│ 🟡 🟡 🟡 🟡 │ ← Linha 1 (Pinos 6-9)
│ 🟢 🟢 🟢 🟢 │ ← Linha 2 (Pinos 10-13)
│ 🔵 🔵 🔵 🔵 │ ← Linha 3 (Pinos A0-A3)
└─────────────────────────┘
- Windows 10/11 x64
- .NET 9.0 Runtime
- Arduino IDE 2.x
- Porta USB disponível
- Clone o repositório
- Instale dependências:
dotnet restore - Upload do firmware:
arduino_led_games.inopara o Arduino - Execute:
dotnet run - Conecte o Arduino via USB
miniJogo/
├── arduino_led_games.ino # Firmware Arduino (7 jogos)
├── MainWindow.axaml(.cs) # Interface principal
├── Views/ # Janelas da aplicação
│ ├── LoginWindow # Sistema de login
│ ├── ScoresWindow # Rankings e pontuações
│ ├── VictoryWindow # Tela de vitória
│ └── RoundsCompletedWindow # Fim de jogo
├── Services/ # Serviços da aplicação
│ ├── ArduinoService.cs # Comunicação serial
│ ├── AuthService.cs # Autenticação
│ ├── AudioService.cs # Sistema de áudio
│ ├── ScoreService.cs # Pontuações
│ └── GameService.cs # Lógica dos jogos
├── Assets/Audio/ # Sons organizados em categorias
│ ├── Sistema/ # Interface e navegação
│ ├── Jogos/ # Eventos de jogo
│ ├── Específicos/ # Sons únicos por jogo
│ ├── Efeitos/ # Efeitos visuais
│ └── Ambiente/ # Música de fundo
├── Models/ # Modelos de dados
├── client_codes.json # Códigos válidos
└── used_codes.json # Códigos já utilizados
- 42+ sons únicos distribuídos em 5 categorias
- NAudio para reprodução de alta qualidade
- Feedback sonoro para cada ação do jogo
- Efeitos sincronizados com animações visuais
- Sistema: Login, cliques, navegação
- Jogos: Vitória, game over, level up
- Específicos: Sons únicos para cada jogo
- Efeitos: Matrix, fogos, pulsos
- Ambiente: Música de fundo
- Rankings globais por jogo
- Estatísticas detalhadas (score, level, duração)
- Histórico completo de partidas
- Performance virtualizada para grandes volumes de dados
- Exportação de dados para análise
- Nome do jogador
- Jogo específico
- Pontuação final
- Nível alcançado
- Duração da partida
- Timestamp da sessão
START_GAME:[1-7] # Iniciar jogo específico
STOP_GAME # Parar jogo atual
KEY_PRESS:[0-15] # Tecla pressionada
INIT # Inicializar sistema
EFFECT_[TIPO] # Ativar efeito visual
READY # Sistema pronto
GAME_EVENT:[dados] # Eventos do jogo
LED_STATE:[estado] # Estado dos LEDs
SCORE_UPDATE:[pontos] # Atualização de score
GAME_OVER:[score] # Fim de jogo
Arduino não conecta
- Verifique cabo USB e drivers
- Teste outras portas COM
- Confirme upload do firmware
LEDs não funcionam
- Verifique todas as conexões
- Teste resistores 220Ω
- Confirme alimentação correta
Código de cliente inválido
- Verifique se foi digitado corretamente
- Código pode já ter sido usado
- Admins podem gerar novos códigos
Sem áudio
- Verifique drivers de áudio do Windows
- Confirme que a aplicação tem permissão de áudio
- Teste com outros aplicativos de som
- Avalonia UI 11.3 - Interface moderna e responsiva
- Performance otimizada com Compiled Bindings
- Comunicação serial robusta com System.IO.Ports
- Gerenciamento de memória inteligente
- Sistema de logs para debug
- Arquitetura MVVM bem estruturada
Este projeto está licenciado sob a MIT License. Consulte o arquivo LICENSE para detalhes.
- Issues: Reporte problemas no GitHub
- Documentação: Este README e comentários no código
- Debug: Use o modo administrador para logs detalhados
🎮 Mini Jogo LEDs - Diversão garantida com Arduino!