Cómo hicimos un juego de mesa con control remoto

Los juegos de mesa son uno de los entretenimientos más antiguos que reúne a amigos, familias y solo amantes de la comunicación en vivo y las emociones en todo el juego.

Hoy quiero contarles cómo mi amigo y yo decidimos crear nuestro propio juego de mesa, pero no simple, sino "inteligente" .

imagen

La segunda parte se puede encontrar aquí: enlace

Atencion Muchas fotos en.

Nuestro juego es un MoBA de tablero en el que cada jugador controla a su propio héroe único, con sus propias características y habilidades. Por el momento, tenemos la primera versión del prototipo hecha de Arduino y madera contrachapada.

La característica principal de nuestro juego es que no hay necesidad de tocar las figuras durante el juego, el juego mismo debe moverlas y mostrar todas las habilidades aplicadas. El jugador solo puede mirar y controlar a su héroe desde un teléfono móvil.

Varios gifs de juego
gif

gif

gif

gif

Lo que un juego inteligente debería poder hacer:


  • Mueve las figuras en el campo tú mismo.
  • Resalte el campo de juego (en su totalidad o en un bloque separado) con cualquier color.
  • Muestre al jugador lo que puede / no puede / debe hacer, haciendo que las reglas del juego sean transparentes.
  • Intercambie datos con el teléfono inteligente de cada jugador.

Así es como se ve nuestra primera construcción viable:

imagen

¿Cómo surgió la idea?


De alguna manera me compré el escritorio Arkham Horror. Después de la tienda, fui inmediatamente a jugar con mis amigos. Sin embargo, desafortunadamente, ninguno de nosotros había jugado antes, y no pudimos dominar 26 páginas de las reglas.

Eso es lo que me hizo pensar que sería genial hacer un juego de mesa que supervisara de forma independiente la implementación de las reglas, calcule los valores necesarios (sin cubos, reglas y una hoja de papel escrita), etc.

A uno de mis amigos le gustó mucho la idea y aceptó participar.

Implementación


No teníamos experiencia en el desarrollo de dispositivos de hardware (ninguno de nosotros tenía a Arduino en nuestras manos), y la experiencia en programación se limitó a la universidad y al desarrollo de pequeñas aplicaciones para Android. Sin embargo, esto solo agregó interés y deseo.

Después de discutir todos los detalles, llegamos a lo siguiente:

  • CoreXY mueve las figuras a través del campo, con un solenoide de 12V ubicado en su carro.
  • Dos motores paso a paso Nema 17 17HS4401 y controladores DRV8825 son responsables del movimiento.
  • Se utiliza una tira de LED con direccionamiento de píxeles WS2812b para resaltar el campo.
  • Arduino Mega 2560, en el que está instalado el escudo desarrollado por nosotros, es responsable de la administración.
  • Para la transferencia de datos entre el juego y los teléfonos inteligentes de los jugadores, 4 módulos HM10 BLE son responsables.
  • Todo esto está alimentado por una fuente de alimentación de 12V, 120W de potencia y un convertidor DC-DC de 5V.
  • En el lado del teléfono inteligente hay una aplicación móvil (actualmente bajo Android), que de hecho es el núcleo de todo el juego. A partir de él en BLE hay comandos de movimiento, encendido / apagado de imán y LED.

La mecanica


No vinimos a CoreXY de inmediato. Al principio, al implementar la cinemática, nos inspiramos en varias guías de bricolaje para ensamblar impresoras 3D.

A continuación se muestra una foto de nuestro primer intento:

imagen

Para crear los componentes, compramos una impresora 3D barata y usada, en la que ya se imprimieron 6200 metros de plástico y ha funcionado perfectamente hasta el día de hoy.

Sin embargo, esta opción tenía varias desventajas:

  • El montaje fue doloroso, la más mínima inexactitud en la ubicación de los ejes, el carruaje dejó de circular.
  • Al menos un rodamiento defectuoso: el carro dejó de circular.
  • Altura demasiado alta de toda la estructura.
  • No nos gustó la idea de que el motor se ubicara en una parte móvil.

En un momento, nos topamos con un artículo que describe la cinemática CoreXY y decidimos elegirlo. Ella tiene ambas ventajas:

  • El montaje es simple porque Todas las piezas "personalizadas" se crean en una impresora CNC o 3D.
  • Altura de construcción baja, que está limitada por la altura del motor paso a paso.
  • Los motores paso a paso son inmóviles.

Entonces los contras:

  • Tamaños grandes La imagen con el modelo 3D muestra que el área total es mucho más grande que el área de la superficie de trabajo.
  • Tirantes largos que tienes que conseguir jalar.
  • Una forma específica de mover el carro, que analizaré a continuación.

