Tabla de contenido:
Video: Juego Arduino Space Rocks: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Ya sea que se jueguen en una computadora, en un teléfono, en una consola de juegos o en una caja independiente, muchos videojuegos incluyen un elemento para evitar obstáculos. Claro, puede haber puntos otorgados por recolectar fichas o encontrar su camino a través de un laberinto, pero tenga la seguridad de que probablemente haya algo en el juego cuyo único propósito sea evitar que lo haga. El primer videojuego fue Pong, pero después los juegos más populares fueron cosas como "Asteroids" o "Pac-Man". Una variación más reciente sería el simple pero adictivo juego de "Flappy Birds".
Recientemente vi que alguien había hecho una versión simple de dos niveles de “Flappy Bird” que se reproducía en una pantalla LCD 1602 común. Pensé que sería algo que les gustaría a los nietos, así que decidí hacer mi propia variación desde cero. La versión 1602 solo tiene dos niveles, así que decidí usar una pantalla LCD 2004 (20x4) en su lugar para aumentar ligeramente la dificultad del juego. También opté por hacerlo más parecido a "Asteroides" haciendo que el jugador guiara una "nave" a través de un laberinto de "rocas espaciales". Incluso si no está interesado en crear el juego, es posible que haya algunos elementos del software que pueda utilizar en uno de sus propios proyectos.
Paso 1: hardware
El hardware puede basarse en prácticamente cualquier versión de Arduino. Hice el prototipo usando un Nano y luego quemé el código en un chip ATMega328. Ese es el mismo chip que se usa en el Nano, pero usarlo por sí solo permite una construcción más compacta y menos consumo de energía. Como puede ver, construí el circuito en una pequeña placa que se acopla al módulo LCD. El otro aspecto que es diferente es que el Nano funciona a 16 MHz usando un cristal externo, pero yo elegí usar el oscilador integrado de 8 MHz para el chip ATMega328. Eso ahorra piezas y energía.
La pantalla LCD de 2004 se conecta al Arduino de la misma manera que una pantalla LCD 1602. Una diferencia interesante está en el direccionamiento de las ubicaciones de visualización. Obviamente hay una diferencia porque hay cuatro líneas en lugar de dos pero, en el 2004, la tercera línea es una extensión de la primera línea y la cuarta línea es una extensión de la segunda línea. En otras palabras, si tuviera un programa de prueba que acaba de enviar una cadena de caracteres a la pantalla LCD, el carácter 21 aparecería al comienzo de la tercera línea y el carácter 41 volvería al comienzo de la primera línea. Utilizo esa característica en el software para duplicar efectivamente la longitud del laberinto.
Decidí hacer que mi versión funcionara con batería, así que utilicé una batería común de iones de litio 18650 de 3,6 voltios. Eso requirió que agregara una placa pequeña para permitir la recarga USB y otra placa pequeña para aumentar el voltaje de la batería a 5 voltios para la pantalla LCD y el chip ATMega. Las imágenes muestran los módulos que utilicé, pero también hay módulos todo en uno que hacen ambas funciones.
Paso 2: software
El software es el mismo para el chip Nano y ATMega328. La única diferencia está en el método de programación. Utilizo mi propia versión básica del software 1602 LCD y el software LCD en este proyecto se basa en eso. Necesitaba agregar capacidades para abordar las líneas adicionales de la pantalla de 2004 y también agregué rutinas para cambiar la pantalla. El cambio de pantalla proporciona el efecto de movimiento de las "rocas" más allá del "barco".
Como se mencionó anteriormente, las líneas 1 y 3 forman una cola circular y las líneas 2 y 4 también lo hacen. Eso significa que después de 20 turnos, las líneas 1 y 3 se intercambian y las líneas 2 y 4 se intercambian. Después de 40 turnos, las líneas vuelven a sus posiciones originales. Debido a este comportamiento, el laberinto original de 20 caracteres se vuelve completamente diferente cuando las líneas se intercambian. Eso hizo que la vida fuera interesante cuando intenté formar un laberinto. Finalmente abrí una hoja de cálculo de Excel para poder trazar el camino sin tener que cambiar constantemente el software. El software proporcionado aquí tiene dos versiones del laberinto (una está comentada) para que pueda elegir cuál desea o crear la suya propia.
Originalmente quería que esto fuera lo suficientemente simple como para que los nietos jóvenes pudieran jugarlo, pero también quería que tuviera un desafío adicional si ellos (o alguien más) se volvían demasiado buenos en eso. El juego comienza con la tasa de cambio establecida en 1 segundo. La frecuencia de tic interna es de 50 ms, lo que significa que hay 20 intervalos durante los cuales se pueden presionar los botones arriba / abajo. En realidad, un botón presionado consume 2 tics porque se usa un intervalo de 50 ms para detectar la presión y otro intervalo de 50 ms para esperar el lanzamiento. Con el laberinto predeterminado, el número máximo de pulsaciones necesarias antes del siguiente turno es de tres. La forma más sencilla de aumentar la dificultad del juego es acortar el tiempo entre turnos para que un par de líneas de código hagan exactamente eso a medida que aumenta la puntuación. La velocidad de cambio está configurada para acelerar 50 ms cada 20 turnos, con la velocidad mínima limitada a 500 ms. Es fácil cambiar estos parámetros.
Aparte de alterar la tasa de cambio, la lógica principal del software es mover la "nave" y determinar si la "nave" ha chocado con una "roca". Estas funciones aprovechan la matriz definida "roca / espacio" y también la matriz que define las ubicaciones de memoria en la pantalla. El recuento de cambios corresponde a la longitud de la línea de la pantalla LCD (0-19) y se utiliza como índice en estas matrices. La lógica es algo complicada por el hecho de que las líneas se intercambian cada 20 turnos. Se utiliza una lógica similar para determinar la posición del "barco", que puede estar en cualquiera de las cuatro líneas.
La puntuación de cada juego es simplemente el recuento del número de turnos que se produjeron y la puntuación más alta se guarda en el EEROM interno del microcontrolador. La biblioteca EEPROM se utiliza para realizar las lecturas y escrituras en esta memoria. Las rutinas disponibles permiten lecturas / escrituras de un solo byte y lecturas / escrituras de valores de coma flotante. Se almacena un valor de 0xA5 en la primera ubicación EEROM para indicar que se ha guardado una puntuación alta. Si ese valor está presente en el encendido, entonces se lee y se muestra el valor de punto flotante para la puntuación más alta. Si el valor 0xA5 no está presente, entonces se llama a una rutina para inicializar la puntuación alta a un valor de 1. Se llama a esa misma rutina si se desea restablecer la puntuación alta. La puntuación más alta se vuelve a establecer en un valor de 1 manteniendo presionado uno de los botones arriba / abajo y luego presionando momentáneamente el botón de reinicio.
Paso 3: jugar el juego
Cuando se aplica energía, se muestra la puntuación más alta actual. Una vez que se muestra la puntuación más alta, se muestran el laberinto de "rocas" y el "barco" y el juego comienza unos segundos más tarde. Cuando el "barco" golpea una "roca", el mensaje "CRASH AND BURN" parpadea varias veces antes de mostrar la puntuación del juego. Si se obtiene una nueva puntuación alta, también se muestra ese mensaje. Se inicia un nuevo juego presionando el botón de reinicio.
Recomendado:
Controlador de juego Arduino Rhythm (para mi propio juego): 6 pasos
Controlador de juego de ritmo Arduino (para mi propio juego): en este instructivo le mostraré cómo construyo este controlador de juego de ritmo desde cero. Implica habilidades básicas de carpintería, habilidades básicas de impresión 3D y habilidades básicas de soldadura. Probablemente puedas construir este proyecto con éxito si no tienes ex
Versión del juego Arduino Space Race _1: 5 pasos
Arduino Space Race Game Version _1: Hola amigos. Hoy te voy a mostrar cómo puedes hacer un juego de carrera espacial con una pantalla LCD5110 y un joystick
Controlador de juego Arduino + Juego Unity: 5 pasos
Controlador de juego Arduino + Juego Unity: en este instructivo, le mostraré cómo construir / programar un controlador de juego arduino que se puede conectar a la unidad
Controlador de juego Arduino con luces que responden a tu juego Unity :: 24 pasos
Controlador de juego Arduino con luces que responden a tu juego Unity :: Primero, escribí esto en palabras. Esta es la primera vez que uso instructable, así que cada vez que digo: escriba el código como para saber que me refiero a la imagen en la parte superior de ese paso. En este proyecto, uso 2 arduino ’ s para ejecutar 2 bits separados
Space Race: juego simple de Arduino Clicker para hacer con los niños: 7 pasos
Space Race: Simple juego de Arduino Clicker para hacer con los niños: ¡ ¡Estoy subiendo un video que muestra cómo funciona hoy! Divirtámonos con un instructivo de temática espacial que se puede hacer junto con los niños y luego ser disfrutado por ellos solos como un juguete. Puede usarlo como un medio para enseñarles historia sobre co