Archivo de la categoría: Raspberry Pi

Amplificador de audio MAX98306 (Adafruit)

Durante quince días he tenido la máquina cocktail sobre la mesa y sin acabar, pendiente de meterle el amplificador de sonido, altavoces, y recoger todos los cables. Finalmente, como amplificador de sonido, he probado un breakout que tenía desde hace más de un año y que compré en un pedido de Adafruit. Realmente comprar a Estados Unidos continúa siendo muy caro hoy día, entre duana y envío, y por eso aproveché para comprar algunas cositas más.

El amplificacdor es el MAX98306. Estos mini-amplificadores serían la evolución actual y moderna de los LM3806. Bien, el resultado es que le he conectado unos pequeños altavoces de 4 ohm y estoy satisfecho con el sonido. Pondré el amplificador y los altavoces en la máquina arcade cocktail que estoy terminando. Además, ya sé donde colocaré los altavoces: estarán en los dos agujeros que he practicado para pasar los cables de los mandos a la Raspberry, y por tanto es un sitio donde quedan escondidos debajo de los mandos, pero el sonido puede fluir fácilmente hacia el exterior. En el siguiente post mostraré una foto de cómo queda todo antes de cerrar la máquina.

La desventaja es que no tiene control de volumen, aunque se pueda escoger entre 4 ó 5 niveles de amplificación diferentes. Pero claro, con el mueble cerrado no se podrá acceder al hardware. He probado el sonido con un par de juegos arcade de la máquina, i el resultado es más que aceptable.

Enlace al Stereo 3.7W Class D Audio Amplifier – MAX98306:
https://www.adafruit.com/product/987

Máquina cocktail casi acabada

El último mes he estado haciendo la máquina cocktail a ratos. He tenido un parón bastante largo pues mientras esperaba los vinilos, tenía otras tareas por hacer. Pero finalmente esta semana acabaré la máquina y ya se puede ver cómo será el resultado final. Seguro que me dará muy buenas sensaciones.

La máquina llevará un vidrio grueso gruixut encima, de manera que hará la función de mesita de la tele, donde puedas poner los pies y poner una jarra de cerveza. Esta primera versión tiene unas dimensiones un poco reducidas. La idea es que las dimensiones sean totalmente personalizables, será una mesita hecha a medida.

A parte de poder jugar a los juegos de MAME en modo cocktail, también se podrá jugar a los otros emuladores. Además estrenaré el emulador openmsx, donde habré integrado unos 100 juegos de la plataforma MSX. Perfecto para los fans de esta plataforma.

Nueva máquina: Fatal Fury

Esta mañana he enviado una máquina a Benifassà, en Castelló. La máquina lleva unas artes de Fatal Fury, e incorpora un monedero en el lateral. Como monedero lleva un S-818. Es increible la poca documentación con que viene, todo en chino. He tenido muy mala suerte con este monedero, pues se me estropeó. Por suerte, pegando un microinterruptor he podido recuperar la funcionalidad básica: las monedes más grandes de 1 euro (2 euros, 50 céntimos), no entran en el sistema; las más pequeñas en diámetro sí que entran (y casi siempre se van por un lado y no activan el microinterruptor). Por tanto, he salvado los 26 euros que vale.

Construyendo esta máquina (he tardado unas dos semanas) he perfeccionado algún procedimiento, y he tenido ideas para mejorar la próxima máquina que haga. Y es que siempre hay cosas a mejorar.

Construyendo un cocktail arcade

Pues me he decidido a construir un cocktail. Como es el primero, me lo tomo como una prueba. El mueble será como una mesita de tele/café, y le pondré un vidrio encima. Montaré una pantalla de 15». Los mandos quedarán un poco escondidos debajo de la madera, pero tienen que ser fácilmente accesibles. La CPO del jugador 1 tendrá los botones de Escape, Player 1, Player 2, Coin, y tres botones para jugar, además del joystick. En cambio, el jugador 2 sólo tendrá tres botones para jugar y el joystick.

Estos días estoy clasificando los juegos de MAME que tienen opción de cocktail. Hay de verticales y de horizontales. Los estoy clasificando uno por uno, y es bastante entretenido, pero realmente vale la pena, pues algunas rom no tienen bien implementada la opción de cocktail, o bién se tiene que cambiar la configuración de los botones.

Hay muchas cosas todavía por decidir: como poner las patas de la mesita, la decoración final, qué configuración de audio pongo… A ver cómo quedará.

Arcade Stick con volante

Ya está acabado el arcade stick con volante. Nos hemos decidido por el diseño de Pole Position, y a esta máquina la llamaremos Arcade Stick modelo Pole Position. En un post anterior ya se discutió el prototipo de spinner a partir de un ratón de bola y un aparato de video reciclado. Funcionaba correctamente. La siguiente fase era buscar una lista con las roms de mame4all que necesitan spinner para jugar correctamente (en vez de joystick), y configurarlos para spinner. Finalmente, el último paso era construir un mueble dedicado, tipo arcade stick, sin necesidad de joystick.

I aquí está el resultado final. He querido apurar las dimensiones y esto me ha dado problemas. Son 8 cm de alt sin contar el volante y 40 cm de ancho. La próxima máquina podría ser un poco más ancha, pero de hecho tengo un par de ideas para arañar algún milímetro, o sea que podría hacerlo con la misma geometría. Otra cosa a mejorar es el diseño del spinner: funciona bien, pero se puede mejorar.

Integra sólo el emulador de mame4all, y he encontrado unos 50 juegos, la mayoría de conducción (Pole Position, OutRun,…), pero hay de otras categorías. A destacar el Arkanoid, que sólo se puede jugar con spinner (finalmente he podido hacer una partida decente con el Arkanoid).

Ahora estoy en fase de incorporar el emulador AdvanceMame y todo su set de roms, y esto quiere decir que esta lista se verá muy incrementada. Seguramente se tendrá que montar una RPi 2 (en este caso se ha utilizado una RPi B+).

También hemos modificado el front-end para adaptarlo a la absencia de joystick. Tenemos 3 botons de servicio (Salir, Start y Coin), y tres botones para jugar (en los juegos de conducción normalmente son acelerar y freno).

Bien, a jugar! Gas, gas!

Arcade bartop con pantalla vertical

La nueva máquina que hemos construido es una bartop con pantalla vertical que integra el emulador de MAME. Sólo hemos puesto este emulador porque es el único que tiene sentido con una pantalla vertical. Aquí podemos encontrar los mejores juegos de bar de los años 80, que sólo tiene sentido jugarlos con una pantalla vertical: Aero Fighters, Donkey Kong, Pacman, etc. Después de hacer unas cuantas máquines con pantallas grandes de 19», ya tenía ganas de montar una pantalla 4:3 orientada verticalmente y jugar a unos cuantos juegos de naves verticales: Aero Fighters, 1942, etc.

El diseño de la máquina está basado en el Pacman, como se ve en la fotografía, y creo que ha quedado bastante chula. Sin embargo, el motivo principal para construir la máquina era jugar a shooters verticales aprovechando toda la pantalla. En la máquina hay más de 200 juegos verticales de todas las categorías, aunque la mayoría son Shooters. También hemos metido el resto de juegos horizontales de MAME (unos 1000), que también se pueden jugar perfectamente en esta máquina, aunque se desaprovecha mucho la pantalla como es lógico.

Es una máquina de un solo jugador, y así se puede mantener unas proporciones elegantes y verticales, con sólo 40 cm de ancho. Una máquina de sobremesa que ocupa poco espacio y con un diseño elegante.

Como siempre, la máquina lleva una Raspberry Pi, y el front-end es el que ya programamos en su día nosotros mismos (joanillo front-end, algun día me decidiré a cambiarle el color naranja de fondo). Con el front-end es muy fácil alternar entre juegos verticales y horitzontales, y navegar por las diferentes categorías de juegos.

Rotar la pantalla 90 grados ha sido muy fácil. Sólo hay que poner display_rotate=1 en el fichero /boot/config.txt.

Máquina Arcade Bartop de 2 jugadores, modelo Super Mario World


Ya está la nueva máquina de dos jugadores: bartop 2 jugadores modelo Super Mario World. Tiene los siguientes emuladores: MAME, NeoGeo, SNES, Mega Drive (Genesis) y GBA. Para los vinilos he encontrado un proveedor factible: pixartprinting.es, trabajan bien. A parte de los vinilos laterales y el panel de los mandos, para la marquesina se ha hecho un vinilo especial para retroiluminación.
Esta máquina me ha dado bastantes problemas con la tarjeta SD de 16GB, con la configuración de la salida de video HDMI, y con la alimentación de la RPi, pero nada que no se pueda resolver, y espero en la siguiente máquina aprender de los errores.

