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

Cartão de visita do jogo Tic Tac Toe

Componentes e suprimentos

Tecnologia Microchip ATmega328
× 1
Faixa de LED, NeoPixel Digital RGB
× 1
Interruptor tátil, acionado pela parte superior
× 1
PCB personalizado JLCPCB
× 1
Arduino UNO
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
Arame de solda, sem chumbo
Fluxo de solda, solda
10 Pc. Kit de jumper de fio, 5 cm de comprimento

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Olá

Neste tutorial, vou mostrar como fazer um cartão de visita / visita. Não apenas um cartão de visita. Este é um PCB mas como um cartão de visita normal. Você pode ver o nome, logotipo, ícones de mídia social e um código QR da EDISON SCIENCE CORNER. O código QR irá direcioná-lo para o meu canal no youtube. Mas do lado oposto, você pode ver um circuito. Este é um jogo da velha circuito de jogo. O jogo da velha é um jogo para dois jogadores. Também conhecido como X O Game . dois jogadores que se revezam marcando os espaços em uma grade de três por três com X ou O. O jogador que conseguir colocar três de suas marcas em uma linha horizontal, vertical ou diagonal é o vencedor. Na maioria das vezes, o jogo empatará. aqui, substituí X e O por cores e também mudei o 3 * 3 tradicional para 4 * 4. Portanto, um total de 16 leds e 16 interruptores cada interruptor representa o led correspondente. O jogador um é verde e o jogador 2 é vermelho. É isso, acho que você entendeu.

Agora vamos ver como fazer isso.

Etapa 1:Projeto e impressão do PCB


Este é o circuito de jogo que projetei usando a easyeda . aqui estou usando atmega328 como o coração deste projeto. Então eu converti o circuito em PCB. Eu projetei o PCB com uma dimensão de 89 mm * 50 mm porque esse é o tamanho padrão dos cartões de visita. Usei a ferramenta de inserção de imagem da easyeda para fazer o design. trata-se apenas de arte que você pode fazer com suas ideias. Depois de projetar o PCB, baixei o arquivo Gerber. Em seguida, fui para jlcpcb.com. Eu escolhi o JLCPCB porque eles oferecem apenas 2 $ por 5 PCBs. Para solicitar PCBs Basta clicar em solicitar agora e selecionar seu arquivo Gerber. após o upload, escolhi a cor preta de 0,8 mm de espessura e fiz o pedido. após 2 semanas recebi o PCB. O PCB tem apenas 0,8 mm de espessura, mas a qualidade é perfeita como eu esperava.

Etapa 2:componentes necessários


ATMEGA328P-AU * 1

0805 capacitor 22pf * 2

0805 capacitor 100nF * 2

SMD WS2812B-B * 16

0805 LED SMD * 2

0805 resistências 1K * 3

0805 resistores 10K 1

16MHZ * 1

micro USB Feminino * 1

baixe o BOM aqui

Etapa 3:soldagem


depois de pegar todos os componentes comecei a soldar

Comecei com a porta micro USB. Então eu soldava todos os outros componentes. Depois de soldar o circuito de controle, comecei a soldar LEDs de neopixel e depois de terminar soldei os interruptores correspondentes. Após 1 hora, concluí toda a soldagem e agora nosso PCB está assim.

Etapa 4:Programação


após terminar a soldagem conectei o cabo USB e testei. Agora é hora de fazer upload do código. Eu conectei os pinos spi a um Arduino ISP e carreguei o esboço

BAIXE O CÓDIGO DAQUI

Etapa 5:BRINQUE E DESFRUTE


Foi assim que fiz um cartão de visita com PCB de jogo 4 * 4 tic tac toe. Você pode baixar o circuito, código, gerbers dos links. Espero que você tenha gostado e aprendido algo com meu tutorial.

Código

  • código
código C / C ++
 // edison science corner # include  #include  #define LED_PIN 5 # define NUM_LEDS 16 # define LED_TYPE WS2812B # define COLOR_ORDER GBR # define BRIGHTNESS 30CRGB leds [NUM_LEDS]; int player =1; int n, i, e =0, j =0; char a [16] ={'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'}; chave char; int w =0; const byte ROWS =4; // quatro linhasconst byte COLS =4; // quatro colunas // definem os símbolos nos botões do teclado hexaKeys [ROWS] [COLS] ={{'1', '2', '3', 'A'}, {'4', '5' , '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ ROWS] ={A0, A1, A2, A3}; // conectar às pinagens de linha do byte do teclado colPins [COLS] ={A4, A5,2,3}; // conectar à pinagem da coluna do keypadKeypad customKeypad =Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS); void setup () {Serial.begin (9600); LEDS.addLeds  (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); para (int m =0; m <3; m ++) {leds [0] .setRGB (0, 255, 0); leds [1] .setRGB (0, 255, 0); leds [2] .setRGB (0, 255, 0); leds [3] .setRGB (0, 255, 0); leds [4] .setRGB (0, 255, 0); leds [5] .setRGB (0, 255, 0); leds [6] .setRGB (0, 255,0); leds [7] .setRGB (0, 255, 0); leds [8] .setRGB (0, 255, 0); leds [9] .setRGB (0, 255, 0); leds [10] .setRGB (0, 255, 0); leds [11] .setRGB (0, 255, 0); leds [12] .setRGB (0, 255, 0); leds [13] .setRGB (0, 255, 0); leds [14] .setRGB (0, 255, 0); leds [15] .setRGB (0, 255, 0); FastLED.show (); atraso (500); leds [0] .setRGB (0, 0, 225); leds [1] .setRGB (0, 0, 225); leds [2] .setRGB (0, 0, 225); leds [3] .setRGB (0, 0, 225); leds [4] .setRGB (0, 0, 225); leds [5]. setRGB (0, 0, 225); leds [6] .setRGB (0, 0, 225); leds [7]. setRGB (0, 0, 225); leds [8]. setRGB (0, 0, 225); leds [9] .setRGB (0, 0, 225); leds [10] .setRGB (0, 0, 225); leds [11] .setRGB (0, 0, 225); leds [12]. setRGB (0, 0, 225); leds [13]. setRGB (0, 0, 225); leds [14]. setRGB (0, 0, 225); leds [15]. setRGB (0, 0, 225); FastLED.show (); atraso (500); } FastLED.clear (); FastLED.show ();} void loop () {key =customKeypad.getKey (); if (chave &&player ==1) {Serial.println ("\ nP1"); Serial.println (chave); n =número (chave); Serial.println (n); leds [n] .setRGB (0, 255, 0); FastLED.show (); a [n] ='X'; Serial.println (a [n]); w =verificação (a, n); if (w ==1) {Serial.println ("Jogador 1 ganha!"); enquanto (1) {leds [0] .setRGB (0, 255, 0); leds [1] .setRGB (0, 255, 0); leds [2] .setRGB (0, 255, 0); leds [3] .setRGB (0, 255, 0); leds [4] .setRGB (0, 255, 0); leds [5] .setRGB (0, 255, 0); leds [6] .setRGB (0, 255,0); leds [7] .setRGB (0, 255, 0); leds [8] .setRGB (0, 255, 0); leds [9] .setRGB (0, 255, 0); leds [10] .setRGB (0, 255, 0); leds [11] .setRGB (0, 255, 0); leds [12] .setRGB (0, 255, 0); leds [13] .setRGB (0, 255, 0); leds [14] .setRGB (0, 255, 0); leds [15] .setRGB (0, 255, 0); FastLED.show (); atraso (500); FastLED.clear (); FastLED.show (); atraso (500); }} player ++; atraso (1000); } atraso (20); key =customKeypad.getKey (); if (chave &&player ==2) {Serial.println ("\ nP2"); Serial.println (chave); n =número (chave); Serial.println (n); leds [n] .setRGB (0, 0, 225); FastLED.show (); a [n] ='0'; Serial.println (a [n]); w =verificação (a, n); if (w ==2) {Serial.println ("Jogador 2 ganha!"); enquanto (1) {leds [0] .setRGB (0, 0, 225); leds [1] .setRGB (0, 0, 225); leds [2] .setRGB (0, 0, 225); leds [3] .setRGB (0, 0, 225); leds [4] .setRGB (0, 0, 225); leds [5]. setRGB (0, 0, 225); leds [6] .setRGB (0, 0, 225); leds [7]. setRGB (0, 0, 225); leds [8]. setRGB (0, 0, 225); leds [9] .setRGB (0, 0, 225); leds [10] .setRGB (0, 0, 225); leds [11] .setRGB (0, 0, 225); leds [12]. setRGB (0, 0, 225); leds [13]. setRGB (0, 0, 225); leds [14]. setRGB (0, 0, 225); leds [15]. setRGB (0, 0, 225); FastLED.show (); atraso (500); FastLED.clear (); FastLED.show (); atraso (500); }} e ++; jogador--; atraso (1000); } if (e ==8) {Serial.println ("Game Draw"); enquanto (1) {leds [0] .setRGB (255, 0, 0); leds [1] .setRGB (255, 0, 0); leds [2] .setRGB (255, 0, 0); leds [3] .setRGB (255, 0, 0); leds [4] .setRGB (255, 0, 0); leds [5] .setRGB (255, 0, 0); leds [6] .setRGB (255, 0, 0); leds [7] .setRGB (255, 0, 0); leds [8] .setRGB (255, 0, 0); leds [9] .setRGB (255, 0, 0); leds [10] .setRGB (255, 0, 0); leds [11] .setRGB (255, 0, 0); leds [12] .setRGB (255, 0, 0); leds [13] .setRGB (255, 0, 0); leds [14] .setRGB (255, 0, 0); leds [15] .setRGB (255, 0, 0); FastLED.show (); atraso (1000); FastLED.clear (); FastLED.show (); atraso (500); }} delay (20);} número interno (char keyn) {if (keyn =='1') return 0; if (keyn =='2') return 1; if (keyn =='3') return 2; if (chave =='A') retorna 3; if (keyn =='4') return 4; if (keyn =='5') retorna 5; if (keyn =='6') return 6; if (keyn =='B') return 7; if (keyn =='7') retorna 8; if (keyn =='8') return 9; if (keyn =='9') retorna 10; if (keyn =='C') return 11; if (key =='*') return 12; if (keyn =='0') return 13; if (keyn =='#') return 14; if (keyn =='D') return 15;} int check (char a [16], int n) {if (a [0] =='X' &&a [1] =='X' &&a [ 2] =='X' &&a [3] =='X') return 1; if (a [0] =='0' &&a [1] =='0' &&a [2] =='0' &&a [3] =='0') return 2; if (a [0] =='X' &&a [4] =='X' &&a [8] =='X' &&a [12] =='X') return 1; if (a [0] =='0' &&a [4] =='0' &&a [8] =='0' &&a [12] =='0') return 2; if (a [0] =='X' &&a [5] =='X' &&a [10] =='X' &&a [15] =='X') return 1; if (a [0] =='0' &&a [5] =='0' &&a [10] =='0' &&a [15] =='0') return 2; if (a [1] =='X' &&a [5] =='X' &&a [9] =='X' &&a [13] =='X') return 1; if (a [1] =='0' &&a [5] =='0' &&a [9] =='0' &&a [13] =='0') return 2; if (a [2] =='X' &&a [6] =='X' &&a [10] =='X' &&a [14] =='X') return 1; if (a [2] =='0' &&a [6] =='0' &&a [10] =='0' &&a [14] =='0') return 2; if (a [3] =='X' &&a [7] =='X' &&a [11] =='X' &&a [15] =='X') return 1; if (a [3] =='0' &&a [7] =='0' &&a [11] =='0' &&a [15] =='0') return 2; if (a [3] =='X' &&a [6] =='X' &&a [9] =='X' &&a [12] =='X') return 1; if (a [3] =='0' &&a [6] =='0' &&a [9] =='0' &&a [12] =='0') return 2; if (a [4] =='X' &&a [5] =='X' &&a [6] =='X' &&a [7] =='X') return 1; if (a [4] =='0' &&a [5] =='0' &&a [6] =='0' &&a [7] =='0') return 2; if (a [8] =='X' &&a [9] =='X' &&a [10] =='X' &&a [11] =='X') return 1; if (a [8] =='0' &&a [9] =='0' &&a [10] =='0' &&a [11] =='0') return 2; if (a [12] =='X' &&a [13] =='X' &&a [14] =='X' &&a [15] =='X') return 1; if (a [12] =='0' &&a [13] =='0' &&a [14] =='0' &&a [15] =='0') return 2;} 

Esquemas


Processo de manufatura

  1. Jogo Arduino Gyroscope com MPU-6050
  2. Sensor de temperatura múltipla
  3. DIY 37 LED Roulette Game
  4. Controlador de jogo Arduino
  5. Arduino Due TIC TAC TOE com tela sensível ao toque
  6. MotionSense
  7. Impressora 3D Segurança contra incêndio
  8. Jogo Pixel Chaser
  9. Levitação eletromagnética repulsiva Arduino
  10. CoroFence - Detector Térmico🖖