Para evitar todos los problemas al máximo, creamos nuestro modelo en Tinkercad, después de lo cual comenzamos a ordenar e imprimir componentes.

imagen

El juego actualmente tiene los siguientes parámetros físicos:
Ancho: 780 mm Longitud: 700 mm Altura: 85 mm
El campo de juego: un cuadrado con un lado de 462 mm.
Base: madera contrachapada de 12 mm de espesor, con orificios cortados en CNC para el montaje de piezas y motores.

imagen

Cuando el modelo estaba listo, parecía en miniatura y ligero ... Sin embargo, en vivo es muy grande y pesado. Ahora entendemos que toda la estructura necesita ser optimizada:

  • Reemplace la madera contrachapada con material más ligero y delgado.
  • La longitud y el ancho del contorno exterior no deben exceder en gran medida el tamaño del campo de juego (puede que tenga que cambiar la cinemática).

A continuación describiré las características que encontramos durante el ensamblaje:

  • Para garantizar que el movimiento del contorno interior y el carro sea suave y sin ruidos extraños, es importante que las correas estén paralelas a los ejes. También es aconsejable lubricar los ejes. Utilizamos aceite ordinario para máquinas de coser.
  • Al principio, usamos el LM8UU del tío Liao como cojinetes lineales, pero a menudo nos encontramos con muestras defectuosas que se aflojaron, se desmoronaron instantáneamente y arañaron el eje. Por lo tanto, decidieron cambiarlos por bujes de grafito.
  • Hay algunas características en movimiento usando la cinemática CoreXY. Entonces, si arrancamos solo un motor paso a paso, el carro viajará en diagonal. Para el movimiento horizontal, es necesario arrancar los motores en la misma dirección. Para vertical - en direcciones opuestas.

Para calcular la distancia a lo largo de X e Y, debe usar las siguientes fórmulas:

imagen

Campo de juego


Para resaltar el campo de juego, elegimos la tira de LED con direccionamiento de píxeles WS2812b, que es perfecta para nuestros propósitos.

El WS2812b es un LED RGB en un paquete SMD5050 con 4 pines: VDD, VSS, DIN y DOUT.

¿Cuáles son los requisitos para el campo?

  • Espesor pequeño para que el electroimán pueda arrastrar la figura junto con él.
  • Una superficie lisa sobre la cual se realizará el deslizamiento sin problemas.

Como resultado, el campo de juego consiste condicionalmente en 3 partes: el sustrato, al que está unida la tira de LED, la cinta en sí y el revestimiento de la superficie sobre la que se deslizan las figuras.

El principal problema al que nos enfrentamos es de qué hacer el sustrato.
En este momento, estamos utilizando plexiglás, en el que los huecos debajo de la cinta se cortaron en un CNC a una profundidad de 2 mm (la altura de la cinta y el LED). Naturalmente, esta hoja perdió por completo al menos algo de rigidez y se dobla en gran medida a lo largo de las líneas de corte. Así que solo pegamos el sustrato a la superficie. Quizás en la próxima versión reemplazaremos el plexiglás con policarbonato monolítico.

imagen

Como superficie, también se seleccionó todo como plexiglás, que estaba sobre mí después de la reparación en un balcón, de 4 mm de espesor, de color lechoso, con buenas tasas de dispersión.

Como resultado, después de sentarnos por la noche con un soldador, obtuvimos lo siguiente:

imagen

Hay cintas con diferente densidad de LED. Por lo general, es: 144, 90, 60, 30 por metro. Nos detuvimos en una cinta con 30 LED por metro, porque Usando una cinta con una mayor densidad de LED, es difícil mover las figuras sin colisiones y aumenta la potencia requerida para los alimentos.

Vale la pena prestar atención a que los LED están conectados en serie. Por lo tanto, si su primer LED se quema, el resto no funcionará.

Nuestro campo tiene un tamaño de 14 * 14 celdas, un total de 196 píxeles. La cinta funciona a un voltaje de 5V. Un píxel en la cinta consta de 3 LED: R, G, B, cada uno de los cuales consume 20 mA al máximo brillo. Es fácil calcular que si queremos iluminar todos los 196 píxeles en blanco, entonces necesitamos casi 12 A ...

Encontrar una fuente de alimentación compacta o un convertidor DC-DC que pueda producir una corriente de este tipo a 5V es muy problemático. Por lo tanto, decidimos que en nuestro juego el campo no debería llenarse en más del 60%, y no usar color blanco / gris (el color en el que se encienden los 3 LED), es decir. Máximo 40 mA por píxel. Como resultado, obtenemos que la tabla no debe consumir más de 5 A.

