Clon de Nintendo con Raspberry Pi


Recientemente se celebró   el 25 aniversario de la célebre consola de  Nintenedo,  de modo que la comunidad  de aficionados  ha querido rendirle un homenaje   a este dispositivo de juego clásico,  mediante la construcción de su propia versión actualizada gracias a la impresión 3D y la electrónica de la Raspberry Pi.

La caja  recreada   a imagen y semejanza de la versión   original, esta vez  se obtiene  impresa en 3D  alojando todos los componentes,  permitiendo ademas  un personalización total , pues se puede imprimir en su color favorito.

Existiendo los mini ordenadores Raspberry Pi y siendo más que suficientes para hacer funcionar en ellos varios emuladores de consolas como NES, SNES o incluso MAME, era cuestión de tiempo que se iniciara un proyecto como PIGRRL,  nombre realmente curioso    pues  esconde el diseño de la primera consola portátil impresa en 3D que funciona mediante una Raspberry Pi, una pequeña pantalla TFT y un controlador compatible.

Esta es la lista de la compra  (coste total alrededor de 90€):

  • Raspberry Pi Model B  ( descatalogado) o  en su defecto Raspberry Pi 3 modelo B
  • PiTFT Mini Kit –( pantalla TFT  con sensor capicitivo  pero puede usarse sin el sensor)
  • Cable GPIO Pi –   ( también sirve un  viejo cable IDE de 23 pnes de  los  usados   en ordenadores )
  • PowerBoost 500 –  ( convertidor  DC /DC  con salida a 5V DC)
  • Micro Lipo Charger   (circuito de carga para la  batería)
  • SNES Controller –   ( si no se tiene se pueden usar 10 mini-pulsadores roscados normalmente abiertos)
  • 2200mAh 3.7V  ( bateria de litio)ry
  • Power slide switch – ( cualquier interruptor pequeño nos deberia de servir)

Por supuesto, una vez tengamos todo el material podemos ir imprimiendo nuestra carcasa portátil en forma de Game Boy donde acomodaremos la Raspberry Pi una vez esté completamente configurada.

Las piezas necesarias las podemos comprar online por unos 90€, a los que habría que añadir la tarjeta SD que elijamos, por menos del precio de una Nintendo DS tenemos miles de juegos gracias a los emuladores libres que podemos utilizar en la Raspberry Pi dentro de PIGRRL.

Veamos   los  pasos para la construcción de esta ingeniosa consola:

 

1-Descargar la caja de Raspberry Pi con forma de Game Boy

 

Este proyecto consta de sólo dos piezas  que están optimizados para imprimir en cualquier impresora 3D FDM con un área de construcción mínima de 150mm x 150mm x 100mm.  

Para ello debemos descargarnos todos los archivos STL de DIY Raspberry Pi Game Boy en Thingiverse.

Piboy-top.stl
Piboy-bottom.stl
PLA @ 230
2 conchas
10% Infil
0,2 altura de capa
Velocidades de 90/120
Sin balsa
Sin soporte

Ajuste a presión :  Las dos piezas encajan juntas y se aseguran con tornillos philips.Los cargadores Raspberry Pi, PowerBoost 500 y Micro Lipo se montan en la parte piboy-bottom.stl con tornillos phillips # 6-32 x 1/2 ‘.

 

Los acabados en 3D dependen de cada impresión pero los diseños se han optimizado para ser impresos en ABS, al ser dos impresiones: parte frontal y parte trasera, de modo que podemos tener una Game Boy de dos colores .

 

 

2-Ensamblaje

Una vez descargado el modelo 3D de Game Boy para PIGRRL deberemos proceder al montaje, para ello requeriremos un soldador, todos los componentes citados  y pro supuesto algo de perseverancia ya que toca cablear a mano todo el proyecto.

Todos los diagramas simplificados y una clara explicación del proyecto se pueden encontrar en esta guía de Adafruit   paso a paso  , pero para entender  el montaje  mejro resumiremos  las partes mas importantes para que  el lector se haga una ideal del montaje  final

La siguiente ilustración es una referencia del circuito de alimentación y los botones del controlador de juego cuyos circuitos impresos se han reciclado de un viejo mando . La posición de los componentes no es exacta y tampoco esta  a escala.Si no se tiene un viejo mando obviamente se pueden usar pulsadores roscados ( aunque no quedara tan realista)

Gaming_circuit-diagram.png
Circuitos de potencia
La carga de la batería se realiza mediante uno de los circuitos que soldaremos y dado el mínimo consumo de la Raspberry Pi pronto comprobaremos que podemos jugar muchas horas al MAME con PIGRRL.
Utilizaremos una batería recargable grande para alimentar el PiGrrl durante unas horas! Para mantener la batería recargada, utilice una tarjeta MicroLipo o MiniLipo (que son lo mismo básicamente, sólo uno tiene un microB toma, el otro tiene una toma de miniB)
Lo bueno de esta batería es que es bastante pequeña y densa, pero es  de 2.7V  ( y NO  de 5V ) asi que se se usa  un convertidor cc/cc para elevar a 5V.

El convertidor  es  un PowerBoost500 que puede aumentar el 3.7V hasta  5V para alimentar a la RPi

Cuando la batería cae demasiado bajo, se encenderá una luz roja en el PowerBoost para avisarle que debe recargar la batería.

Usted puede recargar y jugar al mismo tiempo

Circuitos del teclado

Con el fin de hacer que la almohadilla de control se sienta como el original, vamos a «reciclar» un controlador SNES. Al abrirlo y cortar el PCB podemos reutilizar los elastómeros de goma y los botones.

La forma en que funciona el teclado es súper simple. Cada elastómero tiene un pedazo de material conductor en la parte posterior. Cuando presiona hacia abajo en la PCB, pone en cortocircuito dos cojines de oro juntos. Una almohadilla está molida, la otra almohadilla es la señal. Reutilizaremos el código GPIO de CupCade para que cada pad sea un pin RasPi. Cuando el pin se pone en cortocircuito a tierra, vamos a generar una pulsación de tecla

Gaming_diagram-buttons.png
Su teclado puede ser un poco diferente mirando pero no se preocupe  pues basta con trazar el cobre para identificar la traza de tierra común para cada conjunto de botones
A continuación se muestra una lista de conexiones de Raspberry Pi que se conectarán a los botones correspondientes. 1-26 son el número de cables en un haz de cables Pi, siendo 1 el cable blanco (tierra). No nos conectamos a los últimos 6 pines, ya que se utilizan para la pantalla PiTFT!
  1. n/c – not connected (3v3)
  2. connect to output of PowerBoost500 (5v0)
  3. LEFT BUTTON (SDA)
  4. n/c (5v0)
  5. RIGHT BUTTON – (SCL)
  6. connect to ground of boost (GND)
  7. DOWN BUTTON (GPIO #4)
  8. n/c (TXD)
  9. connect to ground on Dpad (GND)
  10. n/c (RXD)
  11. UP BUTTON (GPIO #17)
  12. START BUTTON (GPIO #18)
  13. A BUTTON (GPIO #27)
  14. Select/start ground pad (GND)
  15. B BUTTON (GPIO #22)
  16. SELECT BUTTON (GPIO #23)
  17. n/c (3v3)
  18. n/c (GPIO #24)
  19. n/c (MOSI)
  20. AB BUTTON ground pad (GND)
  21. n/c
  22. n/c
  23. n/c
  24. n/c
  25. n/c
  26. n/c

 

Para conectar Al GPIO lo mejor es usar un conector de 26 pines ( de los  usados en los conectores IDE de los HDD) . Retire los cables # 1, 4 , 8 , 10 , 17 , 18 , 19 . ¡No necesitaremos éstos también, así que recórtelos abajo!

Gaming_cut-wires-4_8_10_17_18_19-too.jpg

Estas  son las conexiones  a realizar

  • Izquierda DPad :Alambre de soldadura # 3 al botón izquierdo en el rastro expuesto del PCB de DPad. Hay un pequeño agujero que puedes enhebrar el cable.
  • Derecho DPad :Alambre de soldadura # 5 al botón derecho del PCB de DPad.
  • Abajo DPad ;Añada el alambre # 7 al botón de desconexión de la PCB de DPad. Pinzas son útiles durante la soldadura!
  • DPAD común :Alambre de soldadura # 9 a la mas de la DPad.
  • Up DPad :Alambre de soldadura # 11 al botón de arriba de la DPad.
  • Botón de inicio:Alambre de soldadura # 12 al botón de arranque en la PCB de arranque + seleccione.
  • Un botón :Solde el alambre # 13 al botón A en el A + B PCB.
  • Inicio Común + Seleccionar :Alambre de soldadura # 14 al suelo de la PCB de arranque + seleccione.
  • B Botón:Solde el alambre # 15 al botón B en el A + B PCB.
  • Botón Seleccionar:Solde el alambre # 16 al botón de selección en la PCB de Start + Select.
  • Común A + B: Alambre de soldadura # 20 a la tierra común del A + B PCB.
Gaming_Wire-_20-AB-ground.jpg

 

Como vemos el montaje de esta videoconsola impresa en 3D es relativamente simple  y quizás lo mas  laborioso  sea  las conexiones de los pulsadores realizando  las soldaduras y asegurándonos eso si  de que los cables son suficientes para que todo encaje en la propia carcasa.

Montada la energía  y los controles   ya solo queda montar la  pantalla  y la propia Raspberry Pi

Pantalla  PiTFT Mini Kit
Gaming_screen-solder-front.jpg

 

El  kit de pantalla táctil de 2.8 ‘incluye los extras que se necesita para montar la pantalla. Sólo necesita soldar los cabezales extraxuales macho y hembra 2×13 a la PCB. Asegúrese de revisar la  guía paso a paso haciendo clic en el enlace de abajo!

Montaje de PiTFT 2.8 ‘

Sugerencia de montaje; Aquí está una extremidad rápida en soldar esas cabeceras. Si tienes algo divertido, coloca un poco de tac en los lados de los cabezales para mantenerlos en su lugar mientras suelda y lo retira cuando hayas terminado.

 

 

3-Configuración de la tarjeta SD

Puesto que estamos usando la misma configuración de controlador en el CupCade también vamos a utilizar la misma imagen de tarjeta SD! Descargue esta imagen que tiene soporte NES

Este es un archivo grande (alrededor de 840 megabytes) y tomará un tiempo para transferir.

Después de descargar, la imagen del disco necesita ser instalada en una tarjeta SD (4 GB o más). Si eres nuevo en esto, el proceso se explica en Adafruit’s Raspberry Pi Lesson 1 .

4-Configuración de Pi

Conecte un teclado al PiTFT + Pi e inserte la nueva tarjeta SD CupCade.
El Pi puede arrancar y reiniciar para terminar la configuración (como expandir la imagen)
Una vez que arranque el Cupcade usted notará que la pantalla es vertical. ¡Tiene que girar la pantalla!

Pulse Alt-F3 para abandonar el software GAMERA y el shell. Inicie sesión con pi / frambuesa y edite /etc/modprobe.d/adafruit.confcon sudo nano /etc/modprobe.d/adafruit.conf

Y cambiar la línea fbtft a esto:

options fbtft_device name=adafruitts frequency=80000000 fps=60 rotate=270

 

A continuación, sudo reiniciar para que la nueva rotación activar!

Siempre se puede cerrar con un teclado conectado escribiendo ESC que saldrá del emulador / GAMERA

5-Cargar ROMs

Su PiGrrl puede ejecutar MAME ROMs, así como NES!  Haydocumentación sobre cómo instalar ROMs en la página tutorial de cupcade

Haga clic para obtener información sobre la instalación de ROMs
Para ROMs MAME, ¡sólo podrás jugar con estilos «horizontales / paisajistas»!

Para ROMs NES, necesita utilizar el formato de archivo .nes (no .ZIP!) Y colocarlos en la ruta de directorio siguiente.

~ / BOOT / fceu / rom 

Todas las ROM de NES deben estar en esta carpeta para que el emulador los ejecute.

 

Uan vez creada la imagen de ls SD , insertela  y pruebe el circuito con un micro cable USB conectado al puerto micro USB del Raspberry Pi. Conecte un teclado USB al lado del Pi para la entrada.

El PiTFT debería arrancar en la ROM del juego de   Aggregator

Recuerde que tiene que configurar la rotación de la pantalla para que sea 270 así que comprueba el paso anterior si aún no lo has hecho!

Coloque la junta de elastómero D-Pad sobre el PCB y coloque la parte de plástico en la parte superior. Presione el D-Pad hacia arriba y hacia abajo para probar una conexión sólida. Añadir el resto de las juntas de elastómero y seleccionar un juego para jugar la prueba.

Ejecutar Mario o algo similar para probar la latencia. Puede ser un poco difícil de jugar con las gomas asi  pero se sentirá más natural con la parte superior  montad  así que una vez probado todo ya es momento de terminar de montar todo  y cerrar  la caja.

Vemos el aspecto final donde quizás destaque  la tarjeta SD insertada , pero  lo cierto es que es una consola portátil mucho más versatil que la Nintendo DS o incluso la Playstation Vita, no es especialmente más potente pero dado su espíritu open source seguro que encontraremos decenas de emuladores que hacer funcionar con ella.

Además, podemos acompañarla con un mini teclado inalámbrico para poder realizar todo tipo de tareas con ella en cualquier lugar, aunque la pantalla sea táctil

En el siguiente vídeo de Adafruit podemos ver resumidamente el proceso de montaje completo para hacernos una idea completa de  lo relativamente sencillo que es el proceso de su construcción:

 

 

Como muchos de los proyectos que vemos realizados con impresoras 3D PIGRRL es completamente opensource y tenemos las instrucciones de montaje a nuestra disposición.

 

Imágenes de Adafruit y usuarios de Thingiverse

Construir una consola retro con clon Raspberry Pi :posibles problemas de instalación


Si  ha seguido  los  sencillos  pasos  que en un post anterior   y  aqui  habra visto  como es posible  de una manera muy sencilla  y gratuita  cargar en una placa que cuente con el chip  H3 / Mali (por ejemplo todas las versiones de Orange Pi o Banana Pi )  una  imagen de Retropie con la mayoría de los núcleos de Libretro encima de una versión de Jessica Desktop de Armbian preinstalada ,incluyendo   ademas  OpenELEC.

Hablamos  por tanto de convertir nuestro clon de Raspberry pi en una consola gracias  a la distribución de juegos y medios basada en Armbian (Debian 8), es decir  Full Armbian 5.23 con versión de escritorio de Jessie con el núcleo 3.4.113 (backdoors fijados) que permite emular   las siguintes maquinas: Nintendo DS, Neo Geo Pocket, Neo Geo, Neo Geo, Neo Geo, Nintendo, Neo Geo, Neo Geo, Neo Geo Pocket Color, PC Engine (TurboGrafx), Playstation 1, Playstation Portable, Sega32x, SegaCD, SG-1000, Super Nintendo, Vectrex, ZxSpectrum, Amiga ,Atari 5200 ,Atari 8bit (modelos 400 800 XL XE) ,Coco / Tandy ,Colecovision ,Creativision ,Daphne (emulador Philips Cdi),Dosbox (versión GLES) y Dreamcast (fijo reicast-joyconfig),OpenMSX (con soporte .dsk) ,PPSSPP ,TI99 / 4A (Texas Instruments) entre otras.

Realmente los pasos para crear  la sd e instalar los juegos de la plataforma que nos interese  no suelen dar problemas , pero  como en casi todo en esta vida, a veces la suerte no esta de nuestro lado y  hay problemas  que nos pueden impedir  cumplir nuestro cometido.

Veamos algunos de los problemas que nos podemos enfrentar en la instalación y puesta en marcha del entrono de RetroPie  en nuestro clon de Raspeberry Pi

Caso  de que no arranque su distribución

En caso de que su placa no parezca arrancar, trate de reformatear su tarjeta SD con SDFormatter 4.0 por Trendy (con ajuste de tamaño )  pruebe con una fuente de alimentación diferente (real 2A) y  otra  sdcard (Original, class10 recomendado), y por último, pero no menos importante, asegúrese de estar conectado al televisor compatible con HDMI 720 (sin adaptadores DVI)

En el primer arranque se instalará automáticamente el sistema,cambiara el tamaño de la tarjeta SD y se reiniciara de nuevo asi que por favor tenga paciencia.

Configuración de  controladores

En el primer arranque de su sistema de archivos se ampliará automáticamente, a continuación, se dará la bienvenida con la siguiente pantalla-este menú configurará los controles de emulación y emuladores RetroArch:

pantalla de bienvenida

Mantenga presionado cualquier botón de su teclado o gamepad y el nombre aparecerá en la parte inferior y luego abrir en un menú de configuración:

Welcomecreengamepadname

Siga las instrucciones en pantalla para configurar su gamepad, si se queda sin botones, simplemente mantenga presionado un botón para omitir cada botón no utilizado.Cuando llegue a OK presione el botón que ha configurado como «A» .

Welcomecreengamepadconfigure

Si desea configurar más de un controlador, puede hacerlo desde el menú de inicio de emulationstation. Para obtener más detalles sobre las configuraciones de controlador manual, consulte esta página aquí .

Vea los siguientes diagramas para referencia:

 

Snes_controller
controlador SNES

Xbox360_controller

Controlador XBox 360

Ps3_controller
Controlador PS3

 Teclas de acceso rápido

Las teclas de acceso rápido le permiten presionar una combinación de botones para acceder a funciones como guardar, cargar y salir de los emuladores.

El siguiente gráfico muestra las combinaciones de teclas de acceso directo predeterminadas. De forma predeterminada, la tecla de acceso directo está seleccionada de modo que significa que mantiene pulsada la tecla select mientras pulsa otro botón para ejecutar un comando.

Tenga en cuenta que las teclas de acceso rápido sólo son específicas para los emuladores basados ​​en retroarch / libretro.

Teclas de acceso rápido Acción
Seleccionar + Inicio Salida
Seleccionar + hombro derecho Salvar
Seleccionar + hombro izquierdo Carga
Seleccionar + Derecha Aumento de ranura de estado de entrada
Seleccionar + Izquierda Disminución de la ranura del estado de entrada
Seleccione + X Menú RGUI
Seleccione + B Reiniciar

Uso de  EmulationStation

Cuando vea EmulationStation por primera vez puede preguntarse por qué no ve sistemas como el SNES o Game Boy- no se preocupe, ellos están instalados en el sistema, las ROM solo necesitan ser agregadas a sus respectivas carpetas de ROM antes de que se vuelvan visibles

Los emuladores ya están instalados , pero sólo aparecen en EmulationStation cuando se agregan roms.

Para agregar ROMs, simplemente coloque los archivos en la carpeta / home / pi / RetroPie / roms / $ CONSOLE, donde $ CONSOLE es el nombre de la consola de destino, por ejemplo, snes o arcade.
Puede iniciar Desktop desde EmulationStation y conectar una unidad USB con sus ROMs. Las carpetas de Roms también son partes de samba.

primer arranque

Gestión de la tarjeta SD

RetroPie se construye sobre Raspbian (un sistema operativo Linux para el Raspberry Pi) y como tal la partición en la tarjeta SD es EXT4 (un sistema de archivos linux) que no es visible en los sistemas Windows, por lo que la tarjeta se mostrará como un Tamaño más pequeño que de costumbre y usted no será capaz de ver todo en la tarjeta, pero todo está allí. Podrá acceder al sistema de archivos a través de la red por smb  o bien usando cualquier utilidad de sftp.

Transferencia de Roms

Debido a la naturaleza / complejidad de la Ley de Derechos de Propiedad Intelectual / Propiedad Intelectual, que difiere significativamente de País a País, los ROM no pueden ser provistos con RetroPie y deben ser proporcionados por el usuario. Teóricamente sólo debería  tener ROMs de juegos que posee o haya poseído en alguna ocasión .

Hay tres métodos principales de transferencia de roms  (USB,SFTP y SMB):

 1-USB

Asegúrese de que su USB esté formateado a FAT32 o NTFS

      • Primero cree una carpeta llamada retropie en su memoria USB
      • Enchúfelo en el pi y espere a que termine de parpadear
      • Sacar el USB y conectarlo a una computadora
      • Agregue las roms a sus respectivas carpetas (en la carpeta retropie/roms )
      • Vuelva a enchufarlo en la frambuesa pi
      • Espere a que termine de parpadear
      • Refresque emulationstation eligiendo reiniciar emulationstation desde el menú de inicio

Vea este video como referencia:

 

 2- SFTP

Es necesario habilitar SSH para que SFTP funcione.  A partir de RetroPie 4.2, para mantener la imagen predeterminada segura, SSH se desactiva de forma predeterminada, pero se puede volver a habilitar en raspi-config :

sudo raspi-config

Opciones de interfaz >> SSH >> Habilitar >> reiniciar tu pi

Necesitara  que ambos PC y placa estén conectados  por  cable Ethernet

.Hay muchos programas de SFTP por ahí, para las ventanas muchas personas utilizan WinSCP para mac se puede utilizar algo como Cyberduck

Winscp

En el caso de  la Orange Pi , Usuario: root y  contraseña predeterminada: orangepi

 3-Smb

En una red   Windows  simplemente busque la unidad de red  \RETRORANGEPI\roms en el explorador  de  su pc

También puede reemplazar retrorangepie con la dirección IP de su placa

rom2

En caso de MAC OS X, seleccione el menú «Ir» y «Conectar al servidor».Escriba smb://retroorangepi y pulse «Conectar».

Personalización vía shell

Se  pueden ejecutar comandos en nuestra distribución de Retropie  como en cualquier otra distribución basada en Linux

Debido a la configuración personalizada, no ejecute ‘sudo apt-get upgrade’ pues puede romper algunas cosas.

A continuación algunas comandos básicos ;

Reiniciar:sudo reboot

Apagar: sudo shutdown -h now

Cambio de directorio cd /path/to/directory

Lista de archivos en el directorio actual ls

Retropie Script de instalación: sudo /home/pi/RetroPie-Setup/retropie_setup.sh

Editar archivos con Nano: sudo nano /path/to/file.txt

Cambio de propietario a Pi: sudo chown pi:pi filetobechanged

Cambiar el propietario de la carpeta y todos los archivos de la carpeta a Pi: sudo chown -R pi:pi /folder/to/be/changed

Hacer script de shell ejecutable:sudo chmod +x yourshellscript.sh

Volver a  la interfaz: exit