Mastermind Star Wars con Arduino MEGA: 5 pasos (con imágenes)
Mastermind Star Wars con Arduino MEGA: 5 pasos (con imágenes)
Anonim
Mente maestra de Star Wars con Arduino MEGA
Mente maestra de Star Wars con Arduino MEGA
Mente maestra de Star Wars con Arduino MEGA
Mente maestra de Star Wars con Arduino MEGA
Mente maestra de Star Wars con Arduino MEGA
Mente maestra de Star Wars con Arduino MEGA

Son tiempos adversos para la rebelión. Aunque la Estrella de la Muerte ha sido destruida, las tropas imperiales están usando hardware gratuito y Arduino como arma secreta.

Esa es la ventaja de las tecnologías libres, cualquier persona (buena o mala) puede utilizarlas.

En una base oculta ubicada en el planeta Anoat, están construyendo una impresora 3D capaz de replicar al Destructor Imperial.

La única solución para derrotar al Imperio es que un grupo de rebeldes comandados por Luke Skycuartielles y Obi-Wan Banzi, derroten a las tropas imperiales y obtengan la llave que dará acceso a los planes para destruir el arma secreta.

Esta clave consta de 4 colores y tienes 10 intentos para descifrarla. Solo hay cuatro reglas:

  1. Los colores se pueden repetir
  2. Una luz blanca indica que ha alcanzado el color y la posición correctos.
  3. Una luz violeta indica que ha alcanzado el color pero no la posición.
  4. Si no hay luz, no ha adivinado el color o la posición.

Debes darte prisa ya que en el otro extremo, el malvado Darth Ballmer intentará hacerse con la llave antes que tú. En ese caso, no podrás averiguar qué es y no tendrás acceso a los planos del arma secreta. Tu misión habrá fallado.

Pequeño Padawan, que la fuerza te acompañe para descifrar la clave y así poder salvar la Galaxia.

Paso 1: Material

Material
Material

El material necesario para hacer Mastermind Star Wars con Arduino se divide en tres partes.

  • Carpintería y papelería para la realización de la vivienda
  • Componentes, cables y Arduino para toda la electrónica
  • Instrumentos

Empecemos por la carpintería. Se necesita el siguiente material:

  • 2 x tableros MDF de 90x60
  • 1 x hoja de papel vegetal

En la parte electrónica se necesita el siguiente material:

  • 1 x NeoPixel Strip 5 metros
  • 1 x Arduino MEGA
  • 1 x condensador 100 µF
  • 4 x resistencia 470 Ω
  • 5 x botón negro
  • 5 x botón blanco
  • 1 x potencia 5V-5A
  • 1 x potencia 5V-2A

Finalmente, en la parte de la herramienta hemos utilizado lo siguiente:

  • Pistola de silicona caliente
  • Laser CNC de MxN
  • Soldador electrico
  • Estaño de soldador

Paso 2: diseño

Diseño
Diseño
Diseño
Diseño
Diseño
Diseño

Una de las partes más importantes de este proyecto es el diseño de la vivienda. Consta de 3 piezas cortadas con cortadora láser.

La base está tomada de una pieza de 90x60 en MDF. Tenga en cuenta las dimensiones del material ya que necesitará una cortadora láser lo suficientemente grande.

Puede encontrar el archivo SVG al final de este paso.

La portada superior es la que contiene los dibujos temáticos de Star Wars así como los agujeros tanto para los botones como para los píxeles.

Tiene la misma forma que la base.

Las paredes laterales se han realizado mediante una técnica de corte por láser denominada entalladura. Esto permite que el material sea flexible. Para colocar las paredes se han diseñado algunas piezas que sirvan de guía.

Finalmente, cada matriz de NeoPixel tiene una rejilla donde por un lado se fijan los NeoPixel y por otro lado se fija un papel vegetal para difundir la luz del NeoPixel. Aquí tienes todos los archivos SVG para que puedas cortarlos y fabricarlos tú mismo.

Paso 3: Ensamblaje electrónico

Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico
Ensamblaje Electrónico

La primera fase del montaje de la electrónica fue cortar la tira de 5 metros de NeoPixel en 8 tiras de 10 píxeles y 4 píxeles separados para cada jugador, en total 84 píxeles por jugador. Por un lado se ensamblan las 10 tiras una seguida de otra dejando suficiente cable para poner cada tira paralela a unos milímetros. Esta matriz de píxeles servirá para mostrar cada jugada y el resultado. 4 píxeles muestran los cuatro colores de la clave y los otros cuatro píxeles muestran el resultado. Les recuerdo que como resultado tenemos que:

  • Si el píxel es blanco, se ha colocado y coloreado correctamente.
  • Si el píxel es violeta, el color es correcto pero no la posición.
  • Si el píxel está apagado, ni el color ni la posición son correctos.

Uno de los errores que hemos cometido es el cableado de alimentación y GND. Podría haber sido más sencillo, pero nos dimos cuenta más tarde. El cable de datos debe seguir un orden ya que la numeración de los píxeles va de abajo hacia arriba.

Por otro lado tenemos 4 píxeles separados que tienen que estar conectados entre ellos. Estos píxeles nos mostrarán el color que estemos seleccionando con los botones.

Conectada en serie a cada tira hay una resistencia de 470Ω para proteger los datos. El cable de datos de cada tira de píxeles está conectado a un pin digital. Los pines seleccionados en el Arduino MEGA son 6, 7, 8 y 9.

Por ejemplo, 6 y 7 son para el jugador 1 y 8 y 9 para el jugador 2.

Los botones que hemos utilizado son los botones típicos de las máquinas recreativas. Pensamos que quedarían bien y así fue.

Se pueden utilizar otros pulsadores pero hay que tener en cuenta que si son más pequeños o más grandes se debe modificar el archivo DXF antes de cortar con el láser CNC.

Para distinguir a los jugadores, algunos botones son blancos y otros son negros.

Cada jugador tiene 4 botones hacia arriba y 1 botón hacia abajo. Los 4 botones superiores sirven para seleccionar el color de cada posición de la tecla.

El botón inferior se usa para validar, es decir, envía la clave para que aparezca en la matriz de píxeles con la verificación pertinente de si el color y la posición han sido exitosos.

Antes de montar todo soldamos todos los cables. Entonces necesitarás mucho cable. Dependerá del tamaño del juego. En nuestro caso ha sido bastante grande.

Por ejemplo, puede usar un cable ethernet para abrirlo y tomar los cables internos. Es una buena solucion. Procura tenerlos lo más ordenados posible porque luego será necesario hacer las conexiones con el Arduino MEGA como ves en el esquema eléctrico.

Una vez que seas todo soldado antes de montarlo tienes que probarlo. Está probado porque cuando se instala en la carcasa se pegará con silicona caliente y si falla se complicará entonces despegarlo. Para colocar las matrices de píxeles se ha diseñado una cuadrícula con las mismas dimensiones que la cuadrícula de la tapa donde por un lado se pegan los píxeles y por el otro un papel vegetal.

Este papel difunde la luz de cada píxel dando un efecto mucho más bonito. Luego, esa estructura se adhiere a la parte superior del interior. Es un poco complicado pero con cuidado se consigue un buen resultado.

La alimentación ha sido algo complicada. En principio y mirando el esquema, solo íbamos a utilizar un único cargador. Sin embargo, tras las primeras pruebas y el consumo de NeoPixel vimos que se necesitarían dos cargadores.

Cada píxel puede consumir un máximo de 60 mA. Si multiplicamos por 168 píxeles, se obtiene un consumo de unos 10 A.

Aunque esto sería en el peor de los casos. En la programación ya hemos tenido en cuenta no maximizar la intensidad del NeoPixel.

Ni siquiera llegamos al 50% por tanto, con un cargador de 5V y 5A es más que suficiente.

Por otro lado, el Arduino MEGA tiene un cargador separado que se puede conectar a través del conector jack o mediante el puerto USB. Una posible mejora sería tener un solo cargador para todo el sistema.

Paso 4: Programación del juego

Programación de juegos
Programación de juegos
Programación de juegos
Programación de juegos

La programación se ha realizado utilizando dos bibliotecas: OneButton y Adafruit_NeoPixel.

La biblioteca OneButton permite controlar los botones de forma sencilla con interrupciones.

La librería Adafruit_NeoPixel nos ha permitido controlar la tira de NeoPixel de una forma muy sencilla.

La programación se basa en diferentes estados en los que el programa de software puede estar:

Iniciando el juego. Estado = 0

En este estado, el juego se inicia y hay una secuencia de luces en ambos jugadores que indican que el juego va a comenzar. Durante este estado, los botones pulsadores no responden.

Estado inicial. Estado = 1

En el estado inicial, espere a que uno de los dos jugadores haga doble clic en el botón de confirmación (el quinto botón). Esta acción permitirá iniciar el juego.

Preparando el juego. Estado = 2

En el estado de preparación del juego se resetean todas las variables y se lanza la selección aleatoria de colores para la tecla.

Estado de juego = 3

En el estado 3 comienza el juego. Cada jugador selecciona una clave con los botones y la valida haciendo clic en el botón de confirmación. Este estado puede terminar de dos formas: cuando un jugador descubre la clave o cuando los dos jugadores consumen los 10 intentos que tienen.

Un estado ganador = 4

Si un jugador gana, se mostrará un cheque verde en su tablero y la combinación ganadora y una cruz roja en el perdedor.

Juego empatado. Estado = 5

En caso de empate, no se muestra nada en ningún tablero y la combinación ganadora en los tableros de ambos jugadores.

Ya sea que haya un ganador o un empate en el juego, el siguiente estado será el inicial esperando un doble clic.

Puede encontrar todo el código a continuación. Lo único que está en español:)

Paso 5: pruebas y mejoras

El juego se prueba jugando. En el video de arriba puedes ver un juego completo.

A partir de aquí podemos pensar en varias mejoras que se pueden agregar al Mastermind Star Wars con Arduino.

A continuación, los enumero.

  • Poder jugar por turnos con un total de 10 intentos para los dos jugadores. Cuando un jugador prueba una llave, el otro jugador verá la jugada.
  • Un modo de juego individual para que solo una persona pueda jugar.
  • Mode cada uno con su clave.
  • Incluye una pantalla OLED.
  • Utilice un solo cargador para todo.
  • Conéctese a un NodeMCU ESP8266

Estoy seguro de que a mucha gente se le ocurrirán muchas mejoras. Espero los comentarios a continuación.

Y que la fuerza te acompañe.

Recomendado: