Tabla de contenido:

Pumpktris - la calabaza Tetris: 10 pasos (con imágenes)
Pumpktris - la calabaza Tetris: 10 pasos (con imágenes)

Video: Pumpktris - la calabaza Tetris: 10 pasos (con imágenes)

Video: Pumpktris - la calabaza Tetris: 10 pasos (con imágenes)
Video: Pumpktris 2024, Mes de julio
Anonim
Pumpktris - la calabaza Tetris
Pumpktris - la calabaza Tetris

¿Quién quiere caras sonrientes y velas cuando puedes tener una calabaza interactiva este Halloween? Juega tu juego favorito de apilamiento de bloques en una cuadrícula de 8x16 tallada en la cara de la calabaza, iluminada por LED y usando el vástago como controlador. Este es un proyecto moderadamente avanzado y requiere experiencia en soldadura y programación en el entorno Arduino. Trabajará con materia orgánica y todas sus peculiaridades inherentes, por lo que es posible que sea necesario adaptar las medidas para que se ajusten a la calabaza que está utilizando.

Paso 1: Materiales necesarios

Los materiales requeridos
Los materiales requeridos
Los materiales requeridos
Los materiales requeridos

Para construir su propio Pumpktris necesitará lo siguiente: Componentes

  • 128 LED ámbar de 5 mm (los usé de Mouser) Compre algunos adicionales para cubrir cualquier error o prueba. Obtuve 140. El ámbar se parece más a la llama que estaría dentro de una calabaza tradicional, pero puedes usar el color que quieras.
  • Microcontrolador arduino
  • Tubo termorretráctil de 1/16 "(11 pies o piezas de 256 1/2" de largo)
  • Joystick arcade con mango extraíble (este de SparkFun funcionó bien para mí)
  • 4 anclajes de nilón para paneles de yeso n. ° 6 Este no es del tipo con conmutadores, sino del tipo que parecen tornillos con roscas profundas
  • 4 tornillos de media pulgada de largo del mismo tamaño y tipo que vinieron con los anclajes para paneles de yeso. Los que vienen con las anclas serán demasiado largos.
  • Perno de 6 mm x 50 mm (o cualquier tamaño que coincida con el soporte del mango de la palanca de mando)
  • Tuerca de acoplamiento de 6 mm (o del tamaño necesario para que coincida con el perno anterior) Una tuerca de acoplamiento se parece a una tuerca normal, pero mide aproximadamente una pulgada de largo y se utiliza para unir dos pernos o piezas de varilla roscada.

Y por último, pero no menos importante, necesitarás 1 calabaza. Solo necesitas uno, pero te recomiendo dos para que tengas uno que puedas usar para practicar taladrar y cortar. Su matriz LED cubrirá un área de aproximadamente 4 "de ancho por 8" de alto, por lo que desea una calabaza con un área de ese tamaño lo más suave y plana posible para que su matriz no se enrolle demasiado. Podrías usar una calabaza de espuma, pero ¿dónde está la magia en eso? No puedo hablar de las técnicas de tallado necesarias en una calabaza de espuma.

  • Soldador
  • Soldar
  • Cortadores de alambre
  • Pelacables
  • Taladro eléctrico
  • Sierra
  • Cuchillo X-Acto
  • Broca de 13/64"
  • Broca de 1-1 / 8 "(utilicé una broca Forstner, pero una broca de pala también podría funcionar)
  • Tablero de núcleo de espuma de 1/4"

Paso 2: construcción de una matriz de LED

Construyendo una matriz LED
Construyendo una matriz LED
Construyendo una matriz LED
Construyendo una matriz LED
Construyendo una matriz LED
Construyendo una matriz LED

Cada matriz está hecha de 64 LED y 128 piezas de cable. Es más fácil cortar y pelar todos los cables de cada matriz con anticipación. Corte 112 en pedazos de 2.5 "y pele 1/4" de cada extremo. Corte las 16 piezas restantes en piezas de 12 "y pele ambos extremos. Cuanto más uniforme sea la longitud de sus cables, más fácil será construir e instalar.

Comenzará construyendo dieciséis cadenas de cables de ocho segmentos, cada una con 7 cables cortos y 1 cable largo. Gire cada extremo junto con la siguiente pieza y suelde. Para conectar los cables a los LED, necesitará una plantilla para sujetar los LED. Dibuje una cuadrícula de 8x8 con un espacio de media pulgada en una tabla de núcleo de espuma de 1/4 "de espesor, luego use un punzón para hacer un agujero un poco más pequeño en diámetro que el LED en cada intersección. Tendrá 64 agujeros cuando En la fila superior de orificios, inserte 8 LED. El núcleo de espuma se estirará para adaptarse a los LED y los sujetará firmemente. Alinee los LED de modo que la pata más larga, el cable del ánodo, mire hacia usted en cada uno. Verifique dos veces, porque si se equivoca en uno, la matriz no funcionará. Sujete cada cable de ánodo a aproximadamente 1/4 "de largo y estañe con soldadura para facilitar la conexión de los cables. Corte 8 piezas de tubería termorretráctil en segmentos de 1/2 ". Deslice una pieza de tubería sobre la primera conexión de cable, empújela hacia atrás para que no se vea afectada por el calor de la soldadura, luego suelde la conexión de cable al ánodo LED. Deslice el tubo hacia abajo sobre la conexión una vez que se haya enfriado. Continúe con el siguiente LED, repitiendo siete veces más el proceso de deslizar un trozo de tubo, soldar la conexión y luego bajar el tubo sobre la unión. Cuando tenga un conjunto de ocho LED, todos conectados entre sí, retírelos de la plantilla y repita de nuevo para siete filas más, asegurándose de hacer todas las conexiones al cable del ánodo de cada LED. Puede usar la fila de la plantilla que sea más fácil de alcanzar, ya que solo está trabajando con una a la vez. Después de soldar las ocho filas, es hora de unir las columnas y hacer una matriz. Inserte todas las cadenas de LED en la plantilla que hizo. Mantenga el cable largo en el mismo lado de cada cuerda. Corte y estañe el cable del cátodo de cada LED en la primera columna umn, tal como lo hizo para construir la cadena. Tome otra cadena de cables y repita el proceso de soldarla a los LED, solo que esta vez la está conectando a 90 grados al primer conjunto de cables que hizo. Mantenga el cable largo en el mismo lado de la matriz. A medida que completa cada columna, retírela de la plantilla de núcleo de espuma y dóblela para permitir el acceso a la siguiente columna. Cuando haya terminado, tendrá 64 LED unidos en 8 filas y 8 columnas. Desafortunadamente, debe repetir el proceso nuevamente para la segunda matriz. Si necesita un descanso, salte a los pasos 3, 4 y 5 para trabajar en el código, luego vuelva a esto.

Paso 3: controlar los LED

Controlando los LED
Controlando los LED
Controlando los LED
Controlando los LED
Controlando los LED
Controlando los LED
Controlando los LED
Controlando los LED

Las matrices de LED que ha creado estarán controladas por dos Mochilas de matriz de LED Mini 8x8 de Adafruit. Cada controlador le permite manejar 64 LED con solo dos cables del Arduino, y puede encadenar varios controladores juntos en esos mismos dos cables. Siga las instrucciones que vienen con la mochila LED Matrix para soldar en el encabezado de alimentación / datos / reloj de 4 pines. Luego, en lugar de soldar en la matriz de LED que viene con él, suelde dos filas de conectores hembra a la mochila. Conecte la mini matriz de LED incluida en los encabezados. Enchufe la matriz en una placa de pruebas y conéctela de la siguiente manera:

  • Conecte el pin CLK de la mochila al pin analógico 5 del Arduino.
  • Conecte el pin DAT al pin analógico 4 en el Arduino.
  • Conecte GND al pin de tierra en el Arduino.
  • Conecte VCC + a una potencia de 5v.

Descargue la biblioteca Adafruit LED Backpack y las bibliotecas Adafruit GFX e instálelas en su computadora copiando cada una en la carpeta "bibliotecas" de la carpeta de bocetos Arduino de su computadora. Sube el archivo "matrix8x8" a tu Arduino y verifica que la mochila LED esté funcionando. Es posible que los pines de la matriz de LED no hagan buen contacto en los encabezados hembra, por lo que es posible que deba moverlos o quitarlos parcialmente para hacer contacto y permitir que todas las filas y columnas se iluminen. Repite el proceso con la segunda mochila LED, pero esta vez necesitarás establecer una nueva dirección soldando un puente en las almohadillas A0 de la mochila. Ejecute el código "matrix8x8" de nuevo, pero cambie la línea "matrix.begin (0x70)" a "matrix.begin (0x71)" para que el código se dirija a la nueva mochila LED.

Paso 4: Conexión del joystick

Conexión del joystick
Conexión del joystick
Conexión del joystick
Conexión del joystick

Su joystick debe tener cuatro interruptores con dos terminales cada uno. Cuando mueves tu joystick hacia la derecha, activa el interruptor de la izquierda, cuando lo mueves hacia abajo, activa el interruptor de la parte superior, y así sucesivamente. En un terminal de cada interruptor, suelde un cable de 3 ". Tuerza el otro extremo de los cuatro cables juntos y suéldelos a un cable de 12". Este es el terreno común para los cuatro conmutadores. Suelde un cable de 12 "al terminal restante de cada interruptor, luego conéctelos de la siguiente manera:

  • Conecte el interruptor inferior (activado cuando empuja hacia arriba) al pin analógico 0 en el Arduino.
  • Conecte el interruptor izquierdo (que se activa cuando presiona a la derecha) al pin analógico 1 en el Arduino.
  • Conecte el interruptor superior (activado cuando presiona hacia abajo) al pin analógico 2 en el Arduino.
  • Conecte el interruptor derecho (activado cuando presiona hacia la izquierda) al pin analógico 3 en el Arduino.
  • Conecte el cable de tierra común al pin de tierra en el Arduino.

Paso 5: Programación del juego

Programando el juego
Programando el juego

Descargue el Pumpktris.ino.zip adjunto, descomprímalo y abra el archivo en el entorno de desarrollo de Arduino. Compílelo y cárguelo en su Arduino. Ahora debería poder jugar en la mini matriz de LED que configuró en el paso anterior. Intenté comentar el código tanto como me fue posible, pero aquí hay una descripción general de los procesos principales: Descripción de las formas Hay siete tetrominos, cada uno con 4 píxeles y cada uno con cuatro rotaciones posibles. Almacenamos todo esto en una matriz multidimensional: la primera dimensión que consta de las siete formas, la segunda dimensión que contiene las cuatro rotaciones para cada forma, la tercera que contiene cuatro descripciones de píxeles, cada una de las cuales consta de una coordenada X e Y. Por ejemplo, esto describe la forma de "T": / * T * / {/ * ángulo 0 * / {{0, 1}, {1, 1}, {2, 1}, {1, 2}}, / * ángulo 90 * / {{1, 0}, {1, 1}, {2, 1}, {1, 2}}, / * ángulo 180 * / {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * ángulo 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Seguimiento de la pieza activa Para realizar un seguimiento de la pieza actualmente en juego, el programa mantiene una variable activePiece. Este es el índice de la forma activa en el nivel más alto de la matriz. También mantiene una variable de rotación que contiene el índice de la rotación actual. Una variable xOffset rastrea qué tan lejos a la izquierda o derecha (0-7) está cada pieza, y yOffset rastrea qué tan abajo (0-15) se ha caído el tablero. Para dibujar la pieza activa, el programa agrega los valores de compensación X e Y a las coordenadas X e Y de cada píxel extraído de la rotación actual de la pieza seleccionada. piezas, con cada byte representando una fila. Por ejemplo, la siguiente matriz representaría una forma de L ubicada en el centro de las dos filas inferiores (como lo indican los 1 en los dos últimos bytes): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Detección de colisión Cuando se intenta mover la pieza activa, el programa primero verifica la nueva posición con la matriz de piezas fijas. Si no hay colisiones, se permite el movimiento y se vuelve a dibujar la matriz. Si se detecta una colisión al intentar moverse hacia la izquierda, derecha o girar, la acción está prohibida. Si se detecta una colisión al intentar soltar una pieza, la pieza queda fija en su posición y se agrega a la matriz de píxeles fijos. Soltar piezas automáticamente El ritmo del juego es controlado por las variables gravityTrigger y stepCounter. Cada ciclo del programa incrementa stepCounter, y cada vez que stepCounter alcanza el conteo almacenado en gravityTrigger, baja la pieza activa un nivel. A medida que avanza el juego, gravityTrigger disminuye de modo que la pieza activa cae cada vez con más frecuencia hasta que finalmente cae en cada ciclo del programa. Cada vez que una pieza activa se fija a la cuadrícula, el programa comprueba si hay bytes / filas completos (B11111111). Si encuentra alguno, los parpadea una y otra vez, luego los quita y deja caer las filas de arriba para llenar el espacio. valor pasado en las líneas "matrixTop.setRotation (1);" y / o "matrixBottom.setRotation (1);" en el bucle "setup ()". Si las piezas comienzan en la matriz incorrecta, cambie la ubicación física de cada matriz o invierta las direcciones declaradas en "matrixTop.begin (0x70);" y "matrixBottom.begin (0x71);" líneas del bucle "setup ()". Si algunas filas o columnas no se iluminan, mueva la mini matriz LED en los encabezados hembra. Puede que no estén haciendo un buen contacto.

Paso 6: Conexión de su matriz de LED

Conexión de su matriz de LED
Conexión de su matriz de LED
Conexión de su matriz de LED
Conexión de su matriz de LED
Conexión de su matriz de LED
Conexión de su matriz de LED

Cuando se haya verificado que todo el código y los controles funcionan con las matrices mini LED, es hora de conectar las matrices LED grandes que soldaste tú mismo.

Puede conectar cada cable a los encabezados de la mochila de la matriz de forma individual, pero probablemente tendrá que conectar y desconectar mucho, por lo que podría convertirse en una verdadera molestia. En su lugar, desea soldar cada cable en una tira de encabezado macho y conectarlo a la mochila de la matriz. Monté las tiras de encabezado en una pieza de placa de creación de prototipos para poder conectar y desconectar los 16 pines juntos. Las filas 1-4 se conectan a los pines 1-4 en la mochila de la matriz (la numeración de pines comienza en la parte superior izquierda mientras mira hacia abajo en la mochila con los pines de alimentación / tierra / datos / reloj de 4 pines en la parte superior). Las columnas 1-4 se conectan a los pines 5-8. La numeración de los pines se envuelve de modo que el pin 9 esté en la parte inferior derecha. Las filas 5-8 se conectan a los pines 12-9 y las columnas 5-8 se conectan a los pines 16-13. Consulte el diagrama para obtener más claridad. Conecte cada matriz en una mochila y ejecute el mismo programa "matrix8x8" que hizo para las matrices mini LED en el paso 4. Si cada una funciona, puede cargar el programa del juego. Si no funciona, verifique que las filas y columnas de la matriz LED grande estén conectadas a los pines correctos de la mochila. Montar la matriz de LED en la plantilla de núcleo de espuma que hizo para el ensamblaje puede facilitar la prueba de todo el sistema.

Paso 7: tallar la calabaza

Tallando la Calabaza
Tallando la Calabaza
Tallando la Calabaza
Tallando la Calabaza
Tallando la Calabaza
Tallando la Calabaza

No talle la calabaza hasta que todos sus componentes electrónicos estén funcionando. Una calabaza tallada tiene una vida útil limitada, y si la tallas primero y luego pasas 2 días en la electrónica, son dos días de diversión jugando que has perdido.

Encuentre el lado más plano de la calabaza para que su panel LED no se enrolle demasiado, luego corte una abertura en el lado opuesto. Sé generoso; vas a necesitar espacio para poner tus manos allí para trabajar. No va a cortar la parte superior como en una calabaza tradicional porque debe dejarse intacta para el joystick. La sustancia pegajosa de calabaza y los dispositivos electrónicos no son los mejores amigos, así que limpia bien el interior. Para obtener el Pumpktris más atractivo, desea que su cuadrícula de LED esté recta y bien alineada con la calabaza. Se adjunta un PDF con un espacio de 8x16, con una separación de media pulgada. Imprima esto (o haga el suyo con su propio espacio), corte los bordes y péguelo con cinta adhesiva en la parte delantera de la calabaza. Asegúrese de que esté recto hacia arriba y hacia abajo. Con un clavo, un palillo de dientes u otra herramienta similar, haga un orificio piloto en el centro de cada LED marcado en el papel. No se recomienda perforar directamente a través del papel porque es probable que se mueva o se rompa. Una vez que se hayan perforado todos los orificios piloto, retire la plantilla de papel y use una broca de 13/64 "en su taladro eléctrico para perforar cada orificio. ¡No alinee el taladro perpendicular a la cara de la calabaza! Si hace esto, el La curvatura de la calabaza puede hacer que los agujeros que están a media pulgada de distancia en el exterior se junten en el interior y será difícil insertar los LED. En su lugar, intente mantener todos los agujeros paralelos. Cuando todos los agujeros estén perforados, use su cuchillo X-Acto para cortar un "píxel" cuadrado alrededor de cada agujero. Incline el cuchillo hacia el centro de cada agujero y deje aproximadamente 1/8 "entre píxeles. Sugiero comprar una calabaza de práctica y usarla para perfeccionar su técnica de perforación y tallado de píxeles. Domínelo allí antes de arriesgarse a arruinar la calabaza perfecta que encontró para el producto terminado.

Paso 8: Montaje de la potencia en el joystick

Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick
Montaje de la potencia en el joystick

Ahora adaptarás la potencia para usarla como joystick para controlar el juego.

Corta el tallo lo más cerca posible de la base. Si el corte no es liso y limpio, use un bloque de lijado para aplanarlo. Taladre un agujero de 1-1 / 8 "directamente a través de la base del tallo y dentro de la calabaza. Desatornille la bola del joystick y alinee el eje con el centro del agujero desde el interior de la calabaza. Asegúrese de que el frente de el joystick está en escuadra con la cara frontal de la calabaza; cuando juegas, debes empujar hacia la izquierda y hacia la derecha para mover las piezas, no en ángulo. Cuando esté centrado y en escuadra, usa un clavo o un palillo para hacer agujeros en el interior de la calabaza sobre los orificios de montaje en la base de la palanca de mando. Quita la palanca de mando. Con los alicates, corta las puntas de expansión de los anclajes para paneles de yeso para que sean más cortos que el grosor de la piel de la calabaza. Atornilla estos anclajes de panel de yeso acortados y de punta en los orificios piloto que hiciste. Los detalles de la siguiente parte dependerán del joystick que compraste. El que usé de SparkFun tenía un accesorio de 6 mm para el mango de bola que será reemplazado por el vástago. Si tu joystick es diferente, utilice cualquier tamaño de tuercas y tornillos que coincidan. en el centro del vástago y taladre un orificio de 13/64 "(del mismo tamaño que usó para los orificios del LED, por coincidencia) aproximadamente una pulgada directamente en el vástago. Este sería un buen paso para probar en su calabaza de práctica, para asegurarse de que el perno se atornille firmemente en el orificio. Corta la cabeza de un perno de 6 mm x 50 mm con una sierra para metales. Coloque epoxi o pegamento para madera en las roscas cerca del extremo cortado del tornillo y atorníllelo en el vástago. Quieres una pulgada más o menos en el tallo y una pulgada fuera. Atornille la tuerca de acoplamiento de 6 mm en el eje de la palanca de mando, pero no monte la palanca de mando en la calabaza todavía.

Paso 9: Colocación de LED y joystick

Colocación de LED y joystick
Colocación de LED y joystick

Desde el interior de la calabaza, inserte los LED fila por fila en sus agujeros hasta que sus bases estén al ras con la superficie interior de la calabaza. Cuando todos estén en su lugar, use una brocheta de bambú para empujarlos más hacia el frente. Dejé su borde frontal asentado alrededor de 1/4 "a 3/8" debajo de la superficie exterior. Si están demasiado por debajo de la superficie, la luz se derramará en la pulpa de la calabaza y cada píxel será menos distinto.

Agregue una capa de envoltura de plástico a la parte superior del joystick, con el eje sobresaliendo. Esto evitará que se filtre al menos algo de humedad. Coloque la palanca de mando con tornillos de 1/2 en los anclajes para paneles de yeso. Los tornillos que vienen con los anclajes serán demasiado largos y atravesarían la calabaza.

Paso 10: jugar el juego

Jugando el juego
Jugando el juego

Coloque un recipiente o recipiente de plástico para almacenar alimentos en la parte inferior de la calabaza para evitar que cualquier dispositivo electrónico que cuelgue toque la parte inferior. Conecte el joystick en su Arduino, las mochilas LED en el Arduino y las matrices LED en las mochilas. Conecte una fuente de alimentación a su Arduino. ¡Ahora juegue un poco de Pumpktris! Ideas para una mayor exploración En lugar de montar el joystick en la parte superior de la calabaza con los LED, puede usar una calabaza remota, ya sea de forma inalámbrica o con un cable decorado para que parezca una enredadera. En lugar de un juego, puede mostrar mensajes de desplazamiento en su jack-o-lantern. Es posible que desee montar las matrices de lado (16 de ancho por 8 de alto), o incluso usar solo una matriz. La descomposición inevitable Su calabaza eventualmente comenzará a pudrirse y a brotar moho y hongos. Esto podría ser peligroso para su salud y podría provocar fallas en sus dispositivos electrónicos. Es mejor sacar todos sus dispositivos electrónicos una vez que vea algún crecimiento en la calabaza, para que pueda reutilizarlos más tarde sin requerir una limpieza Haz-Mat.

Concurso de decoraciones de Halloween
Concurso de decoraciones de Halloween
Concurso de decoraciones de Halloween
Concurso de decoraciones de Halloween

Segundo premio en el Concurso de Decoraciones de Halloween

Recomendado: