Archivo de la categoría: Arcade

Pocket Virtual Pinball: ya falta poco

Después de construir el Jacks Open Mini Pinball, me quedaron ganas de construir la versión más mínima posible de un pinball. Básicamente un model de mueble que pueda transportar fácilmente y meterlo dentro del coche. Este model lo llamaré Pocket Pinball, y ya he decidido que estará basado en el tema de Encuentros en la Tercera Fase (Close Encounters of the Third Kink), la película del Steven Spielberg que recuerdo haber visto cuando tenía 7 ó 8 años. O sea que esta pequeña gran máquina la llamaré Close Encounters Pocket Pinball

La primera decisión fue elegir el ordenador, que tenía que ser un barebone. Conseguí por 75 euros un Barebone AOpen, PCB Zotac GF9300/E5700. 2,5GHz + 2GB DDR2 + 160 GB bSATA + DVD. Ya sé que este ordenador no es muy potente, pero quería ver si era capaz de mover las mesas del Visual Pinball, que es el emulador que utilizo. La conclusión es que mueve bien las mesas antiguas en general, y se queda corto con las mesas que tienen DMD. Esto se nota sobretodo en el movimiento del flipper, que no es fluido y se puede llegar a encallar.

La salida de video de la placa ITX tiene salidas HDMI, DVI y VGA, pero sólo se pueden utilizar dos a la vez. Los 2 monitors que he elegido para la máquina son:

  • Pantalla principal (playfield): ACER AL1603W monitor TFT 15,5. (VGA) 1366×768. Formato 16:9
  • pantalla secundaria (backglass). Es la pantalla reciclada de un IPad 10. Modelo 32V3H-H6A. HDMI. 1280×720 (nativo)· Encontré el controlador en eBay (25 euros). Fue difícil extraer la pantalla del IPad, pero al final lo conseguí sin romper la pantalla 🙂

Las medidas de la máquina son 50 cm de largo x 35cm ancho x ? cm de alto (comprobar), y realmente ha sido difícil meter todos los components dentro: placa base, fuente de alimentación, disco duro, amplificador audio, altavoces, transformador TV, controladora TV, módulo IPAC, botones y cableado vario.

Para acabar la máquina me basaré en las artes originales de la máquina de Gottlieb(https://www.pinrescue.com/games/images/closeencounters/DSCF1958.JPG). Se tendrá que hacer las plantillas para hacer las máscares de colores amarilla, blanca y azul. Aunque esta máquina se puede poner directamente sobre la mesa, creo que es una buena idea ponerle unas patas para mantener la idea y proporciones de la máquina original.

Referencias:

Jacks Open Mini Pinball

Jacks Open Mini Pinball

Jacks Open Mini Pinball

Finalmente ya hemos finalizado el Mini Virtual Pinball que he estado construyendo y configurando los últimos meses (junto a otros proyectos que he tenido que ir empujando en paralelo). El pinball está basado en el el Jacks Open de Gottlieb del año 1977.

El trabajo de pintura es muy mejorable, aunque la idea de utilizar máscares y spray me ha gustado, y si perfecciono la técnica, se pueden hacer cosas muy chulas.

He metido 200 mesas de diferentes fabricantes y diferentes épocas. A mi particularmente me gustan las mesas sencillas y electromecánicas de los años 60 y 70, y no la sofisticación plena de luces y sonidos de las mesas de estado sólido.

Para la siguiente máquina que vaya a construir hay bastantes cosas a mejorar. Estaría bien que las patas se puedan sacar, y que el backglass se pueda plegar hacia adelante. En esta ocasión no lo he hecho por falta de tiempo, y ahora me encuentro con un mueble que no puedo meterlo dentro del coche. También quiero añadir un plunger/tirador analógico, e implementar el tilt/nudge analógico con un acelerómetre y arduino.

Ya tengo un nuevo pinball a la vista. Como este no lo puedo transportar en coche, me gustaría hacer una versión mínima de pinball a dos pantallas (B2S), con una placa de ordenador Mini-ITX de las pequeñas (formato barebone). Es lo que se llama un pocket pinball. Empezaré a recopilar el material, ya explicaré como siempre los avances.
barebone
Presento dos videos de esta máquina. El primero es un video de presentación; y el segundo es un video del proceso de construcción. En los videos he puesto las canciones de un grupo de música que están triunfando mucho entre los chavales: los Buhos, música cañera en catalán.

Pinball B2S, ya falta poco

Para hacer la primera máquina B2S (2 pantallas: el playfield y el backglass) he escogido el tema del pinball Jacks Open de Gottlieb (1977). El original es un pinball electro-mecánico, y probándolo con el Visual Pinball me ha gustado especialmente. De hecho, me gustan mucho todos los pinballs de esta época, que no tienen muchas florituras.

Me he decantado por el diseño del Jacks Open porque no es un diseño demasiado difícil y quiero probar, más que imprimir vinilos, hacer un trabajo de pintura y pintar con spray las máscaras para hacer la transferencia del disenño. Como se puede apreciar, sólo se utilizan los colores rojo y negro (a parte del blanco del fondo). He reproducido los diferentes motivos del dibujo en el Inkscape, y he utilizat una cortadora de vinilos (la Silhouette Cameo) que tenían sin utilizar en el MOB de Barcelona. Es la primera vez que utilizaba esta máquina, y con más tiempo y paciencia habría conseguido un mejor resultado. Para ser la primera vez que hago un trabajo de pintura con máscara estoy contento, però hay bastantes cosas a mejorar, y de hecho tendré que repasar con pincel algunos detalles y acabados.

Ya he avanzado bastante con la máquina, y espero poder acabarla y disfrutarla ahora en el mes de junio. Finalmente el plunger analógico, y el accelerómetro para detectar el tilt, tendrán que esperar. El backglass y las patas son fijas, y esto quiere decir que difícilmente podré meter esta máquina en el coche. Son aspectos que tendré que mejorar de cara a una segunda máquina.

Enlaces:

Pistones pneumáticos y válvulas para el whack-a-mole

He realizado las primeras pruebas de la parte pneumática del whack-a-mole. A veces comprar en Aliexpress es realmente complicado. Quería unos pistones pneumáticos de una sola acción con retorno de muelle, y he recibido unos pistones de doble acción. El título del producto y las fotos del producto no concordaban. Creo que al final estos pistones de doble acción me irán bien, aunque al final necesitaré el doble de solenoides (2 solenoides por pistón, tal com se ve en el video).

El compresor que utilizo es el más simple que he encontrado. Me ha costado 10e de segunda mano, y es bastante ruidoso, pero haré una buena amortiguación del sonido. Un compresor de más potencia y con calderín sería ideal, pero el precio se incrementaría mucho.

Así pues, el material que se necesita para hacer esta prueba es: compresor, pistón pneumático, dos solenoides (válvulas pneumáticas), 2 rácores para los pistonse, 4 rácores para los solenoides, una T, y tubo de 6mm. El siguiente paso será la parte electrónica: un arduino y los relés para controlar todos los solenoides.

Enlaces:

Recreativa whack-a-mole: introducción

La nueva recreativa que haremos es un whack-a-mole (aunque tengo otros proyectos por acabar…). Es un proyecto de neumática, y tenía ganas de hacer uno, aunque trabajar con aire comprimido, pistones y solenoides es sensiblemente más caro que trabajar sólo con electrónica.

I qué es un whack-a-mole? Es un juego arcade, que viene de los Estados Unidos pero aquí también se puede ver en ferias, donde unos topos salen de los agujeros de la mesa, y se tienen que golpear con un mazo para que se vuelvan a esconder. Cuanto más topos, más puntos. El juego se complica porque salen varios topos al mismo tiempo y la velocidad se va incrementando.

De aquí viene la expresión inglesa This is like playing whack-a-mole. Precisamente to whack significa golpear, y mole es un topo. Y la expresión describe la situación donde te surgen de golpe muchas tareas a las que atender, y a medida que las vas haciendo te surgen más, y no das abasto. Igual que en el juego, donde has de ir dando mazazos a los topos y te vuelves loco. En España se tradujo por guacamole, que suena igual pero que no tiene nada que ver con el sentido original de la palabra. Por ejemplo el juego de guacamole de la marca MB (ver video de la publicidad).

Así pues, he empezado a reunir el material: pistones, válvulas neumáticas, compresor barato, rácores, tubos, arduino, y una tira de NeoPixels para hacer el display, que quizás esto será la parte más interesante pues quiero hacer dos displays de tres dígitos bien gordos y chulos.

Este ha de ser un proyecto diferente y divertido. Lo que es una incógnita es si el presupuesto final compensará es esfuerzo.

Enllaços:

Pinball B2S, distribución de los componentes

Estoy avanzando en el proyecto del Pinball B2S, aunque ahora tengo faena porque estoy haciendo un par de máquinas. Estoy a punto de pintar de blanco el mueble, y antes de pintar he de hacer algún agujero más. Pero antes de hacer los agujeros que me faltan, he de disponer todos los componentes en su posición final.

Así que he cogido el ordenador sobre el que he estado haciendo las pruebas, y lo he desmantelado todo. Es lástima porque es un ordenador que conseguí hace un par de meses a un buen precio y que tiene una caja muy insonorizada y una fuente de alimentación muy buena. Como se ve en la foto, a parte del ventilador de la fuente de alimentación, tiene tres ventiladores más y un disipador de la CPU muy grande. Es una buena máquina con una placa ASUS P5Q-E y un Intel Core 2 Quad Q9550 a 2.83GHz. Tiene 4GB de RAM, en alguna mesa de pinball que he jugado creo que sería mejor tener 8GB de RAM, pero de momento lo dejaré así. Cogí este ordenador porque llevaba la gráfica NVidia GeForce 240, que aunque no es muy potente ya lo había probado en otra màquina con muy buen resultado.

Así pues he desmontado la placa, la fuente, la gráfica, el disco duro, un conector USB, todos los cables, … i lo he dispuesto todo sobre la base del pinball. Al principio quería hacer un cajón en la parte trasera de manera que se pudiese acceder a todos los componentes del ordenador sin tener que desmontar la pantalla. Pero com se ve, en la parte trasera tengo la fuente d alimentación y tres ventiladores. Espero no tener que acceder nunca al ordenador, pero si se diese el caso, se tendrá que sacar el vidrio y la pantalla del playfield, tampoco será tanto trabajo.

En la foto no están todos los componentes. Falta un IPAC, todos los botones y cables, y toda la electrónica de la TV. Pero no es problema, veo que tengo suficiente sitio, y además se puede podner algún componente en los laterales.

Tenía ganas de hacer el plunger analógico, pero de momento prefiero acabar la máquina y más adelante ya miraré de meterlo. Ahora veo que la altura del mueble podría haber sido 2 o 3 cm menos alto, pero da igual, lo que importa es que las proporciones entre la pantalla del backglass, el mueble principal, y las patas, sea la correcta. De hecho, me quedará un pinball pequeñito: es un mini virtual pinball. Tenía ganas de hacer uno de pequeño antes de meterme en un pinball de dimensiones reales. Como no se podrá jugar de pie, supongo que lo mejor será jugar sentado en una silla. Ya veremos.

El proyecte en la wiki:

Construyendo el mueble del Virtual Pinball

Manos a la obra! Ya tengo las 200 mesas configuradas, tengo las dos pantallas, el ordenador, botones, IPAC. He de pensar qué monedero le meto, y me gustaría poner un plunger analógico. Pero el caso es que ya puedo empezar a construir el mueble.

De hecho, este es un mini virtual pinball. Es mini porque las pantallas que utilizo son de 24inch para el playfield, y de 17 inch para el backglass. Como es la primera máquina que construyo de este tipo, la pienso como una prueba. La idea es meterle unas patas, pero no tengo claro todavía cómo hacerlo. Se pueden comprar patas de pinball por Internet, pero quiero contener al máximo el presupuesto de este proyecto. Otra posibilidad sería no poner patas, y que la máquina repose sobre la mesa.

La primera vez que construyes una máquina es un aprendizaje sobre la marcha de las cosas con que nos podemos encontrar. Se han de tomar muchas decisiones: medidas, posicionamiento de los componentes, materiales,… Es un proceso de toma de decisiones. Por tanto, nos lo hemos de tomar como un prototipo, y en el trayecto adquirimos un know-how que nos servirá para futuras máquinas (esperamos que haya más).

Para los vinilos de esta máquina todavía no he tomado ninguna decisión, seguramente se basará en la mesa Jacs to Open. Seguramente no serán vinilos, sino que la pintaré con plantillas, una técnica que no he probado. Otras posibilidades de diseño que me han gustado mientras probaba las mesas: Free Fall, Fast Draw, Harlem Globetrotters, Jumping Jack, King Rock, Star Trek.

200 mesas de pinball B2S configuradas y testeadas

He aparcado un tiempo el proyecto de la máquina de dardos por dos motivos. El primero que estoy haciendo un curso de edx.org de Inteligencia Artificial. Y después porque tengo ganas de acabar un virtual pinball de dos pantallas.

Ya tengo configuradas 200 mesas de pinball en modo B2S (Backglass to Screen). Esto significa que tenemos dos pantallas: el playfield (la pantalla principal); y la pantalla que hace de backglass, donde hay el score y otros efectos visuales. He tenido que transformar todas las mesas FS (FullScreen) que tenía a B2S, siempre que haya sido posible. Y he buscado otras mesas chulas hasta llegar a las 200.

La foto que he escogido para ilustrar el post es la mesa Centigrade 37, una mesa Gottlieb de 1980 muy chula que he descubierto.

Por otra parte estoy construyendo el mueble (lo ensearé en los próximos posts), y me queda decidir qué mesa esogeré para las artes. También he de resolver otros aspectos técnicos como el plunger analógico.

darts-machine v0.0.12. Avanzando en el proyecto

Espero que la versión 0.0.12 sea la última antes de mezclar todo el código con la detección y calibracinó de los dards, que utiliza dos cámars web i la librería OpenCV.

La principal novedad de las últimas versiones es que ahora se puede rectificar una entrada de los dardos. Desgraciadamente, ahora tengo claro que no se podrá conseguir una fiabilidad del 100% en la detección de los dardos, o sea que más vale pensar en la lógica que nos permitirá rectificar la puntuación de los dardos. Además de anular el punto y restablecer el estatdo anterior, se propone los puntos más próximos, que son los más probables. Por ejemplo, si hemos detectado D20 y es un error, los puntos más probables son MISS, 20, D1 iyD5.

He puesto colores en la consola, com se ve en la foto, pues la idea es que en la máquina se podrá jugar en esta interficie de consola. Sólo falta mezclar el subsistema de detección. Así pues, la parte gráfica, basada en SDL (ya he hecho pruebas de la migració a SDL), y la interface de los botones que necesitaré, lo dejaré para el final de todo.

Los juegos implementados son el 301 (y sus variantes), Cricket, Count-Up, Halve It y Round the Clock. El código está pensado para que sea fácil añadir nuevos juegos de dardos en caso de que sea necesario. Se puede jugar de 1 a 4 jugadores. El código de momento no prevee jugar por equips, es una mejora que se deja para más adelante si fuese necesario.

El proyecto se encuentra en GitHub:

Detección de los dardos: Primeras pruebas

Ya tengo el prototipo del mueble, y ya puedo empezar a hacer pruebas para detectar los dardos. Como se ve en el video, la detección es muy buena. Si nos fijamos en la configuración, la webcam esta en el mismo plano XY que la diana. Esto creo que tiene ventajas en la detección del dardo; y desventajas: necesitaré 2 webcams, y posiblemente 3 webcams para posicionar con fiabilidad el dardo en la diana.

Utilizamos la librería OpenCV sobre C++, i el flujo básico consiste en hacer una captura de la webcam; lanzar el dardo; y hacer otra captura. Entonces se hace la diferencia de las imágenes; se convierte a binario; se aplica una máscara para eliminar buena parte del dardo. En este momento hemos de ver la part de abajo del dardo, y la punta bien clara. Tenemos un número limitado de puntos blancos. Con estos puntos calculamos el momento, que sería el centro de gravedad de los puntos. Y haciendo un bucle sobre todos los puntos puedo detectar el punt más inferior, que sería la punta del dardo. Finalmente, para eliminar posibles errores, calculo la distancia entre la punta y el momento, que ha de ser un valor pequeño.

Aún queda mucha faena. Por una parte, hay que traducir la detección del dardo a los posibles sectores donde está el dardo. Después añadir otra webcam. Y si añado una tercera webcam, seguramente necesitaré algún USB Hub. El objetivo es utilizar una sola Raspberry Pi 3 para todo el proyecto.