- Componentes utilizados:
- Explicación de trabajo:
- Explicación del circuito:
- Explicación de programación:
Snake Game ha sido muy popular desde el comienzo de los teléfonos móviles. Inicialmente venía en teléfonos celulares en blanco y negro, y pronto se hizo muy famoso. Luego, con el avance de los teléfonos celulares, este juego también ha cambiado mucho, y ahora están disponibles muchas versiones gráficas y coloridas de este juego.
El juego de serpientes también se ha convertido en un proyecto de bricolaje muy popular para aficionados y estudiantes de electrónica. Así que hoy vamos a demostrar, Arduino Snake Game, con todas sus funcionalidades básicas, manteniéndolo simple al mismo tiempo.
Componentes utilizados:
- Arduino UNO
- Pantalla de matriz de puntos LED de 8x8
- Registro de cambios 74HC595
- LCD de 16x2
- BOTE 1K
- Apretar botones
- Cables de conexión
- Tabla de pan
- Fuente de alimentación
Explicación de trabajo:
Este es un juego poco complicado de construir. Pero en este tutorial, lo hemos simplificado. Para hacer este proyecto, hemos utilizado una pantalla de matriz de puntos de color rojo de 8x8 para mostrar la serpiente y su punto de comida, una pantalla LCD para mostrar los puntos o puntuación, 5 botones para dar instrucciones y comenzar el juego y finalmente un Arduino UNO para controlar todo el proceso. El diagrama de pines de la pantalla de matriz de puntos LED de 8x8 con su imagen original se muestra a continuación:
Cuando encendemos el circuito, primero mostramos un mensaje de bienvenida y luego una sugerencia de "Presione Start To Play" en la pantalla LCD. Después de esto, la pantalla LCD muestra la puntuación como cero y la pantalla de matriz de puntos muestra dos puntos como serpiente y un solo punto como comida.
Ahora el usuario debe presionar el botón central para iniciar el juego y la serpiente comenzará a moverse hacia arriba de forma predeterminada. Luego, el usuario debe indicarle la dirección a la serpiente presionando las 'teclas de dirección' alrededor del botón central. Aquí hemos utilizado cinco teclas (pulsadores) a saber, tecla izquierda, tecla derecha, tecla arriba, tecla abajo y tecla de inicio. Cada vez que la serpiente llega al punto de comida o come la comida, la puntuación aumenta en 5 puntos cada vez y la longitud de la serpiente aumenta en un punto (LED) cada vez, también la velocidad de la serpiente se vuelve más rápida que antes. Y siempre que la serpiente golpeara cualquier pared o alcanzara el final de la matriz de LED, entonces terminaría el juego ("Game Over"). Luego, el usuario debe iniciar el juego nuevamente presionando la tecla de inicio.
Explicación del circuito:
El circuito de este proyecto de juego de serpientes es poco complejo. Aquí hemos conectado la pantalla de matriz de puntos utilizando Shift Register 74HC595. Aquí se utilizan dos registros de desplazamiento, uno para impulsar las columnas y el segundo para impulsar las filas. Pines de control de ambos registros, registro de desplazamiento de columna y registro de desplazamiento de fila (SH, ST),están conectados directamente al pin número 14 y 16 de Arduino respectivamente. Y el pin DS del registro de desplazamiento de columna y el registro de desplazamiento de fila están conectados directamente al pin número 15 y 17 de Arduino. El botón de inicio para iniciar el juego está conectado en el pin número 3, el botón de dirección izquierda en el pin 4, el botón de dirección derecha en el pin 6, el botón de dirección hacia arriba en el pin 2 y el botón de dirección hacia abajo en el pin 5. Un LCD también está conectado en nuestro hardware mostrar puntuación. Los pines RS y EN están conectados directamente en los pines 13 y 12. El pin RW está directamente a tierra. Y los pines de datos d4-d7 están conectados en el pin 11, 10, 9, 8 de Arduino. El resto de la conexión se muestra en el diagrama del circuito.
Explicación de programación:
Para escribir este código de juego de serpiente Arduino, primero incluimos archivos de encabezado y definimos pines para LCD. Y luego defina algunos pines para botones de dirección y pines de datos para registros de cambio.
#incluir
Luego inicializamos todas las cosas que hemos usado en el programa. En la función de configuración inicializamos la pantalla LCD, dando dirección a los pines de salida de entrada, levantando los bits y mostrando un mensaje de bienvenida en la pantalla LCD.
configuración vacía () {lcd.begin (16,2); pinMode (ds_col, SALIDA); pinMode (sh_col, SALIDA); pinMode (st_col, SALIDA); pinMode (ds_row, SALIDA); pinMode (inicio, ENTRADA);……………
Y luego comenzamos el juego en función de bucle .
void show_snake (int temp) {for (int n = 0; n
Aquí hemos utilizado la siguiente función para leer la dirección de entrada desde el botón pulsador.
void read_button () {if (! digitalRead (izquierda)) {move_r = 0; move_c! = - 1? mover_c = -1: mover_c = 1; while (! digitalRead (izquierda));……………
Consulta el código C completo del juego Snake a continuación.