Proyecto

HirikiMAME: Máquina arcade DIY

Proyecto para construir tu propia máquina mini arcade basado en los primeros diseños hechos por Arquimaña e Interzonas en diferentes talleres realizados en Hiriklabs durante 2013.

Grupo Katxarraroak

HirikiMAME: Máquina arcade DIY

Gracias a lo asequible de la Raspberry Pi2 y mediante el uso de tecnologías de fabricación digital, puedes construir tu propia máquina recreativa mini arcade para conseguir una experiencia retro clickable única.

Basados en los primeros diseños hechos por Arquimaña e Interzonas en diferentes talleres realizados en Hiriklabs los días 4 y 5 de Julio de 2013 (usando el modelo B de Raspberry Pi 1en origen y Raspberry Pi2 posteriormente) hemos preparado esta pequeña guía paso a paso para montar esta pequeña joya mini arcade.

Puedes conseguir aquí tus planos para realizar la carcasa gracias al trabajo de diseño de Arquimaña. Para materializar el diseño necesitarás una máquina o servicio de corte láser, que puedes encontrar en cualquier makerspace, fablab o fabstore de tu ciudad.

Paso a paso

Necesitarás el siguiente material para construir y configurar tu máquina recreativa:

  • Destornillador Philips pequeño
  • Juego de llaves Allen
  • Alicates
  • Tijeras de electricidad
  • Multímetro
  • Pelador de cable
  • Soldador
  • Estaño soldadura
  • Soporte soldador
  • Pantalla HDMI y teclado para la configuración
  • Cable Ethernet, router y conexión a internet (también puede hacerse por wifi)

Raspberry pi funciona a 5V y nuestra pantalla TFT 7” funcionará a 12-24V. Para poder simplificar el sistema y no emplear 2 sistemas de alimentación diferentes, emplearemos un alimentador dual 5V 12V.

Cortamos el conector con las tijeras y pelamos los cables interiores. Veremos 3 cables diferentes, habitualmente uno amarillo, otro blanco y otro negro.Combinando los diferentes colores podremos conseguir el voltaje necesario. En nuestro caso, esto sucederá mediante las siguientes combinaciones, pero tendrás que asegurarte en tu caso empleando un multimetro y conectando su alimentación a la red.

Negro / tierra (positivo) por lo que >  entre amarillo y negro = 12V

entre blanco y negro = 5V

Ahora cortaremos el cable USB, dejando 20 cm entre el conector micro USB y el punto de corte. De nuevo, pelamos el cable con nuestras tijeras y posteriormente pelamos los cables interiores con el pelador. Podremos observar tres cables de colores verde, negro y rojo. Podemos descartar el verde (es el cable de datos). Para conseguir los 5V prepararemos e insertaremos tubo termoretráctil en cada uno de los cables y los soldaremos a los cables de la alimentación como mencionamos anteriormente, es decir:

Cable USB rojo → cable de alimentación blanco

Cable USB negro → cable de alimentación negro

Finalmente, soldaremos los 12V a la pantalla TFT. Este tipo de pantallas suelen tener habitualmente 3 cables, rojo, negro y azul. Cortamos el azul que no necesitaremos y de nuevo, pelamos los otros dos cables, insertándolos en el tubo termoretráctil y soldando cada uno de ellos de la siguiente manera:

Cable TFT rojo → cable de alimentación amarillo

Cable TFT negro → cable de alimentación negro

Ahora podemos unir todos los tubos termoretráctiles con cinta aislante para terminar esta parte y no desenchuféis el soldador porque lo necesitaremos en el próximo paso.

Ahora prepararemos la parte frontal de la carcasa montando el joystick y los botones y haciendo las soldaduras correspondientes.

Para el joystick usaremos los tornillos cabeza de cono M3 de 25mm, tuercas y arandelas. Los atornillamos hasta que la cabeza de cono del tornillo quede dentro de la madera y la superficie queda totalmente alineada a la vista.

Después insertamos los pulsadores (los grandes) y los botones de menú (pequeños rojos) utilizando sus propias tuercas grandes.

Una vez todo esté bien, prepararemos los cables de conexión. Cogemos los jumpers hembra-hembra, los cortamos a la mitad y los pelamos. Después, cortar 25cm de cables de colores, insertamos hojas de tubo termoretráctil y los soldamos juntos. Necesitaremos 11 cables para 1 jugador:

  • 2 negros
  • 4 amarillos
  • 3 rojos
  • 1 verdes
  • 1 azules

Ahora  soldamos cada uno a los pins NO (normally open) como vemos en el siguiente esquema. También haremos las conexiones comunes del GND a todos los botones y al joystick. ¡Es sencillo si seguimos el esquema!

Esta es la parte más emocionante, donde vamos a preparar nuestra Raspberry Pi para convertirla en una recreativa arcade.

Raspberry Pi es un ordenador de bajo coste del tamaño de una tarjeta de crédito que se conecta a un monitor de ordenador o un televisor y utiliza un teclado y un ratón estándar. Es un dispositivo con grandes posibilidades que permite a personas de todas las edades explorar la computación y aprender a programar en lenguajes como Scratch o Python.Es capaz de hacer todo lo que esperamos de un ordenador de escritorio, desde navegar por Internet y reproducir vídeo de alta definición, a trabajar con hojas de cálculo, procesadores de texto o jugar a juegos.

En este caso raspi es la elección perfecta para el proyecto gracias a su reducido tamaño, bajo consumo eléctrico y compatibilidad con los emuladores de juegos arcade.

Tenemos 2 formas de instalar el sistema, la más sencilla que hemos preparado aquí (instalar y jugar) y el modo avanzado donde seguiremos el proceso paso a paso para hacer funcionar la máquina (y aprender como funciona todo)

  • Modo sencillo

Descargamos nuestra última imagen de disco hirikimame_vXX.XX.img y seguimos estos pasos para copiarla/quemarla en nuestra tarjeta microSD. Una vez hecho podemos pasar al siguiente paso.

  • Modo avanzado

Descargamos la imagen de piplay y la quemamos/grabamos en nuestra micro SD siguiendo los pasos.

Insertamos el microUSB en la raspi.

Conectamo0s el teclado, el cable ethernet y la pantalla HDMI a nuestra raspberry pi y lo enchufamos a la corriente. Esperamos a la pantalla de inicio de piplay. Una vez alli navegamos hasta el configurador de raspberry pi en la opción de nombre Raspi Config o pulsamos ESC y escribimos en la terminal (prestando atención a que la configuración de idioma del teclado se la correcta)

# sudo raspi-config

En este menú de configuración tendremos que dar algunos pasos. (Para movernos por los menús usaremos las teclas de dirección del teclado. Para seleccionar una opción pulsaremos enter. Para salir pulsaremos ESC y para saltar al botón Finish pulsaremos TAB.)

1 Expand Filesystem = es necesarioo hacer esto. Piplay esta usando unos 2gb de nuestra SD card en este momento, por lo que para poder usar el espacio libre restante para instalar juegos y configuraciones expandiremos el sistema de archivos. La operación se completará en el próximo reinicio)

2 Change user and password = si vamos a dejar o usar nuestra máquina en un lugar abierto al público es recomendable cambiar esta opción. Si no va a estar en un lugar público, sabiendo lo fácil que es olvidar este tipo de passwords, no lo cambies.

4 Internationalisation options -> change timezone = elegiremos nuestra franja horaria para evitar problemas con las descargas desde internet.

4 Internationalisation options -> change keyboard layout = seleccionaremos nuestra propia capa de teclado. Generalmente suele funcionar el “generic 104-key pc”.

7 Overclock = seleccionaremos la opción Pi2, generalmente suficiente para cualquier tipo de juego arcade. Si pensamos jugar a juegos de playstation podemos incrementar este nivel. Es MUY IMPORTANTE entender lo que conseguimos con esto, por lo que aquí van algunos de los riesgos que tenemos que tener en cuenta:

Reducción de vida útil – los componentes podrían fallar antes

Generación de calor– operando a mayores velocidades generamos mayor temperatura (se recomiendan los disipadores de calor).

Corrupción de archivos – se han observado corrupciones de archivos en los ajustes de overclocking no optimizados.

Pérdida de garantía – forzar el voltaje conlleva la pérdida de garantía.

Ahora podemos apagar y reiniciar nuestra raspi.

Como hemos dicho, Raspberry Pi es un ordenador del tamaño de una tarjeta de crédito que podemos conectar a un monitor o TV, pero tiene además algunas características especiales que convierten esta placa en ideal para este proyecto. Este ordenador integrado en una placa tiene un GPIO (general purpose input and output). Estos pequeños pines pueden ser usados para cualquier propósito en el que sea necesario comunicarse con dispositovos externos como sensores, botones, actuadores. Raspberry Pi 2 tiene un cabezal de 40 pines con estas salidas o pinout:

La máquina recreativa que acabamos de instalar nos permite jugar con un teclado estándar, por lo que conectaremos estas salidas (pinout) para conectar nuestros botones y joystick y simular las pulsaciones de un teclado. Para conseguir que esto suceda tenemos diferentes y muy buenos scripts shell como el adafruit retrogame, aunque el que usaremos nosotros será el daemon gpioneer de mholgatem un programa simple y de uso muy intuitivo.

En primer lugar conectaremos todas las partes entre si. Cogemos los jumpers que hemos soldado y los conectamos a los pins del GPIO siguiendo la guía (esto es solo para los que siguen el “modo sencillo”, si vas a instalarlo todo siguiendo el “modo avanzado” puedes conectarlos como quieras, luego verás por qué)

Mira en detalle los interruptores del joystick y conéctalos de acuerdo con el que esté pulsado cuando mueves el joystick en una dirección en concreto.

Los cables tierra pueden conectarse a cualquier pin ground de la Raspberry Pi 2. Además, es posible hacer un solo cable GND común para todos los interruptores.

Ahora conectamos el cable compuesto de vídeo (el macho RCA rojo) al conector de entrada AV de la pantalla TFT 7” (cualquiera de los 2 RCA hembra amarillos), la alimentación a la pantalla y la raspi, y el cable ethernet y desconectamos el teclado USB. Insertamos el microUSB que hemos quemado previamente (con la imagen, no con fuego xD) si no lo hemos hecho antes. Echufamos la alimetnación y encendemos la pantalla. Raspi arrancará.

Solo para instalaciones en modo avanzado:
(los que habéis usado el “modo sencillo” podéis saltar al siguiente paso, ya lo hemos hecho por vosotros 😉 ).

Cuando os salga la pantalla home de Piplay, conectamos de nuevo el teclado y pulsamos ESC para navegar a la terminal. Una vez allí pulsamos:

 # cd 
 # git https://github.com/HIRIKILABS-repo/gpioneer/gpioneer.git
 # bash gpioneer/install.sh

El script arrancará e instalará las librerías python para hacer que el daemon funcione. Tendremos que esperar un poco, depdendiendo de nuestra conexión a internet puede tardar hasta unos 15 minutos. Cuando termine nos pedirá realizar la primera configuración, pulsamos yes y comenzamos.

El script nos guiará para mapear los pins del GPIO como pulsaciones de teclado, presionando ARRIBA dos veces, ABAJO dos veces y así sucesivamente. Tenemos 5 botones y 4 direcciones pero este daemon nos permitiría jugar hasta con 9 botones por cada jugador, por lo que podemos pulsar cualquiera en los botones 6-7-8-9. Después los borraremos. Diremos que NO a la configuración del segundo jugador y terminaremos el configurador. Ahora el script de configuración reiniciará el sistema por nosotros. Esperaremos hasta que arranque e intentaremos movernos por el menú con el joystick. El daemon funcionará en segundo plano para siempre =)

Ahora que la recreativa está funcionando es momento de cerrar nuestra maravillosa carcasa hecha mediante core láser.

Descargar carcasa




















Piplay es un SO pre-empaquetado de Rasberry Pi diseñado para el juego y la emulación. Incluye los siguientes emuladores:

  • MAME – AdvanceMAME & MAME4ALL*
  • CPS I / CPS II – Final Burn Alpha
  • Neo Geo – GNGeo
  • Playstation – pcsx-reARMed
  • Genesis – DGen
  • SNES – SNES9x
  • NES – AdvMESS
  • Gameboy – Gearboy
  • Gameboy Advance – GPSP
  • ScummVM
  • Atari 2600 – Stella
  • Cavestory – NXEngine
  • Commodore 64 – VICE

El emulador MAME necesita de unos 10gb de espacio, por lo que lo instalaremos ahora. Si tienes una tarjeta SD de 16GB es posible que esta se llene, por lo que recomendamos usar una SD de 32GB o superior.

Navegamos hasta la opción  “Install MAME” en el menú y esperamos hasta que se instale. Necesitaremos una conexión a internet medianamente rápida o podemos esperar tomando un café.

Añadiendo roms

Todas las ROMs del sistema deberán almacenarse en el directorio  /home/pi/roms/. PiMAME incluye un servidor FTP y un cargador web que facilita la subida de juegos. Puedes seguir los pasos de esta guía de inicio rápido del piplay team. (Necesitaremos otro ordenador Pc/Mac en la misma red local)

Para acceder al frontend web, encenderemos nuestra máquina recreativa conectada a internet e introduciremos en nuestro navegador web la dirección IP que veremos en la página de inicio de la recreativa (arriba a la derecha).

Actualizando Piplay

PiMAME viene con un script actualizador incluido, por lo que podemos asegurarnos de estar corriendo la última versión.

  • En la pantalla del Menú Principal seleccionamos Exit (Return To Command Line)
  • En la línea de comandos tecleamos:
    cd pimame_installer/ y pulsamos Enter.
  • Ahora tecleamos: ./update.sh
  • Cuando el script se haya completado será momento de reiniciar.
  • Tecleamos: sudo reboot y pulsamos Enter
  • Ahora tendremos instalada la última versión de PiMAME.

Configurar teclas/botones en los emuladores.

Si hemos cargado una ROM observaremos que algunos emuladores no funcionan correctamente con nuestros controles. Cada emulador tiene sus propios mapas de controles, por lo que tendremos que preparar los mapeos para cada emulador. En ocasiones incluso cada juego puede tener sus propias configuraciones de teclas, por lo que podremos configurarlas de una en una. Para mapear esto, tenemos que conectar nuestro teclado y presionar TAB cuando estemos en un juego o emulador y veremos el siguiente menú. Seleccionamos “input (general)” para mapear únicamente el juego al que estamos jugando. También se guardará para las próximas veces que juguemos.

Arrancar de inicio con un juego/emulador/rom específico

Tecleamos:

#sudo nano ~/.profile

por encima de la línea que dice:

python /home/pi/pimame_files/menu.py

añadimos esto para correr un EMULADOR:

/home/pi/emulators/mame4all-pi/mame

o añadimos esta línea para correr una ROM en concreto:

/home/pi/emulators/mame4all-pi/mame romname

La ROM tendrá que estar localizada en el directorio adecuado.

*Este ejemplo concreto arrancará mame4all y nos llevará al menú si salimos de mame.

Conexión Wifi en vez de Ethernet

La forma más sencilla de conectar nuestra máquina será siempre a través de Ethernet, pero si por alguna razón no pudiesemos usar una de estas conexiones siempre podremos conectar nuestra raspi a través de Wifi. Piplay trae un configurador wifi preinstalado, por lo que navegaremos hasta el en el menú e introduciremos nuestra configuración de wifi. (Necesitaremos el teclado para teclear en la terminal)

Editando los controles arcade GPIO

Aquellos que han hecho la instalación en “modo avanzado”, habrán mapeado más botones de los que tienen. Con tal de poder limpiar la configuración y hacer más sencillo el uso de la máquina, es recomendable borrar los botones que no tenemos. El daemon gpioneer tiene una página de configuración a tal efecto en su frontend web.

Para acceder al frontend web, encendemos la máquina recreativa con conexión a internet y tecleamos en el navegador web de nuestro PC/MAC la IP que obtendremos en la pantalla de inicio de nuestra recreativa. (arriba a la derecha)

Ahora vamos a la sección ‘database admin->GPioneer’ y borramos todos los botones que no esten en uso.

También podremos usar esta página de configuración para cambiar los pines de cada botón, para realizar nuestros propios mapeos y árbol de conexiones, para añadir más botones o para añadir múltiples pulsaciones de teclas para los comandos del sistema. El creador del script explica un poco mejor todo esto en el siguiente link.