Tabla de contenido:

Juego Arduino Battleship: 3 pasos
Juego Arduino Battleship: 3 pasos

Video: Juego Arduino Battleship: 3 pasos

Video: Juego Arduino Battleship: 3 pasos
Video: Arduino BattleShip: Como funciona (Hundir la Flota con Arduino) 2024, Noviembre
Anonim
Juego de Arduino Battleship
Juego de Arduino Battleship

Recuerdo haber jugado una versión en papel y lápiz del juego Battleship cuando era niño. De hecho, ha existido desde aproximadamente la Primera Guerra Mundial. También tenía una variante "electrónica" a principios de la década de 1960 llamada "Sonar Sub Hunt" que tenía luces, sonidos y minas ocultas. Según los estándares actuales de los videojuegos, Battleship es bastante aburrido, pero pensé que haría uno de todos modos solo para ver qué pensaban los nietos al respecto. Después de todo, a veces lo retro puede ser genial.

Hay fragmentos de este proyecto que serían útiles en otros lugares, incluso si no estás interesado en hacer el juego Battleship. Tiene una sencilla interfaz LCD 1602 de 4 bits que incluye una rutina para establecer la ubicación de un carácter específico. También hay una interfaz para decodificar una matriz de conmutación 4x4. Estas dos interfaces están disponibles como archivos de inclusión separados para que sean fácilmente transportables. El juego también tiene varias rutinas de efectos de sonido y un circuito amplificador de audio de un transistor simple.

Paso 1: hardware

Hardware
Hardware
Hardware
Hardware

El esquema que se presenta aquí es para un solo jugador, por lo que sería necesario hacer dos unidades. Las unidades se comunican mediante una interfaz de 3 cables que incluye las líneas UART TX y RX y un cable de tierra. Elegí usar un conector para auriculares estéreo estándar de 1/8 de pulgada y un cable estándar con enchufes macho en ambos extremos. La RX de una caja va a la TX de la otra caja y viceversa. Puede hacerlo intercambiando los cables soldados a la toma de auriculares dentro de la caja o intercambiándolos en la placa de circuito cuando la construya.

El juego clásico se presentó como una matriz, pero decidí hacer una implementación simple usando una pantalla LCD 1602 para la pantalla. La primera línea muestra las ubicaciones de los barcos del jugador y los disparos del oponente. La segunda línea muestra los tiros del jugador y cualquier impacto en los barcos del oponente. Eso proporciona 16 posibles ubicaciones para los barcos. El número de barcos se establece en el software y elegí 5 arbitrariamente.

Las 16 ubicaciones de los barcos encajan muy bien con los requisitos del interruptor porque permite una matriz 4x4. Hay almohadillas de interruptores de matriz de 4x4 disponibles, pero elegí usar interruptores individuales en una sola línea para que coincida con la pantalla lineal. Sin embargo, conecté los interruptores como una matriz 4x4 para que solo se necesiten ocho pines Arduino. Consulte el diagrama de cableado del interruptor y el esquema para las conexiones adecuadas.

La pantalla LCD está cableada para una interfaz de 4 bits. También agregué un LED externo en el pin D13 para indicar qué jugador debería tomar una foto. Inicialmente, los jugadores deciden quién realiza el primer disparo y luego el software controla automáticamente el ida y vuelta del juego.

Quería agregar efectos de sonido simples para el disparo, las explosiones, el juego listo y el ganador / perdedor. Intenté usar un zumbador piezoeléctrico simple, pero terminé con un altavoz pequeño. La corriente requerida por el altavoz excede lo que el Arduino puede manejar, por lo que se agregó un amplificador de transistor simple. El sonido aún no es genial, pero es mejor que con el timbre. Mi altavoz es de 4 ohmios, pero si tiene uno de 8 ohmios, cambie la resistencia en el esquema de 39 ohmios a 33 ohmios. Si usa un zumbador piezoeléctrico, debería poder conducirlo directamente desde el pin Arduino con el otro lado del zumbador conectado a tierra.

También se incluye un interruptor de reinicio externo y está conectado directamente entre tierra y el pin de "reinicio" en el Arduino. Eso proporciona los medios para reiniciar el juego.

Paso 2: software

El software tiene el archivo de inclusión para mi interfaz LCD y también creé un archivo de inclusión para el escaneo de matriz de conmutación 4x4. La inicialización le pide al jugador que seleccione las ubicaciones para sus barcos y luego pasa al estado "Listo". Cuando ambos jugadores están listos, uno de ellos inicia el juego presionando un interruptor.

La ubicación del disparo se transmite a través del UART al otro jugador y el resultado apropiado se transmite al jugador que realizó el disparo. Como se mencionó anteriormente, una vez que se realiza el primer disparo, el software controla quién realiza el siguiente disparo. Antes de que se transmita una toma, se compara con las ubicaciones de las tomas anteriores. Si esa ubicación ya se ha utilizado, la toma no se transmitirá. El LED "My_Shot" determina de quién es el turno. También se genera un sonido de disparo para una selección válida y un sonido de explosión si se golpea un barco. Los efectos de sonido se derivan de ejemplos que se encuentran en línea con modificaciones para adaptarse al juego.

Una vez que los barcos de un oponente han sido alcanzados, se muestra un mensaje en cada pantalla LCD, uno como ganador y otro como perdedor. El mensaje también especifica que el juego se puede reiniciar presionando el botón de reinicio. También hay efectos de sonido separados para el ganador y el perdedor.

Paso 3: capturas de pantalla

Capturas de pantalla
Capturas de pantalla
Capturas de pantalla
Capturas de pantalla
Capturas de pantalla
Capturas de pantalla
Capturas de pantalla
Capturas de pantalla

Aquí hay algunas capturas de pantalla del juego. Eso es todo por esta publicación. Echa un vistazo a mis otros Instructables y también a mi sitio web en: www.boomerrules.wordpress.com

Recomendado: