La creación de videojuegos mediante MakeCode Arcade es una excelente herramienta para que los niños tengan contacto con la programación permitiendo obtener unos resultados muy vistosos.
Este tipo de prácticas suele ser muy interesante para ellos ya que les resulta relativamente fácil crear videojuegos de su temática favorita con un resultado gráfico prácticamente idéntico al de las primeras consolas portátiles.
En el episodio 21 del podcast ya hablamos de videojuegos clásicos en educación y en este artículo vamos a ver cómo poder llevarlos al máximo esplendor en una máquina recreativa o arcade.
Suelo enseñar a los niños en funcionamiento una vieja «maquinita» LCD tipo Game&Watch y una GameBoy original para que comprueben que sus propios resultados son muy superiores a las opciones que existían hace décadas y eso les refuerza la idea de que son capaces de hacer cosas realmente importantes y complejas.
Existe la posibilidad de trasladar los juegos creados con MakeCode Arcade a una de las consola portátiles que tienen esa posibilidad y en mi caso suelo utilizar Meowbit de KittenBot.
Sin embargo algo realmente interesante como proyecto maker y poderoso para conseguir motivar a los niños a compartir sus creaciones es la construcción de una máquina recreativa capaz de permitir jugar a los videojuegos creados en MakeCode Arcade.
Materiales necesarios para crear una máquina recreativa
El elemento principal sobre el que vamos a centrarnos son los controles arcade mediante el uso de palancas o joysticks y botones arcade iguales a los utilizados en las antiguas máquinas recreativas.
Podemos optar por dos tipos de proyecto, bien creando una máquina recreativa completa o bien creando únicamente el mando de juego con una salida HDMI para conectar a una pantalla.
Otra posibilidad «híbrida» es crear una máquina recreativa con mandos de juego adicionales externos a la misma. Piensa que vamos a poder manejar juegos creados con MakeCode Arcade de hasta 4 jugadores.
Los elementos comunes que necesitaremos sea cual sea nuestra elección de proyecto final son:
- Raspberry Pi zero
- Palancas y botones arcade con sus respectivos switches (importante que tengan switches «estándar» tanto las palancas como los pulsadores
- Tarjeta microSD
Esto sería lo básico, ya que el resto de elementos dependerán de la opción que elijas. Para hacer una recreativa completa vas a necesitar un monitor, también aunque hagas un mando de juego independiente.
Los materiales para crear el mando o la recreativa completa van a ser de tu elección dependiendo de lo que sea más cómodo en tu casa o para el grupo de niños con el que quieras hacer el proyecto: madera, cartón, materiales reciclados, etc.
Dependiendo del espacio disponible puedes crear un mando de juego, una máquina de sobremesa o «bartop», o una máquina completa. Incluso puedes intentar que sea para colgar en la pared para que ocupe el mínimo espacio.
Si no te atreves con la fabricación del mando o la máquina puedes encontrar kits DIY en tiendas online.
Conexión de los mandos y botones
Vamos a ver los pasos para conectar los mandos a la Raspberry Pi zero, pero os dejo enlazado el proyecto de la propia página de MakeCode Arcade por si os puede ayudar. Realmente tenéis explicado todo lo que hay que ir haciendo en aquel tutorial, aunque aquí lo condensado en una única página para que os pueda ser más sencillo.
La Raspberry Pi zero cuenta con un conjunto de pines de entrada/salida que podremos utilizar para conectar los switches de los mandos y botones arcade. Si compras la placa con los espadines sin soldar puedes optar por soldarlos por una cara o por otra según la carcasa que tengas o la ordenación de cables que quieras tener.
Recuerda que tienes disponible el curso de soldadura de componentes y que soldar espadines es lo más sencillo, así que lánzate sin miedo.
Una vez tengas disponibles los espadines se trata de ir conectando los switches para que podamos cerrar el contacto de un espadín de masa con una entrada para cada switch.
Una buena idea es utilizar cables con terminales Dupont macho-hembra de manera que podamos pinchar el macho a los conectores que suelen venir con estos kits y la hembra al espadín correspondiente.
Lo único que tienes que tener en cuenta es que de cada switch un pin debe conectarse a masa y otro a una entrada disponible. El problema es que no tienes tantas entradas de masa disponibles por lo que puedes unir los pines que van a ser el común de los interruptores para conectar a dos o tres espadines del GPIO dedicados a masa en la Raspberry Pi zero.
Recuerda que en el caso de que el switch tenga tres terminales debes utilizar los dos que se correspondan al interruptor en posición normalmente abierta (NO).
La imagen es solo un ejemplo, pero tienes que conectar todos los switches de todos los mandos (4 por mando) y de cada botón.
En principio puedes utilizar como entrada cualquier espadín del GPIO que no sea ni masa/común/tierra ni alimentación (3.3v o 5v), aunque más adelante veremos que deben estar en una posición concreta y cómo hacer el test.
Montando la imagen o sistema operativo con el menú para MakeCode Arcade en la Raspberry Pi zero
Para instalar en la tarjeta microSD el menú para los juegos hechos con MakeCode Arcade debes descargar los archivos que puedes encontrar en la página de Adafruit siguiendo el tutorial de MakeCode Arcade.
Si tienes acceso a nuestra plataforma de cursos veras a continuación enlaces de descarga tanto para la instalación en Raspberry Pi zero como en Raspberry Pi 3A+ (no funcionará en el modelo 3B ni 4):
- Imagen para Raspberry Pi Zero
- Imagen para Raspberry Pi 3A+
Lo siguiente que deberás hacer es copiar los archivos que contiene el archivo ZIP descargado a la tarjeta microSD formateada en FAT32.
Introduce la tarjeta microSD en la Raspberry Pi zero, conecta un monitor o pantalla y una vez haya arrancado lo primero que vas a ver es una aplicación para hacer un test de las conexiones de palancas y pulsadores.
Comprobando la conexión de los mandos
Nada más arrancar el sistema vamos a tener acceso a una aplicación para testear las conexiones que tiene este aspecto:
Si pulsas en el mando de dirección o en los pulsadores A y B verás que se ilumina la posición correcta para el jugador 1 (P1).
Si te fijas se está mostrando el pinout del GPIO de la Raspberry Pi zero de manera que si pulsas cualquier de tus controles reales en tu máquina recreativa o mando arcade se iluminará la posición en la que lo tienes conectado actualmente.
Si por ejemplo estás pulsando físicamente el pulsador A del jugador 1 puedes identificar dónde está conectado y pasarlo al pin 37.
Aquí tienes la relación de switches y posición del GPIO que debería quedar al final:
- Jugador 1: Subir (31), bajar(27), izquierda (33), derecha(29), A(37) y B(35).
- Jugador 2: Subir (15), bajar(11), izquierda (19), derecha(13), A(23) y B(21).
- Menú(3), salir(5) y reset(7).
Cuando tengas todo correctamente conectado pulsa la secuencia ABABAB para salir al menú principal.
También puedes especificar una configuración diferente modificando el archivo arcade.cfg dentro de la microSD.
Cargando juegos nuevos a la máquina arcade
En el menú verás una serie de juegos precargados pero la idea es que puedas cargar nuevos juegos creados por ti o por tus alumnos o hijos.
Con la Raspberry Pi zero no hay tarea más fácil ya que lo único que tienes que hacer es utilizar un portátil y conectar por USB la Raspberry. En el PC aparecerá como una unidad externa y te permitirá arrastrar los juegos a la carpeta «Projects».
Es buena idea por lo tanto dejar una extensión de USB en la carcasa de la máquina recreativa para conectar un portátil de manera fácil.
Cuando descargues el juego desde el entorno de programación de MakeCode Arcade debes hacerlo seleccionando el hardware Pi0 para luego poder arrastrar el archivo *.uf2 a la carpeta «Projects».
El juego se pondrá en marcha automáticamente en la máquina y si vuelves al menú podrás comprobar que ya se encuentra disponible para ser seleccionado.
Recreativa completa o de sobremesa
Aquí puedes ver una captura del taller virtual que grabé para la Maker Faire Galicia en la que puedes ver una réplica de una recreativa Donkey Kong hecha a escala para que los niños puedan jugar cómodos.
Otra opción es hacer una máquina de sobremesa algo más ligera como la que fabricó nuestra alumna Sara junto a su padre Manuel siguiendo este mismo tutorial. Con su permiso os comparto un vídeo en que se muestra la máquina al completo y en la parte final Sara explica cómo cargar juegos creados en MakeCode Arcade a la máquina recreativa.
Recuerda que hay una alternativa a este sistema utilizando Retropie.
Anímate a crear una máquina recreativa o un mando arcade con el que los niños puedan disfrutar y compartir sus propios videojuegos creados con MakeCode Arcade, no te arrepentirás.
Te recuerdo que tienes a tu disposición la plataforma de cursos de Juegos Robótica donde aprenderás desde cero y sin conocimientos previos a utilizar MakeCode Arcade.
Dani S.
Cmborjas2525 says
Muy muy interesante ese proyecto de arcade, voy a tratar de hacerlo
Dani says
¡Claro que sí! No dejes de compartir tu creación si lo llevas a cabo.
juandgomezm says
Hola Dani, gracias a tu post, me he animado a construir una recreativa para makecode arcade, para que los alumnos de mi escuela de robótica, carguen los juegos que estamos creando en la recreativa.
Ya tengo configurado y funcionando el sistema operativo en una Raspberry Pi 3A+.
En cuanto a los mandos y botones tenía el siguiente kit: https://a.aliexpress.com/_uzetPX, con un codificador USB sin retardo.
¿Sabes si el sistema operativo contempla este tipo de comunicación usb?
Cuando lo tenga acabado intentaré compartir el proyecto
Dani says
Sí, claro que podrás utilizar ese tipo de adaptador USB. El único problema que podrías tener es en la asignación de teclas, pero todo es configurable, así que no deberías tener ningún problema.
Cuando lo tengas montado si grabas algún vídeo o haces alguna foto no dejes de enlazar.
¡Saludos!
juandgomezm says
Tambien he encontrado este sistema
McAirpos – Abrir proyectos MakeCode Arcade para descargar archivos de juegos ejecutables para RetroPie, Recalbox y Raspberry Pi OS:
https://vegz78.github.io/McAirpos/index2
Dani says
Gracias por el enlace. A ver si actualizamos el artículo con esa opción que parece muy interesante.
Jorge Onsulve Orellana says
Hola Juan,
Yo también tengo una academia de robótica. ¿Podrías compartir más información? te paso mi mail. jonsulve@uoc.edu