Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
Hola chicos, hoy quiero compartir con ustedes este increíble juego de arcade que pueden hacer con un montón de LEDs Ws2812b y un microcontrolador / FPGA. Behold Stack Overflow: nuestra implementación de hardware de un juego de arcade clásico. Lo que comenzó como un proyecto escolar rápidamente se convirtió en una labor de amor a medida que comenzamos a dedicar cada vez más tiempo a desarrollar nuestro juego y aprender más de él (y descuidar nuestros estudios en el proceso xD). Al final, nuestro juego fue tan bien construido y bien recibido por nuestra escuela que fue confiscado (como material de demostración para el próximo grupo de estudiantes). Bueno, siempre podemos construir una segunda. ¡Empecemos!
Versión en línea del juego:
Paso 1: ¿Qué necesitas?
Materiales:
1. Un microcontrolador / microordenador / FPGA - El FPGA se utiliza para implementar la lógica de nuestro juego. Elija su placa, para nuestro proyecto estamos obligados a utilizar la placa Mojo FPGA. Para los no iniciados, es un tipo de placa que utiliza hardware para implementar sus funciones en lugar de códigos. Por lo tanto, diría que es un nivel bastante bajo y completamente diferente a si está usando Arduino o Pi. Si usas otros tableros, tienes que escribir tu propio código, pero este juego es bastante fácil de codificar y ¡oye! ¡Ahora también puedes aprender a codificar!
2. LED Ws2812b: aquí usamos los LED para construir la pantalla de nuestro juego. No puede ser un creador si no ha tocado Ws2812b antes de xD. Es un solo direccionable, lo que significa que puede cortar LED individuales y pegarlos en cualquier formación que desee. Y es RGB, lo que significa que puede generar cualquier color que desee. Además, FastLED, la biblioteca Arduino para controlar Ws2812b, está muy bien desarrollada. Recomendaría a la gente que use Arduino en lugar del FPGA si no tiene uno. Puede comprar los LED en Taobao / Amazon, pero nosotros compramos los nuestros en la torre Sim Lim en Singapur.
3. Madera - Para la carcasa externa usamos madera contrachapada de 1 cm de espesor y para la matriz de LED usamos madera contrachapada de 0,3 cm de espesor. Encontramos nuestro suministro de madera de desecho en el fabuloso laboratorio de nuestra escuela.
4. Acrílico difusor de luz - Para nuestra pantalla, probamos diferentes tipos de acrílico y encontramos este acrílico esmerilado llamado PL-422 que es realmente bueno para difundir la luz. Si no puede encontrar el modelo exacto, busque acrílicos esmerilados. Compramos el nuestro en Dama Plastics en Singapur.
5. Tablero de espuma: para separar cada píxel de luz individual, necesitábamos una estructura de cuadrícula y esta espuma es el material ideal para hacerlo. Compramos una tabla de espuma de 0,5 cm de grosor en la librería de nuestra escuela.
6. Botón rojo grande - Ok, no es necesario que tengamos un botón rojo tan grande, pero siempre es bueno tener un botón para que la gente lo golpee. xD Lo compramos en la torre Sim Lim en Singapur.
Instrumentos:
1. Pegamento para madera
2. Soldador
3. Soldar
4. Alambres. Es mejor si tiene cables blandos en comparación con los más rígidos. Y de un solo núcleo en comparación con varios núcleos.
5. Pelacables
6. Cortador de alambre
7. Taladrar con brocas de 1 mm
8. Sierra de desplazamiento
9. Sierra de cinta
Depuración:
1. Unidad de fuente de alimentación variable
2. Osciloscopio
Paso 2: creación rápida de prototipos
Para nuestro proyecto, empleamos la creación rápida de prototipos antes de construir nuestra matriz LED y programar nuestro juego. La razón para hacerlo es que no queremos construir la matriz LED solo para darnos cuenta de que nuestros códigos no funcionan o que nuestra lógica de juego es defectuosa de alguna manera.
En el lado del hardware, en la primera etapa probamos nuestra lógica para cambiar los patrones de luz en nuestra propia matriz de LED simple. Una vez que probamos que la lógica funciona bien, salimos a cortar tiras de 5 LED Ws2812b solo para probar la lógica de nuestro juego con diferentes filas. Una vez que funcione, procedemos a fabricar la matriz de LED a escala completa.
También probamos diferentes muestras de acrílicos con el LED antes de conformarnos con PL-422 como el mejor difusor de luz. Y para la estructura del separador también probamos diferentes alturas para que el LED se difunda completamente. Al final, nos dimos cuenta de que un cuadrado de 3 cm * 3 cm con 4 cm de altura era lo mejor para la difusión. Basándonos en este tamaño óptimo, también decidimos cuál es el tamaño de madera contrachapada necesaria para una matriz de LED de 5 x 11 dejando un espacio de 0,5 cm para la espuma entre los cuadrados.
En el lado del software, intentamos ser lo más modulares posible: primero probamos si los LED se pueden encender antes de proceder a agregar la función de cambio, y luego otros. Los resultados podrían ser catastróficos si no lo hace. Aprendimos esto de la manera difícil mientras intentamos codificar todo el juego en una gran parte antes de darnos cuenta de que no podíamos depurarlo. ¡Ay!
Paso 3: hacer la carcasa
Para nuestra carcasa, optamos por las sensaciones y el aspecto de las máquinas recreativas clásicas. Primero, cortamos un poco de madera contrachapada delgada para crear rápidamente un prototipo de la forma, ya que es más fácil y rápido cortar madera contrachapada delgada y probarla. Una vez que estuvimos satisfechos con nuestras dimensiones y forma, comenzamos a usar madera contrachapada más gruesa para construir la carcasa. Usamos una sierra de cinta para cortar la madera contrachapada más gruesa y una sierra de marquetería para cortar las más delgadas. Después de eso, usamos pegamento para madera para pegarlos.
Para la parte posterior de la madera contrachapada, queríamos acceder fácilmente a los componentes electrónicos en el interior, por lo que lo convertimos en una pieza que se puede bloquear en su lugar y que puede quitar fácilmente cuando lo desee.
Para colocar el botón, primero dibujamos un círculo del tamaño del diámetro del microinterruptor del botón (la parte inferior larga del botón). Luego perforamos un agujero cerca del borde y usamos la sierra de calar para cortar un círculo. Luego colocamos el botón y lo atornillamos.
También cortamos una fina pieza de madera contrachapada como base de nuestra matriz LED según los tamaños que calculamos antes.
Nota: Pido disculpas por la falta de un proceso paso a paso. No documentamos los pasos en su totalidad y cuando nos dimos cuenta de que necesitamos documentar los pasos, la carcasa ya estaba lista. El diagrama tampoco es las dimensiones finales.
Paso 4: hacer la matriz de LED
Usando la pieza delgada que cortamos anteriormente, primero marcamos la posición de cada LED dibujando un cuadrado basado en nuestra estructura de espuma y dibujando una cruz en el medio del cuadrado como el lugar donde debemos pegar el LED. Luego también perforamos 3 pequeños orificios a cada lado del LED para que pasen los cables y los soldamos a cada LED.
Conectamos en cadena cada fila de LED por sus pines de entrada y salida de datos y soldamos cada GND y VCC a un cable común. El Data In principal generará los patrones de luz para cada fila y lo conectamos al pinout del microcontrolador / FPGA. También puede soldar la última salida de datos de una fila a la entrada de datos principal de otra fila. La forma en que funciona el LED Ws2812b es que cada LED contiene un IC que tomará los datos requeridos del cable y pasará el resto por la cadena. Basamos nuestro LED en otros Instructables fantásticos (de hecho, ¡lo copiamos exactamente! XD)
Aquí también nos gustaría hacer hincapié en la importancia de utilizar alambres blandos. Si usa cables rígidos y rígidos para el pin de entrada de datos principal, lo que sucede es que cada vez que tira del cable, podría sacar el acolchado de cobre de su Ws2812b, lo que lo destruirá. En este proyecto, antes de cambiar a cables blandos, destruimos un total de 40 LED, que es 1/3 de los LED necesarios para nuestro proyecto.
Instructable:
Paso 5: escribir los códigos del juego y depurar el hardware
Mojo se ejecuta en Lucid HDL, que no es el idioma más popular que existe. No podemos encontrar ninguna biblioteca LED Ws2812b en Lucid, por lo que recurrimos a escribir nuestra propia biblioteca, lo cual es una experiencia muy interesante. Para hacer eso, primero analizamos la señal que se transmite usando la biblioteca FastLED de Arduino y escribimos códigos para replicar eso. Aquí hay un truco de depuración de hardware, el osciloscopio es muy, muy útil para analizar señales, ya sea depurando tu propia señal de la que no estás seguro o comprobando y copiando otras señales.
Después de escribir la biblioteca para el Ws2812b, procedemos a codificar el juego, usamos las funciones de cambio de bit para mover cada bloque a la izquierda y a la derecha y usamos Bitwise AND to AND los cuadrados de cada fila a la fila anterior. También puede pensar en implementar eso en Arduino, lo que no debería ser tan difícil. ¡Incluso codificamos pantallas de juegos para divertirnos!
Nuestro juego tenía 2 niveles, que es el juego de apilamiento visible (verde) y el juego de apilamiento invisible de segundo nivel (azul).
Incluso después de tener códigos de trabajo y una matriz de LED en funcionamiento, a veces todavía nos enfrentamos a problemas como luces parpadeantes o luces que se encienden cuando no deberían. El problema suele deberse a una conexión a tierra incorrecta, al nivel de la fuente de alimentación oa una interferencia. Aquí es donde necesitará otras herramientas de depuración de hardware, como una unidad de fuente de alimentación variable, para verificar si la fuente de alimentación de Mojo / Arduino es suficiente o demasiado alta. En mi experiencia, el Ws2812b tiene un rango bastante amplio de voltajes de trabajo de 2.8v a 5v. Aquí tengo un video que muestra las luces volviéndose locas después de que aumente la potencia.
Sin embargo, una verificación adicional reveló que teníamos alguna soldadura incorrecta, después de volver a soldarlos, nuestro problema se resolvió. También podría haber un problema con la interferencia o las conversaciones cruzadas, pero afortunadamente, nunca nos enfrentamos a ninguno de ellos.
Códigos Github:
Cambio de bit a bit de Arduino:
Arduino Bitwise AND:
Paso 6: Poner todo junto
Tienes la carcasa y la matriz de LED. Ahora es el momento de poner todo junto. Primero colocamos la espuma en el frente y la matriz de LED detrás y ajustamos la posición. Debido a que la espuma tiene una fricción muy alta, solo se montó por fricción mientras que la matriz de LED está pegada en caliente en su lugar. Después de eso, colocamos la pantalla frente a la cuadrícula. Luego conectamos el pin de cada fila al microcontrolador y comenzamos a jugar.:D
Una cosa que me gusta de este proyecto es su flexibilidad, siempre puedes reprogramar el microcontrolador para que sea parte de otro juego e intentar algo como hacer una animación o un juego de reacción. Espero que disfruten haciendo esto y aprendan algo para hacer esto. GgEz!
Recomendado:
Plataformas con niveles infinitos en GameGo con Makecode Arcade: 5 pasos (con imágenes)
Plataforma con niveles infinitos en GameGo con Makecode Arcade: GameGo es una consola portátil de juegos retro compatible con Microsoft Makecode desarrollada por TinkerGen STEM education. Se basa en el chip STM32F401RET6 ARM Cortex M4 y está hecho para educadores STEM o simplemente para personas a las que les gusta divertirse creando videojuegos retro
Battle City Remake en GameGo con Makecode Arcade: 4 pasos (con imágenes)
Battle City Remake en GameGo con Makecode Arcade: GameGo es una consola portátil de juegos retro compatible con Microsoft Makecode desarrollada por TinkerGen STEM education. Se basa en el chip STM32F401RET6 ARM Cortex M4 y está hecho para educadores STEM o simplemente para personas a las que les gusta divertirse creando videojuegos retro
Arcade vertical Bartop con pantalla LED PIXEL integrada: 11 pasos (con imágenes)
Arcade vertical bartop con pantalla LED PIXEL integrada: **** Actualizado con nuevo software en julio de 2019, detalles aquí ****** Una construcción arcade bartop con la característica única de que la marquesina de matriz LED cambia para adaptarse al juego seleccionado. El arte de los personajes en los lados del gabinete son incrustaciones cortadas con láser y no pegadas
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
Arduino LED Laser Arcade Game: 3 pasos (con imágenes)
Arduino LED Laser Arcade Game: en este instructivo, demostraré cómo hacer un juego de arcade láser usando LED y sensores de luz. El código está incluido y no necesita muchas partes para construirlo. No te diré cómo construyo el caso, ¡tendrás que hacerlo tú mismo! T