A menudo vi una recomendación de que es necesario alimentar la cinta desde dos lados para que no haya pérdida de voltaje. Pero, por un lado, nos conectamos a la cinta, cada 100 LED, y no observamos reducciones de voltaje visibles.

Electrónica


La administración de todas las partes del juego se realiza utilizando el Arduino Mega 2560. Se le asignan las siguientes funciones:

  • Realice una calibración, como resultado de lo cual descubriremos cuántos pasos debe tomar un motor paso a paso para superar 1 celda.
  • Reciba comandos y datos de la aplicación móvil y envíe el estado de ejecución nuevamente a BLE.
  • Mueva el carro del punto A al punto B de acuerdo con las coordenadas de los datos recibidos de la aplicación móvil.
  • Enciende / apaga el electroimán.
  • Enciende un píxel específico en una mesa con un color específico. El número de píxel y el color son transmitidos por la aplicación móvil.

El primer prototipo se ensambló en una placa e incluyó los siguientes componentes:

  • Arduino Mega 2560;
  • Motor paso a paso de 2 conductores DRV8825;
  • 4 interruptores de límite;
  • Módulo BLE HM-10;
  • Transistor IRF530N - para controlar un electroimán;
  • PSU MeanWell 12V 10A;
  • El convertidor MeanWell DC-DC reduce de 12V a 5V, 10A;

imagen

Después de asegurarnos de que todo funcionara, decidimos que necesitábamos hacer nuestro escudo para el Arduino Mega y finalmente deshacernos del cableado y un montón de cables.

Debido a la falta de experiencia en el desarrollo de software, decidimos confiar este negocio a un profesional. Como resultado, uno de nuestros amigos desarrolló completamente la placa e instaló todos los componentes. El resultado se puede ver a continuación:

imagen

No puedo juzgar la calidad de la ejecución debido a la falta de experiencia, pero el tablero funciona a la perfección. Puedes ver el diagrama del circuito aquí .

Aplicación móvil


La aplicación móvil es el cerebro de nuestro juego. Es la aplicación que contiene toda la información sobre el estado del juego, personajes, etc. Anroid fue elegida como plataforma de desarrollo, el requisito principal es el soporte BLE (ya que en el futuro se planea agregar una versión del juego para iOS).

A diferencia de la electrónica, teníamos poca experiencia en el desarrollo de aplicaciones móviles, por lo que planeamos completar esta etapa lo suficientemente rápido. Sin embargo, como de costumbre, todo no funcionó según lo planeado.

imagen

Rápidamente nos dimos cuenta de que, de hecho, tendríamos que escribir un juego móvil completo en el que el medio para mostrar información no solo sea la pantalla de un teléfono móvil, sino también la superficie de un juego de mesa.

La funcionalidad principal de la aplicación actual:

  • Búsqueda de dispositivos BLE, identificación de un dispositivo adecuado para la conexión. La identificación incluye un "apretón de manos": el teléfono debe asegurarse de que el dispositivo conectado sea realmente un módulo bluetooth de un juego de mesa, y no un televisor.
  • La elección de jugadores (al menos 2) de los héroes disponibles, de los cuales actualmente hay 4.
  • Proporcionar toda la información necesaria al jugador actual: sobre las habilidades disponibles, sobre sus tiempos de reutilización , sobre los oponentes, etc.
  • Hacer movimientos: cada jugador controla sus movimientos con la ayuda de un "joystick", con el que selecciona las celdas para aplicar habilidades, movimientos, etc.

No tenemos un sentido de belleza, así como los diseñadores familiares de UX / UI, por lo que hicimos el diseño nosotros mismos como pudimos. En el futuro, planeamos agregar un ENT, una descripción, así como un modo PVE en el que los jugadores lucharán contra los jefes en la arena.

Resultado


Por el momento, tenemos un prototipo completamente funcional que puedes jugar (aunque en 1 teléfono inteligente), y en el que pulimos las reglas y la mecánica del juego. Pasamos alrededor de un año creándolo, trabajando los fines de semana y las tardes raras cuando había tiempo libre.

Tenemos un plan ambicioso: encontrar personas de ideas afines, finalizar el prototipo, "lamer" por completo el equilibrio y las reglas del juego e intentar seguir Kickstarter , como Será una experiencia fantástica.

Si será interesante, en el próximo artículo te contaré más sobre la aplicación móvil, el juego en sí, cómo hicimos nuestras miniaturas y qué surgió.

Source: https://habr.com/ru/post/es425629/


All Articles