Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Tarjeta de visita del juego Tic Tac Toe

Componentes y suministros

Tecnología de microchip ATmega328
× 1
Tira de LED, NeoPixel Digital RGB
× 1
Interruptor táctil, accionado por la parte superior
× 1
JLCPCB PCB personalizado
× 1
Arduino UNO
× 1

Herramientas y máquinas necesarias

Soldador (genérico)
Alambre de soldadura, sin plomo
Fundente de soldadura, soldadura
10 Pz. Kit de cables de puente, 5 cm de largo

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Hola

En este tutorial, le mostraré cómo hacer una tarjeta de visita / presentación. No solo una tarjeta de visita. Esta es una PCB pero como una tarjeta de visita normal. Puede ver el nombre, el logotipo, los íconos de redes sociales y un código QR de EDISON SCIENCE CORNER. El código QR lo dirigirá a mi canal de youtube. Pero en el lado opuesto, puedes ver un circuito. Esto es un tic tac toe circuito de juego. Tic tac toe es un juego de dos jugadores. También conocido como X O Game . dos jugadores que se turnan para marcar los espacios en una cuadrícula de tres por tres con X u O. El jugador que logra colocar tres de sus marcas en una fila horizontal, vertical o diagonal es el ganador. La mayor parte del tiempo el juego se dibujará. aquí reemplacé X y O con colores y también cambié el tradicional 3 * 3 en 4 * 4. Entonces, un total de 16 leds y 16 interruptores cada interruptor representa el led correspondiente. El jugador uno es de color verde y el jugador 2 es rojo. Eso es, creo que lo tienes.

Ahora veamos cómo hacer esto.

Paso 1:Diseño e impresión de la PCB

Así que este es el circuito del juego que lo diseñé usando easyeda . aquí estoy usando atmega328 como el corazón de este proyecto. Luego convertí el circuito en PCB. Diseñé el PCB con una dimensión de 89 mm * 50 mm porque este es el tamaño estándar de las tarjetas de visita. Usé la herramienta Insertar imagen de easyeda para hacer el diseño. se trata solo de arte que puedes hacer con tus ideas. Después de diseñar el PCB descargué el archivo Gerber. Luego fui a jlcpcb.com. Elijo JLCPCB porque ofrecen solo 2 $ por 5 PCB. Para pedir PCB Simplemente haga clic en pedir ahora y seleccione su archivo Gerber. Después de cargar, elijo el color negro .8 mm de grosor y realicé el pedido. después de 2 semanas recibí el PCB. El PCB tiene solo .8 mm de grosor, pero la calidad es perfecta como esperaba.

Paso 2:componentes necesarios

ATMEGA328P-AU * 1

0805 condensador 22pf * 2

0805 condensador 100nF * 2

SMD WS2812B-B * 16

0805 LED SMD * 2

0805 resistencias 1K * 3

0805 resistencias10K 1

16 MHZ * 1

micro USB Femenino * 1

descargue BOM desde aquí

Paso 3:Soldar

después de agarrar todos los componentes comencé a soldar

Empecé con el puerto micro USB. Luego soldé todos los demás componentes. Después de soldar el circuito de control, comencé a soldar los LED de neopixel y después de terminar, soldé los interruptores correspondientes. Después de 1 hora completé todas las soldaduras y ahora nuestro PCB se ve así.

Paso 4:programación

después de completar la soldadura, conecté el cable USB y lo probé. Ahora es el momento de cargar el código. Conecté los pines spi a un Arduino isp y cargué el boceto

DESCARGUE EL CÓDIGO DESDE AQUÍ

Paso 5:JUEGA Y DISFRUTA

Así es como hice una tarjeta de visita con PCB de juego de tic tac toe de 4 * 4. Puede descargar el circuito, código, gerbers desde los enlaces. Espero que hayas disfrutado y aprendido algo de mi tutorial.

Código

  • código
código C / C ++
 // rincón de la ciencia de edison # incluye  #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'}; clave char; int w =0; byte constante FILAS =4; // cuatro filas const byte COLS =4; // cuatro columnas // define los símbolos de los botones del teclado. char hexaKeys [ROWS] [COLS] ={{'1', '2', '3', 'A'}, {'4', '5' , '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ FILAS] ={A0, A1, A2, A3}; // conectarse a los pines de fila del keypadbyte colPins [COLS] ={A4, A5,2,3}; // conectarse a los pines de columna del keypadKeypad customKeypad =Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS); configuración vacía () {Serial.begin (9600); LEDS.addLeds  (leds, NUM_LEDS); FastLED.setBrightness (BRILLO); 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 (); retraso (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 (); retraso (500); } FastLED.clear (); FastLED.show ();} bucle vacío () {key =customKeypad.getKey (); if (clave &&jugador ==1) {Serial.println ("\ nP1"); Serial.println (clave); n =número (clave); Serial.println (n); leds [n] .setRGB (0, 255, 0); FastLED.show (); a [n] ='X'; Serial.println (a [n]); w =cheque (a, n); if (w ==1) {Serial.println ("¡El jugador 1 gana!"); while (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 (); retraso (500); FastLED.clear (); FastLED.show (); retraso (500); }} jugador ++; retraso (1000); } retraso (20); clave =teclado personalizado.getKey (); if (clave &&jugador ==2) {Serial.println ("\ nP2"); Serial.println (clave); n =número (clave); Serial.println (n); leds [n] .setRGB (0, 0, 225); FastLED.show (); a [n] ='0'; Serial.println (a [n]); w =cheque (a, n); if (w ==2) {Serial.println ("¡El jugador 2 gana!"); while (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 (); retraso (500); FastLED.clear (); FastLED.show (); retraso (500); }} e ++; jugador--; retraso (1000); } if (e ==8) {Serial.println ("Sorteo del juego"); while (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 (); retraso (1000); FastLED.clear (); FastLED.show (); retraso (500); }} delay (20);} int número (char keyn) {if (keyn =='1') return 0; if (keyn =='2') return 1; if (keyn =='3') return 2; if (clave =='A') return 3; if (keyn =='4') return 4; if (keyn =='5') return 5; if (keyn =='6') return 6; if (keyn =='B') return 7; if (keyn =='7') return 8; if (keyn =='8') return 9; if (keyn =='9') return 10; if (keyn =='C') return 11; if (clave =='*') 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') devuelve 2;} 

Esquemas


Proceso de manufactura

  1. Juego de giroscopio Arduino con MPU-6050
  2. Sensor de temperatura múltiple
  3. Juego de ruleta DIY 37 LED
  4. Controlador de juego Arduino
  5. Arduino Due TIC TAC TOE con pantalla táctil
  6. MotionSense
  7. Seguridad contra incendios de la impresora 3D
  8. Pixel Chaser Game
  9. Levitación electromagnética repulsiva Arduino
  10. Bot de agarre de control remoto
  11. CoroFence - Detector térmico🖖