LCD Hill Run v2: Juego tipo runner interactivo con Arduino, LCD 16x2 y buzzer
Componentes y materiales
| Componente | Cantidad | Notas |
|---|---|---|
| Arduino Mega 2560 (o Arduino UNO) | 1 | Si usas UNO, cambia DUCK_PIN a 3 en el cableado y el código. |
| Cables jumper (genéricos) | ~20 | |
| Pulsadores 12 mm (SparkFun) | 2 | Para saltar y agacharse. |
| Resistencias 10 kΩ | 2 | Pull-down para los botones. |
| Pantalla LCD 16x2 (blanco sobre azul) | 1 | Estándar de 16 pines. |
| Potenciómetro rotatorio 10 kΩ | 1 | Para controlar el contraste del LCD. |
| Buzzer (pasivo recomendado) | 1 | Opcional, solo para efectos de sonido. |
| Protoboard (tamaño completo) | 1 |
Aplicaciones y servicios en línea
- Arduino IDE (o el editor web).
Sobre el proyecto
Este proyecto es un juego tipo endless runner que se ejecuta en una pantalla LCD 16x2. El jugador controla un personaje que debe saltar colinas y agacharse para esquivar cuervos. El código utiliza interrupciones para una respuesta rápida de los botones y genera sonidos mediante un buzzer. Fue creado por un joven aficionado (12 años) y el código está bastante optimizado.
Nota: Descarga las librerías necesarias desde GitHub y colócalas en la carpeta de librerías de Arduino. Si el IDE no las encuentra, usa Sketch → Incluir librería → Añadir librería .ZIP.
Código principal
El sketch completo (HillRun2.ino) incluye la lógica del juego, generación de sprites personalizados, manejo de interrupciones para los botones y control de sonido. A continuación se muestran los puntos clave:
- Pines: JUMP_PIN = 2 (interrupción), DUCK_PIN = 18 (interrupción, cambiar a 3 en UNO), BUZZER_PIN = 5.
- Velocidad del juego:
TICKSPEED = 90 mspor ciclo. - Sprites definidos como arrays de bytes: personaje caminando, saltando, agachado, colinas, cuervos (animados).
- Función
drawSprites()actualiza la posición del jugador y obstáculos. - Interrupciones
seeJumping()yseeDucking()detectan pulsaciones. - Puntuación: +1 por cada colina saltada y cuervo esquivado.
- Game Over: muestra puntuación, suena tono grave y espera a que se pulse JUMP para reiniciar.
/* Hill Run v2 - Miles C. 2020 */
#include <LiquidCrystal.h>
#include "pitches.h"
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
const int JUMP_PIN = 2;
const int BUZZER_PIN = 5;
const int DUCK_PIN = 18; // Cambiar a 3 para Arduino UNO
// ... resto del código (ver original para versión completa)
Esquemático
El diagrama de conexiones (archivo hillrun2_zp0SI4wns3.fzz) muestra el cableado completo. Para Arduino UNO, recuerda cambiar DUCK_PIN a 3 y mover el cable del botón de agachar del pin 18 al pin 3 digital.
Proceso de manufactura
- Construye un Juego Giroscópico en Tiempo Real con Arduino Nano y Sensor MPU-6050
- Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
- Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
- Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
- Juego Breakout táctil Arduino: Arcade clásico en pantalla TFT 2,4″
- Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano
- Automatiza el Juego del Dinosaurio de Chrome con Arduino y Python
- Juego Ruleta LED DIY: Crea un Arcade para Una Persona con Arduino Nano
- Consola de juegos portátil Arduino con A-Maze: Juego de laberinto compacto y actualizable
- Construye una Estación Meteorológica Arduino Fiable con Sensores DHT
- Construye un Juego Arcade Clásico con Arduino LCD, Zumbador y Joystick