Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um Jogo da Velha Touchscreen no Arduino Due

Componentes e Materiais

ComponenteQuantidade
Arduino Due1
Display TFT 2.8" com Touchscreen Resistivo (ILI9341)1
Jumpers (fios macho-macho)1 kit

Aplicativos

Sobre o Projeto

Implementação do clássico Jogo da Velha (Tic-Tac-Toe) em tela touchscreen 2.8" com Arduino Due. O jogador compete contra uma IA invencível (algoritmo Minimax). Baseado no projeto de nickthegreek82, com otimizações de código e IA aprimorada (créditos a klauscam).

Bibliotecas Necessárias

Ligação (Wiring)

Touchscreen → Arduino Due

Display → Arduino Due

Funcionamento

  1. Tela inicial: botão "Gamestart".
  2. Escolha quem começa: "YOU" (você) ou "CPU".
  3. Tabuleiro 3x3 desenhado com linhas brancas.
  4. Sua jogada: toque no quadrante desejado (X azul).
  5. Jogada da CPU: círculo vermelho, calculado por Minimax.
  6. Detecção de vitória/empate com linha branca sobre a sequência vencedora.
  7. Fim de jogo: tela "GAME OVER" com resultado (HUMAN WINS, CPU WINS, DRAW) e botão "Again?".

Código

Duas versões disponíveis:

1. Versão Original (IA básica)

// Inclui bibliotecas, define pinos, bitmaps de X e O (PROGMEM)
// Setup: inicializa touch, display, desenha tela inicial, espera toque no botão start.
// Loop: zera tabuleiro, pergunta quem começa, desenha grade, alterna jogadas.
// playerMove(): lê toque, mapeia coordenadas para índice 0-8, desenha X.
// arduinoMove(): estratégia simples – cantos primeiro, centro, bloqueio, aleatório.
// checkWinner(): verifica 8 combinações, desenha linha vencedora.
// waitonetouch(): bloqueia até toque detectado.

2. Versão Otimizada – IA Invencível (Minimax)

// Mesmas bibliotecas, pinos e bitmaps.
// Loop principal:
//   - Desenha tela inicial, espera "Gamestart".
//   - Pergunta quem começa (botões YOU/CPU).
//   - Desenha grade (linhas mais grossas via loop de 7 pixels).
//   - For turn = 0 to 8 while win(board)==0:
//       if ((turn+player)%2==0) computerMove(board); else playerMove(board);
//   - Exibe resultado, espera toque para reiniciar.
// computerMove(): Minimax com poda (depth limitado por 'difficulty').
//   Tenta todos os movimentos vazios, chama minimax(board, -1, depth+1),
//   escolhe movimento com maior score (pior para oponente).
// minimax(): retorna score terminal (1, -1, 0) ou melhor score recursivo.
// win(board): verifica array wins[8][3] para vitória.
// playerMove(): lê toque, mapeia regiões de toque para índices 0-8.
// drawBitmap(): renderiza bitmap PROGMEM pixel a pixel.
// drawCpuMove()/drawPlayerMove(): chamam drawBitmap nas coordenadas certas.

Esquemático

Construa um Jogo da Velha Touchscreen no Arduino Due

Processo de manufatura

  1. Cartão de Visita PCB 4×4 Jogo da Velha Personalizado – Guia de Design, Montagem e Código
  2. Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
  3. Facilitando Comunicação Surdo-Cego com 1Sheeld e Arduino
  4. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  5. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  6. Integrando Sensor de Impressão Digital Capacitivo DFRobot com Arduino ou ESP8266
  7. Projeto HMI Interativo com Nextion, Arduino Mega e Sensores
  8. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  9. Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield
  10. Sistema Radar Compacto com Arduino Nano, Sensor HC-SR04 e Display 1.8"