MegaBMO: una máquina arcade de bolsillo

Objetivo

MegaBMO nace con una idea clara: llevar la experiencia de las máquinas arcade clásicas a un formato portátil, usando hardware limitado y aplicando los conocimientos adquiridos en la asignatura de Diseño de Sistemas Empotrados.

Como estudiantes del Grado en Ingeniería de Computadores, y con formación en desarrollo de videojuegos, el objetivo del proyecto no era solo “hacer un juego”, sino diseñar un sistema completo, integrando hardware y software de forma eficiente. El resultado es una consola arcade de bolsillo capaz de ejecutar múltiples videojuegos clásicos, con controles físicos y retroalimentación visual tanto gráfica como numérica.

MegaBMO demuestra que, con una correcta optimización, Arduino puede convertirse en una plataforma de videojuegos real, incluso con limitaciones de memoria y procesamiento.


¿Qué es MegaBMO?

MegaBMO es una consola portátil de videojuegos basada en Arduino Mega 2560, equipada con:

Una pantalla LCD TFT a color para los gráficos principales
Un display de 7 segmentos para mostrar la puntuación en tiempo real
Joystick analógico
Botones
Potenciómetro como sistema de control

El sistema ofrece un menú principal desde el cual el usuario puede seleccionar entre 6 modos distintos, incluyendo varios videojuegos clásicos y un modo visual decorativo.

Todo el funcionamiento se apoya en una máquina de estados, que gestiona de forma ordenada el menú, los juegos y los cambios entre ellos.


¿Cómo funciona?

MegaBMO funciona como una pequeña máquina arcade autónoma, donde todos los componentes están coordinados por un Arduino Mega 2560, encargado de leer las acciones del jugador y actualizar la información mostrada en las pantallas.

Al encender el dispositivo, el sistema inicializa automáticamente la pantalla LCD TFT, los controles físicos y el display de 7 segmentos. Una vez completada esta fase, se muestra el menú principal, que actúa como punto de entrada a todos los juegos disponibles.

El funcionamiento general del sistema se organiza en las siguientes etapas:

Inicio y menú de selección
El usuario navega por el menú utilizando el joystick y confirma la opción deseada mediante un botón. Esta acción no ejecuta un programa independiente, sino que provoca un cambio de estado interno, cargando la lógica del juego seleccionado.

Ejecución del juego
Cada videojuego funciona dentro de una estructura común, pero con reglas, controles y comportamientos propios. Durante la partida, el Arduino procesa continuamente las entradas del joystick, botones o potenciómetro, calcula la lógica del juego (movimientos, colisiones o condiciones de derrota) y actualiza la imagen mostrada en la pantalla TFT. De forma paralela, la puntuación del jugador se muestra en tiempo real en el display de 7 segmentos, proporcionando una referencia visual constante sin sobrecargar la pantalla principal.

Final de partida y retorno al menú
Cuando la partida finaliza, el sistema muestra una pantalla de “Game Over” unificada, adaptada al juego que se estaba ejecutando. Desde esta pantalla, el usuario puede volver fácilmente al menú principal, donde el sistema queda listo para iniciar un nuevo modo sin necesidad de reiniciar el dispositivo.

Gracias a este funcionamiento basado en estados, MegaBMO consigue ejecutar múltiples juegos en un mismo hardware de forma ordenada, manteniendo una experiencia fluida, clara y consistente para el usuario.


Juegos incluidos

MegaBMO incorpora seis modos diferentes, cada uno con mecánicas propias:

  • TetrisTetris – Puzzle clásico de colocación de piezas
  • Pac-Man – Recorrido de laberintos con enemigos controlados por una IA básica
  • Snake – Juego infinito de reflejos y crecimiento progresivo
  • Space Invaders – Shooter clásico con dificultad progresiva
  • Road Blaster – Juego de conducción usando un potenciómetro como volante
  • Modo BMO – Pantalla decorativa para dejar el sistema en reposo

Cada juego utiliza los mismos controles físicos, pero con funciones adaptadas a su mecánica.


