Page cover

Pico Invaders

Hoy os proponemos un proyecto rápido y muy divertido donde, además de usar nuestra querida impresora 3D, usaremos la Raspberry Pi Pico para fabricar nuestro propio juego arcade retro: Pico Invaders. Con unos pocos componentes, algo de MicroPython y piezas impresas en 3D tendréis un juego completamente funcional en las manos.

¿Qué es MicroPython?

MicroPython es una implementación de Python 3 escrita en C, diseñada específicamente para microcontroladores y dispositivos embebidos. Nos permite programar hardware como la Raspberry Pi Pico usando una sintaxis muy cercana a Python estándar, sin necesidad de compilar el código.

MicroPython no es compatible con todas las librerías estándar de Python 3. Algunas funciones avanzadas no están disponibles, pero para proyectos de hardware como este es más que suficiente.

Componentes necesarios

Para este proyecto necesitaremos los siguientes componentes:

Impresión 3D

Lo primero es descargar el modelo desde Printables, diseñado por thatdecade. Las piezas encajan por fricción, sin necesidad de tornillos ni pegamento.

Modelo Pico Arcade en Printables
Modelo Pico Arcade disponible en Printables

Si queréis personalizar el texto de la parte superior de la carcasa, podéis hacerlo directamente desde Bambu Studio usando la herramienta de texto sobre el modelo. En pocos minutos tendréis vuestra versión personalizada lista para imprimir.

Personalización del texto en Bambu Studio
Personalización del texto en Bambu Studio

Configuración de MicroPython en la Pi Pico

Antes de ensamblar todo, vamos a preparar el entorno de programación. El proceso es sencillo y tarda menos de 5 minutos.

1

Descargar el firmware

Descargad el firmware UF2 correspondiente a vuestra placa:

2

Flashear el firmware

Mantened pulsado el botón BOOTSEL de la Pi Pico mientras la conectáis al ordenador por USB. Soltad el botón una vez conectada.

Botón BOOTSEL en la Raspberry Pi Pico
Mantened BOOTSEL pulsado al conectar el USB

La Pico aparecerá como una unidad de almacenamiento llamada RPI-RP2. Arrastrad el archivo UF2 descargado a esa unidad. La Pico se reiniciará automáticamente con MicroPython instalado.

Unidad RPI-RP2 en el explorador de archivos
Copiar el firmware UF2 a la unidad RPI-RP2
Selección del firmware UF2 correcto
Seleccionad el firmware según vuestro modelo de Pico
3

Instalar Thonny IDE

Descargad e instalad Thonny, el IDE más sencillo para trabajar con MicroPython. Es multiplataforma (Windows, Mac, Linux) y detecta la Pi Pico automáticamente.

Una vez abierto, id a Tools → Options → Interpreter y seleccionad MicroPython (Raspberry Pi Pico).

Configuración del intérprete en Thonny
Seleccionad MicroPython (Raspberry Pi Pico) como intérprete
Thonny conectado a la Pi Pico
Thonny listo para programar la Pi Pico

Ensamblado

Con el firmware instalado y el entorno listo, toca ensamblar el hardware.

Las piezas impresas encajan por presión, sin necesidad de pegamento. El orden recomendado es:

  1. Soldad los cables a los pulsadores antes de montarlos en la carcasa (una vez encajados no salen sin forzar)

  2. Insertad los pulsadores en sus alojamientos hasta que encajen

  3. Conectad la pantalla OLED a la Pi Pico (I2C: SDA → GP0, SCL → GP1)

  4. Conectad el buzzer (GP15 o el pin que indique el código)

  5. Introducid la Pi Pico en su alojamiento con los cables recogidos hacia el fondo de la carcasa

Programación

Antes de cargar el juego, comprobad que todo está correcto con este script de prueba. Si el LED integrado de la Pi Pico parpadea, el entorno funciona perfectamente.

Test blink en Thonny
El LED integrado parpadea si el entorno es correcto
Código blink ejecutándose en Thonny
Ejecución del test en Thonny

Librería SSD1306

Para que la pantalla OLED funcione necesitáis instalar la librería ssd1306. Descargadla y copiadla a la Pi Pico usando Thonny (guardad el archivo directamente en la placa):

Unexpected error with integration github-files: Integration is not authenticated with GitHub
Librería ssd1306 en Thonny
Copiad ssd1306.py a la Pi Pico desde Thonny

Código Pico Invaders

Con la librería instalada, ya podéis cargar el código del juego. Descargad PicoInvadersWithButtons.py del repositorio de printnplay y copiadlo a la Pi Pico con Thonny. Guardadlo como main.py para que se ejecute automáticamente al encender la Pico.

Unexpected error with integration github-files: Integration is not authenticated with GitHub
Pico Invaders en funcionamiento
Pico Invaders en marcha

Última actualización