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

Tech-TicTacToe

Componentes e suprimentos

Arduino UNO
Arduino
× 1
MAX7219 LED dot Matrix
× 1
Teclado de troca de membrana
× 1

Ferramentas e máquinas necessárias

Pistola de cola quente (genérica)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Olá, comunidade Hackster.

Sou Simone Adobs e este é meu terceiro projeto que lancei no Hackster. Este é o meu primeiro projeto onde crio uma estrutura em papelão, papel e pistola de cola quente, que contém o Arduino e outros componentes.

Este é um pequeno vídeo que mostra como funciona o Tris:

Aqui você pode ver o projeto de todas as visualizações:

Espero que gostem, pois passei algumas horas nisso! Agora vamos começar com o projeto.





Como funciona o Tris?


A resposta é muito simples:quando você clica em um número no teclado, o Arduino liga o quadrado correspondente.
  • Posso trocar de jogador?

Quando você liga um quadrado, o Arduino instantaneamente muda para a vez do próximo jogador.
  • O Arduino reconhece quando eu ganho?

Quando um jogador ganha, o Arduino escreve no LED Dot Matrix:
  • "1" se o vencedor for o jogador 1;
  • "2" se o vencedor for o jogador 2.

Quando o jogo terminar, posso reiniciar o Arduino com um botão?

Você pode reiniciar o jogo clicando no botão "0" no teclado - o Arduino reinicia sozinho.





Como posso reconhecer um jogador?


Você pode reconhecer facilmente um jogador porque, embora o LED Dot Matrix seja apenas vermelho, cada jogador tem um padrão específico formado por 2x2 LED:
  • O jogador 1 tem este padrão: "\"
  • O jogador 2 tem este outro padrão: "/"

Em caso de dúvidas, sugestões, críticas ou explicação do código, fique à vontade para comentar abaixo. Se gostou desse projeto deixe um like e dê uma olhada nos meus outros projetos!

Tente fazer outra estrutura ou personalize minha estrutura e me mande uma foto dela!

Tenha um BOM DIA!

Simone da Itália <3

Código

  • Tech-Tris
Tech-Tris C / C ++
 #include  #include  #include  #include  #define Reset_AVR () wdt_enable (WDTO_30MS); while (1) {} LedControl lc =LedControl (12,10,11,1); bool player1 =verdadeiro, q1 =falso, q2 =falso, q3 =falso, q4 =falso, q5 =falso, q6 =falso, q7 =falso, q8 =falso, q9 =falso; int row, col, rowPlays, colPlays, resultado, jogador, vencedor; char hexaKeys [4] [3] ={{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; jogos internos [3] [3 ] ={{0,0,0}, {0,0,0}, {0,0,0}}; byte rowPins [4] ={8, 7, 6, 5}; byte colPins [3] ={4, 3, 2}; Teclado customKeypad =Teclado (makeKeymap (hexaKeys), rowPins, colPins, 4, 3); void setup () {lc.shutdown (0, falso); lc.setIntensity (0,0); lc.clearDisplay (0);} void loop () {int customKey =customKeypad.getKey (); pintura (customKey); ganhar (resultado); if (vencedor ==1) {lc.clearDisplay (0); enquanto (vencedor ==1) {char customKey =customKeypad.getKey (); if (customKey =='0') {Reset_AVR (); } lc.setLed (0,1,4, verdadeiro); lc.setLed (0,2,5, verdadeiro); lc.setLed (0,3,6, verdadeiro); lc.setLed (0,4,7, verdadeiro); lc.setLed (0,4,6, verdadeiro); lc.setLed (0,4,5, verdadeiro); lc.setLed (0,4,4, verdadeiro); lc.setLed (0,4,3, verdadeiro); lc.setLed (0,4,2, verdadeiro); lc.setLed (0,4,1, verdadeiro); lc.setLed (0,4,0, verdadeiro); lc.setLed (0,5,0, verdadeiro); lc.setLed (0,6,0, verdadeiro); lc.setLed (0,3,0, verdadeiro); lc.setLed (0,2,0, verdadeiro); }} else if (vencedor ==2) {lc.clearDisplay (0); enquanto (vencedor ==2) {char customKey =customKeypad.getKey (); if (customKey =='0') {Reset_AVR (); } lc.setLed (0,2,0, verdadeiro); lc.setLed (0,3,0, verdadeiro); lc.setLed (0,4,0, verdadeiro); lc.setLed (0,5,0, verdadeiro); lc.setLed (0,2,1, verdadeiro); lc.setLed (0,2,2, verdadeiro); lc.setLed (0,2,3, verdadeiro); lc.setLed (0,2,4, verdadeiro); lc.setLed (0,3,4, verdadeiro); lc.setLed (0,4,4, verdadeiro); lc.setLed (0,5,4, verdadeiro); lc.setLed (0,5,5, verdadeiro); lc.setLed (0,5,6, verdadeiro); lc.setLed (0,5,7, verdadeiro); lc.setLed (0,4,7, verdadeiro); lc.setLed (0,3,7, verdadeiro); lc.setLed (0,2,7, verdadeiro); }}} int round_player () {if (player1) {player1 =false; resultado =1; } else {player1 =true; resultado =2; } resultado de retorno;} vitória nula (jogador interno) {if (joga [0] [0] ==jogador &&joga [0] [1] ==jogador &&joga [0] [2] ==jogador) {vencedor =jogador; } else if (joga [1] [0] ==jogador &&joga [1] [1] ==jogador &&joga [1] [2] ==jogador) {vencedor =jogador; } else if (joga [2] [0] ==jogador &&joga [2] [1] ==jogador &&joga [2] [2] ==jogador) {vencedor =jogador; } else if (joga [0] [0] ==jogador &&joga [1] [0] ==jogador &&joga [2] [0] ==jogador) {vencedor =jogador; } else if (joga [0] [1] ==jogador &&joga [1] [1] ==jogador &&joga [2] [1] ==jogador) {vencedor =jogador; } else if (joga [0] [2] ==jogador &&joga [1] [2] ==jogador &&joga [2] [2] ==jogador) {vencedor =jogador; } else if (joga [0] [0] ==jogador &&joga [1] [1] ==jogador &&joga [2] [2] ==jogador) {vencedor =jogador; } else if (joga [0] [2] ==jogador &&joga [1] [1] ==jogador &&joga [2] [0] ==jogador) {vencedor =jogador; }} void switch_on_led (int col, int row, int colPlays, int rowPlays) {if (player1) {lc.setLed (0, col, row, true); lc.setLed (0, col + 1, linha 1, verdadeiro); } else {lc.setLed (0, col, linha 1, verdadeiro); lc.setLed (0, col + 1, linha, verdadeiro); } reproduz [rowPlays] [colPlays] =round_player ();} void painting (int bottone) {switch (bottone) {case 49:if (! q1) {switch_on_led (0,7,0,0); q1 =verdadeiro; } pausa; caso 50:if (! q2) {switch_on_led (3,7,0,1); q2 =verdadeiro; } pausa; caso 51:if (! q3) {switch_on_led (6,7,0,2); q3 =verdadeiro; } pausa; caso 52:if (! q4) {switch_on_led (0,4,1,0); q4 =verdadeiro; } pausa; caso 53:if (! q5) {switch_on_led (3,4,1,1); q5 =verdadeiro; } pausa; caso 54:if (! q6) {switch_on_led (6,4,1,2); q6 =verdadeiro; } pausa; caso 55:if (! q7) {switch_on_led (0,1,2,0); q7 =verdadeiro; } pausa; caso 56:if (! q8) {switch_on_led (3,1,2,1); q8 =verdadeiro; } pausa; caso 57:if (! q9) {switch_on_led (6,1,2,2); q9 =verdadeiro; } pausa; caso 48:Reset_AVR (); pausa; }} 

Esquemas

tris_1Nd6QnEjNE.fzz

Processo de manufatura

  1. Faça Monitor Ambilight usando Arduino
  2. Jogo Arduino Pong - Tela OLED
  3. Jogo de Operação Gigante Animatronics Lego Minfig
  4. Detector de frequência de áudio
  5. Arduino Tamagotchi Clone - Animal de estimação digital
  6. Manipulador de interruptor de luz sem fio
  7. Pistola de água com sensor de movimento
  8. Cronômetro de contagem regressiva do Arduino
  9. Dispositivos Bluetooth controlados por voz com OK Google
  10. Arduino Sunflower:An Electronic Sun-Dancer