¿Cómo se usa?

MegaBMO ha sido diseñado para que cualquier persona pueda utilizarlo sin conocimientos técnicos previos. La interacción con el sistema se realiza mediante un joystick, cuatro botones y un potenciómetro, que cambian su función dependiendo del modo activo.

Al encender el dispositivo, el usuario accede directamente al menú principal, desde el cual puede seleccionar cualquiera de los modos disponibles.

Menú principal

En el menú se muestran los distintos juegos y modos disponibles en forma de lista.

  • Joystick (Arriba / Abajo)
    Permite navegar entre las distintas opciones del menú.
  • Botón superior
    Confirma la selección y entra en el modo elegido.

Este menú actúa como punto central del sistema, permitiendo volver a él desde cualquier juego. Los juegos a los que se puede acceder son los siguientes:

En este modo el usuario juega al clásico Tetris, donde las piezas caen de forma progresiva y deben encajarse para completar líneas.

  • Joystick (Izquierda / Derecha)
    Mueve la pieza lateralmente.
  • Botón superior
    Rota la pieza 90 grados.
  • Botón inferior
    Acelera la caída de la pieza.
  • Joystick (Pulsación)
    Coloca la pieza de forma instantánea.
  • Botón superior + Botón inferior
    Sale de la partida y vuelve al menú principal.
  • Botón derecho (Game Over)
    Regresa al menú tras finalizar la partida.

En Pac-Man el jugador controla al personaje a través de un laberinto, evitando a los fantasmas y recogiendo todos los puntos.

  • Joystick
    Controla el movimiento del personaje en las cuatro direcciones.
  • Botón derecho (Game Over)
    Regresa al menú principal al finalizar la partida.

En este juego el jugador controla una serpiente que crece al comer manzanas, aumentando progresivamente la longitud de la serpiente y a su vez la dificultad.

  • Joystick
    Controla la dirección de la serpiente.
  • Botón derecho (Game Over)
    Regresa al menú principal.

Space Invaders ofrece una experiencia clásica de disparos, donde el jugador debe eliminar a todos los enemigos antes de que alcancen la parte inferior de la pantalla.

  • Joystick (Izquierda / Derecha)
    Mueve la nave lateralmente.
  • Botón derecho
    Dispara proyectiles.
  • Botón derecho (Game Over)
    Regresa al menú principal tras perder la partida.

Este juego introduce una experiencia diferente mediante el uso de un potenciómetro que simula un volante.

  • Potenciómetro
    Mueve lateralmente el vehículo.
  • Botón derecho (Game Over)
    Regresa al menú principal.

Este modo no es un juego, sino una pantalla decorativa inspirada en el personaje BMO de Hora de Aventuras, pensada como modo reposo.

  • Botón superior
    Sale del modo BMO y vuelve al menú principal.

Material a usar

ComponentesCantidadPrecio
Módulo de pantalla LCD TFT   110,00€
Arduino Mega 2560 112,00€
Display 7 segmentos (4 dígitos) 12,00€
Joystick Analógico 12,50€
Potenciómetro 10,50€
Botones/Pulsadores 41,00€
Protoboard grande 12,50€
Protoboard pequeña 10,50€
CablesIndefinida0,50€

Esquema del circuito

Esquema inicial realizado en Wokwi:

Los pines se han asignado de la siguiente forma:

  • Pines 22-53 reservados para la pantalla. 
  • Pines 3-6 para los botones. 
  • Pines Analógicos A8-A15 para el control del display de 7 segmentos. 
  • Entradas Analógicas A0, A1 y A7 para el Joystick y Potenciómetro. 
  • Pin 2 para el botón del Joystick. 

Video demostración de MegaBMO


Video explicación del desarrollo de MegaBMO


Memoria

Para conocer todos los detalles técnicos en la memoria del proyecto:


Seguir el proyecto

Puedes consultar el código completo del proyecto en el siguiente repositorio de GitHub:

🔗 https://github.com/irenetm17/MegaBMO_Arduino

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *