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

Tech-TicTacToe

Componentes y suministros

Arduino UNO
Arduino
× 1
Matriz de puntos LED MAX7219
× 1
Teclado de interruptor de membrana
× 1

Herramientas y máquinas necesarias

Pistola de pegamento caliente (genérica)

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Hola, comunidad de piratas informáticos.

Soy Simone Adobs y este es mi tercer proyecto que lanzo en Hackster. Este es mi primer proyecto donde creo una estructura con cartón, papel y pistola de pegamento caliente, que contiene Arduino y otros componentes.

Este es un video corto que le muestra cómo funciona el Tris:

Aquí puede ver el proyecto desde todas las vistas:

¡Espero que les guste, porque le dediqué algunas horas! Ahora comencemos con el proyecto.

¿Cómo funciona el Tris?

La respuesta es muy simple:cuando haces clic en un número en el teclado, Arduino encenderá el cuadrado correspondiente.

  • ¿Puedo cambiar de jugador?

Cuando enciendes un cuadrado, Arduino cambiará instantáneamente al turno del siguiente jugador.

  • ¿Arduino reconoce cuando gano?

Cuando un jugador gana, Arduino escribe en la matriz de puntos LED:

  • "1" si el ganador es el jugador 1;
  • "2" si el ganador es el jugador 2.

Cuando finaliza el juego, ¿puedo reiniciar Arduino desde un botón?

Puedes reiniciar el juego si haces clic en el botón "0" en el teclado; Arduino se reinicia solo.

¿Cómo puedo reconocer a un jugador?

Puede reconocer fácilmente a un jugador porque, aunque el LED Dot Matrix es solo rojo, cada jugador tiene un patrón específico formado por 2x2 LED:

  • El jugador 1 tiene este patrón: "\"
  • El jugador 2 tiene este otro patrón: "/"

Para cualquier pregunta, sugerencia, crítica o explicación del código, no dude en comentar a continuación. Si te gusta este proyecto, deja un me gusta y echa un vistazo a mis otros proyectos.

¡Intenta hacer otra estructura o personaliza mi estructura y envíame una foto de ella!

¡Que tengas un buen día!

