Tablero Helvetios

Resumen:

El proyecto Helvetios (nombrado así en honor a la estrella 51 Pegasi, alrededor de la cual se descubrió el primer exoplaneta) pretende ser un tablero de juego donde cada celda hexagonal está retroiluminada y puede detectar las piezas sobre ella. De esta forma, la mecánica del juego puede implementarse basada en una comunicación bidireccional con el jugador: el estado de las celdas se muestra con la iluminación y el usuario puede seleccionar la celda poniendo una pieza sobre ella.

Hardware:

La iluminación se consigue con varios leds RBG por cada celda para obtener una distribución del color uniforme. La detección de las piezas se consigue mediante un sensor magnético de efecto Hall, debiendo tener la pieza un pequeño imán debajo de ella.

Dependiendo de si es necesario conocer la dirección hacia adonde apunta la pieza, cada celda tendrá uno o tres sensores y las piezas uno o dos imanes.

Solución con un sensor
Solución con dos sensores

La distribución de las celdas se consigue usando varios circuitos, el primero de ellos contendrá los leds y los sensores. Los leds están controlados por un driver de leds y los sensores se leen con un registro de desplazamiento de carga paralela:

Circuito de leds

El tablero Helvetios tiene 169 celdas, para cubrir todo el tablero cada circuito de leds controla 8 celdas y su distribución es tal que así:

Distribución circuitos de leds

Para interconectarlos todos, se necesita un segundo tipo de circuito con solo conectores para llevar las señales a los controladores de leds y para leer los datos de los sensores de los registros de desplazamiento. Como estos están conectados en cascada solo harán falta unas pocas lineas de datos:

Los circuitos de conexión en rojo

La celda central es el ‘repartidor’ donde los tres circuitos de conexión convergen. Este es el tercer circuito y contiene el microcontrolador para gestionar las comunicaciones con los drivers de leds y los sensores:

Circuito central

Con estos tres circuitos se completa el tablero como dispositivo a controlar por una instancia de software superior, que implementará la lógica del juego y la comunicación con los jugadores. Esto se consigue conectando el circuito central a través de USB a un ordenador embebido. También es necesaria una fuente de alimentación externa para alimentar todas las electrónicas:

Software:

El software ncesario se divide en tres partes:

  • Firmware de bajo nivel en el microcontrolador: el microcontrolador se encarga de comunicar con los drivers de leds para mostrar el color deseado en cada celda y lee los sensores magnéticos. Adapta esos datos para abstraer al software de nivel superior de la distribución de las celdas y su control. Controla la conexión USB como dispositivo e implementa el protocolo USB HID.
  • Un software ‘director de juego’ que gestionará los datos recibidos y a enviar del tablero a través de la conexión USB, controlará los turnos y el flujo del juego. Puede llegar a hospedar una IA para jugar contra ella.
  • Un ‘frontend’ para usarse de interface entre los usuarios y el ‘director de juego’. Puede ser un servidor web, para implementar rápidamente la integración con móviles u otro servidor ad hoc para que una aplicación cliente pueda conectarse.