En el proceso de fabricación también he sacado conclusiones que me servirán para mejorar el proceso en el futuro, tanto en la parte de construcción del mueble como en la electrónica. Por ejemplo, es la primera máquina con U-molding y vinilos laterales. La retroiluminación de la marquesina se ha hecho como en las anteriores máquinas: un array de 30 LEDs blancos alimentado a 12V. El front-end es el de siempre, joanillo_arcade_frontend que ya va por la versión 1.0.7, y que desde la versión 1.0.5 es multi-emulador.

El monitor TFT de 19» y la tarjeta de sonido se alimentan con sus transformadores. Un transformador de 12V alimenta la marquesina y la Raspberry. Para convertir los 12V a 5V de la Raspberry quise probar un regulador de tensión 78L05, pero no funcionaba bien, a parte de que es muy ineficiente. Por tanto, al final se ha optado por un regulador step-down DC-DC de 12V a 5V, y funciona correctamente. Se ha mejorado bastante la parte de grimpar los cables, aunque el proceso todavía tiene margen de mejora. Es importante hacer las conexiones de la botonera y de los pines GPIO antes de acabar de montarlo todo, pues si hay algún error en las soldaduras o conexiones es importante no deshacer la faena que ya se ha hecho. De hecho, esta sería la principal conclusión en la mejora de la ingeniería del proceso: mirar de no hacer las cosas dos veces.

Como en proyectos anteriores, se ha utilizado el proyecto pikeyd para conectar los botones y joysticks a los pines GPIO. Se utilizan casi todos los pines GPIO, un total de 24 pines GPIO.

A la espera de acabar esta semana las dos máquinas pendientes (mini-bartop y arcade stick), los próximos objetivos serán incorporar los emuladores Atari 2600 y Commodore 64, migrar a la Raspberry Pi modelo 2 (hasta ahora he utilizado la B+), así como acabar otras máquinas pendientes.

Bien, la máquina ya está ofreciendo diversión a tope. Primero estuve jugando con Pere al Metal Slug, matando unos cuantos enemigos, y después nos enfrentamos en el Street of Fighter. Después mi madre contra mi hija, unas grandes campeonas, se lo pasaron muy bien con un Tetris de Neo-Geo.

Alimentación autónoma de la Raspberry Pi

Por fin ya tengo proyecto para colocar mi batería recargable Lipo. Se trata de hacer un Arcade Stick, totalmente transportable. El único cable que saldrá del cacharro será el cable HDMI, listo para conectarlo a la tele y jugar a tus juegos arcade preferidos.

Compré en Adafruit tanto la batería LiPo (Lithium Ion Polymer Battery – 3.7v 2500mAh, http://www.adafruit.com/product/328) como el cargador/boost (Adafruit PowerBoost 500 + Charger, https://learn.adafruit.com/adafruit-powerboost-500-plus-charger). Entre los dos unos 30 e. La idea original era hacer una PPiGRRL – Raspberry Pi Gameboy (https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy/overview). En ese proyecto utilizan como batería una pila cilíndrica, una idea también interesante para alimentar la RPi dado el poco espacio que ocupa esta pila (2200mAh lithium cylindrical battery). Mi batería LiPo es más plana, y por otra parte más llarga y ancha.

Al final este proyecto está aparcado, pero esta batería me irá bien para mi Arcade Stick con la idea de que sólo salga un cable, el cable HDMI.

De una parte tenemos la batería que da 3,7V. Para conseguir los 5V que necesita la RPi necesitamos un power boost. Por otra parte, la batería, que es recargable, se descarga y la tenemos que recargar con un carregador (:-)). Pues bien, el cargador y el power boost son el mismo elemento, que ya he puesto el enlace más arriba. En la foto se ven claramente las conexiones.

Podemos soldar un conector USB, y alimentar la RPi con un cable USB-microUSB. Pero yo he optado por alimentar la RPi directamente por los pins GPIO, como hago habitualmente. Finalmente, para cargar la batería, con un cargador de móvil es suficiente.

Vemos en la foto cómo está funcionando el front-end sin ningún problema.