Simone de Italia <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 =true, q1 =false, q2 =false, q3 =false, q4 =false, q5 =false, q6 =false, q7 =falso, q8 =falso, q9 =falso; int fila, col, filaPlays, colPlays, resultado, jugador, ganador; char hexaKeys [4] [3] ={{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; int reproduce [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); configuración vacía () {lc.shutdown (0, falso); lc.setIntensity (0,0); lc.clearDisplay (0);} bucle vacío () {int customKey =customKeypad.getKey (); pintura (customKey); ganar (resultado); if (ganador ==1) {lc.clearDisplay (0); while (ganador ==1) {char customKey =customKeypad.getKey (); if (customKey =='0') {Reset_AVR (); } lc.setLed (0,1,4, verdadero); lc.setLed (0,2,5, verdadero); lc.setLed (0,3,6, verdadero); lc.setLed (0,4,7, verdadero); lc.setLed (0,4,6, verdadero); lc.setLed (0,4,5, verdadero); lc.setLed (0,4,4, verdadero); lc.setLed (0,4,3, verdadero); lc.setLed (0,4,2, verdadero); lc.setLed (0,4,1, verdadero); lc.setLed (0,4,0, verdadero); lc.setLed (0,5,0, verdadero); lc.setLed (0,6,0, verdadero); lc.setLed (0,3,0, verdadero); lc.setLed (0,2,0, verdadero); }} más si (ganador ==2) {lc.clearDisplay (0); while (ganador ==2) {char customKey =customKeypad.getKey (); if (customKey =='0') {Reset_AVR (); } lc.setLed (0,2,0, verdadero); lc.setLed (0,3,0, verdadero); lc.setLed (0,4,0, verdadero); lc.setLed (0,5,0, verdadero); lc.setLed (0,2,1, verdadero); lc.setLed (0,2,2, verdadero); lc.setLed (0,2,3, verdadero); lc.setLed (0,2,4, verdadero); lc.setLed (0,3,4, verdadero); lc.setLed (0,4,4, verdadero); lc.setLed (0,5,4, verdadero); lc.setLed (0,5,5, verdadero); lc.setLed (0,5,6, verdadero); lc.setLed (0,5,7, verdadero); lc.setLed (0,4,7, verdadero); lc.setLed (0,3,7, verdadero); lc.setLed (0,2,7, verdadero); }}} int round_player () {if (jugador1) {jugador1 =falso; resultado =1; } más {jugador1 =verdadero; resultado =2; } return result;} void win (int player) {if (juega [0] [0] ==jugador &&juega [0] [1] ==jugador &&juega [0] [2] ==jugador) {ganador =jugador; } más si (juega [1] [0] ==jugador &&juega [1] [1] ==jugador &&juega [1] [2] ==jugador) {ganador =jugador; } más si (juega [2] [0] ==jugador &&juega [2] [1] ==jugador &&juega [2] [2] ==jugador) {ganador =jugador; } más si (juega [0] [0] ==jugador &&juega [1] [0] ==jugador &&juega [2] [0] ==jugador) {ganador =jugador; } más si (juega [0] [1] ==jugador &&juega [1] [1] ==jugador &&juega [2] [1] ==jugador) {ganador =jugador; } más si (juega [0] [2] ==jugador &&juega [1] [2] ==jugador &&juega [2] [2] ==jugador) {ganador =jugador; } más si (juega [0] [0] ==jugador &&juega [1] [1] ==jugador &&juega [2] [2] ==jugador) {ganador =jugador; } más si (juega [0] [2] ==jugador &&juega [1] [1] ==jugador &&juega [2] [0] ==jugador) {ganador =jugador; }} void switch_on_led (int col, int fila, int colPlays, int rowPlays) {if (jugador1) {lc.setLed (0, col, fila, verdadero); lc.setLed (0, col + 1, fila-1, verdadero); } else {lc.setLed (0, col, row-1, true); lc.setLed (0, col + 1, fila, verdadero); } reproduce [rowPlays] [colPlays] =round_player ();} pintura vacía (int bottone) {switch (bottone) {caso 49:if (! q1) {switch_on_led (0,7,0,0); q1 =verdadero; } descanso; caso 50:if (! q2) {switch_on_led (3,7,0,1); q2 =verdadero; } descanso; caso 51:if (! q3) {switch_on_led (6,7,0,2); q3 =verdadero; } descanso; caso 52:if (! q4) {switch_on_led (0,4,1,0); q4 =verdadero; } descanso; caso 53:if (! q5) {switch_on_led (3,4,1,1); q5 =verdadero; } descanso; caso 54:if (! q6) {switch_on_led (6,4,1,2); q6 =verdadero; } descanso; caso 55:if (! q7) {switch_on_led (0,1,2,0); q7 =verdadero; } descanso; caso 56:if (! q8) {switch_on_led (3,1,2,1); q8 =verdadero; } descanso; caso 57:if (! q9) {switch_on_led (6,1,2,2); q9 =verdadero; } descanso; caso 48:Reset_AVR (); descanso; }} 

Esquemas

tris_1Nd6QnEjNE.fzz

Proceso de manufactura

  1. Hacer Monitor Ambilight usando Arduino
  2. Juego Arduino Pong - Pantalla OLED
  3. Animatronics gigantes Lego Minfig Operation Game
  4. Detector de frecuencia de audio
  5. Clon Arduino Tamagotchi - Mascota digital
  6. Manipulador de interruptor de luz inalámbrico
  7. Pistola de agua con sensor de movimiento
  8. Temporizador de cuenta atrás de Arduino
  9. Dispositivos Bluetooth controlados por voz con OK Google
  10. Arduino Sunflower:Un Sun-Dancer electrónico
  11. RC Porsche Car (Proyecto Arduino)