8ZERO, Pico-8 en la Raspberry Pi Zero

La consola de fantasía se hace real, y portatil.

Diseñada para ser la portatil basada en Raspberry Pi Zero más sencilla de montar, y con componentes ampliamente disponibles.

519

Hay muchas consolas portátiles basadas en Raspberry Pi por internet, pero ninguna como 8ZERO. Todas presentan algún inconveniente (desde mi punto de vista). Algunas, son extremadamente difíciles de ensamblar, otras son extremadamente caras y algunas incluso son ambas cosas a la vez. Por si esto fuese poco algunos sistemas requieren de componentes realizados por la comunidad en pequeñas tiradas y muchas veces es difícil conseguirlos o bien el tiempo de espera es demencial.

Cuando comencé a pensar en 8ZERO tenía claro que tenía que ser sencilla de montar, basarse en componentes comerciales, y ser portátil, muy portátil. Entonces vi la que sería la pantalla, un pequeño display OLED de Waveshare con una resolución de 128×128.

¿128×128? Pero si esa es la resolución nativa de Pico-8. En efecto, lo es, lo cual me vino cómo anillo al dedo puesto que me encanta esta consola de fantasía, tanto crear juegos como jugar. El problema es que cuando estoy delante del ordenador prefiero otros juegos menos casuales, por lo que decidí hacer tangible esta consola de fantasía.

Componentes de 8ZERO

Como he dicho, quería que todos los componentes de la consola fueran fáciles de conseguir desde cualquier parte del mundo y, de hecho, creo que lo he conseguido. A día de hoy, el primer prototipo de 8ZERO consta de los siguientes componentes:

Necesitaremos además un switch deslizante SPDT, una tarjeta microSD y una batería Lipo. La batería os recomiendo una de entre 300 y 500 mAh, mas que nada por su tamaño. Las baterías de mayor capacidad se hacen un poco grandes para este proyecto.

Con esta lista de la compra el precio de fabricación de cada una de estas consolas ronda los 50€. No cuento la tarjeta SD que yo ya tenía por casa. ¿Bastante barato verdad?.

Software de 8ZERO

8ZERO está desarrollada sobre Raspbian Stretch Lite (2018-03-13). Sobre este sistema se ejecuta Xserver y la aplicación Pico-8 al arrancar la consola. Al salir de Pico-8 se iniciará la secuencia de apagado.

Para los controles se hace uso de la librería Adafruit Retrogame para mapear los botones conectados a los GPIO cómo pulsaciones de teclas. He escogido esto frente a Python con uinput por la rapidez con la que me permitía desarrollar el prototipo. No descarto cambiarlo en un futuro.

En cuanto a la gestión de batería, utilizo el script facilitado por Pimoroni que inicia un apagado cuando la carga de la batería es baja.

Además de todo esto, he instalado una serie de scripts que hacen que la Raspberry Pi se ponga en modo punto de acceso en caso de no haber ninguna red Wifi conocida disponible.

Limitaciones del prototipo

A día de hoy, el prototipo carece de algunas funciones interesantes. Son concesiones que he tenido que hacer si quería un desarrollo rápido y sencillo.

Por ejemplo, la carga de batería ha de realizarse fuera de la consola puesto que esta no integra un cargador. Ahora mismo utilizo un Micro Lipo de Adafruit para hacerlo.

Otro punto es la optimización a nivel de software. El inicio de la consola es bastante lento y la splashscreen (para lo que utilizo Plymouth) no inicia todo lo pronto que debería. Esto tiene fácil solución, unos ajustes aquí y allá y listo.

Por otra parte, la salida HDMI está deshabilitada y sólo tendremos imagen en la consola. Esto es así porque es necesario realizar una rotación de pantalla para que el dispositivo muestre la imagen correctamente. Si habilitásemos el HDMI la imagen estaría rotada 90º en sentido antihorario.

Por último, y esto es una limitación de Raspberry Pi Zero en sí, la consola no dispone de audio. Esto SI es un problema que no podré solucionar hasta la siguiente fase de prototipado.

¿Qué falta por hacer?

Resumiendo, para mejorar el prototipo actual tengo en mente lo siguiente:

  • Optimizar la secuencia de arranque.
  • Integrar un cargador de batería.
  • Crear una interfaz web para carga de juegos y configuración.
  • Diseñar una carcasa impresa en 3D más o menos cómoda.
  • Crear un script de instalación automatizada.

Además, si veo interés es probable que me ponga a diseñar un HAT que integre todo esto, además de sonido y sea Plug&Play. Pero, como digo, depende del interés que genere y del tiempo libre de que disponga en el trabajo.

Ahora me gustaría conocer vuestra opinión. ¿Qué os parece esta consola? ¿Os gustaría una guía paso a paso sobre cómo montar la vuestra? Si es así hacedmelo saber en los comentarios y no dejéis de compartir el post.
Comentarios

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More