Tabla de contenido:

Reloj Space Invaders (¡con poco presupuesto!): 6 pasos (con imágenes)
Reloj Space Invaders (¡con poco presupuesto!): 6 pasos (con imágenes)

Video: Reloj Space Invaders (¡con poco presupuesto!): 6 pasos (con imágenes)

Video: Reloj Space Invaders (¡con poco presupuesto!): 6 pasos (con imágenes)
Video: mi sobrino siempre a querido una silla gamer #setup #humor 2024, Mes de julio
Anonim
Image
Image
Reúna las piezas
Reúna las piezas

Recientemente vi una construcción genial de GeckoDiode e inmediatamente quise construirla yo mismo. El Instructable es Space Invaders Desktop Clock y te recomiendo que le eches un vistazo después de leer esto.

El proyecto se construyó casi exclusivamente con piezas de Adafruit con una carcasa impresa en 3D y un panel frontal cortado con láser. ¡Sumar todo el costo de la construcción se vuelve muy costoso! (alrededor de £ 100 o más). El problema es que si no tienes una impresora 3D tienes que pagar para que se imprima tu modelo, o comprar una carcasa fea en eBay que a menudo es un poco demasiado pequeña, demasiado estrecha, demasiado corta o lo contrario.

La mayoría de mis compilaciones deben realizarse con un presupuesto de aficionado y los recintos siempre terminan siendo la parte más cara. Así que decidí construir el mismo reloj pero con un presupuesto decente.

Si te gusta mirar relojes raros, echa un vistazo a mi reloj voltímetro Steampunk, que usa los mismos materiales de construcción para el gabinete:-)

Paso 1: Reúna las piezas

Para realizar este proyecto, necesitará lo siguiente. Tenga en cuenta que con los materiales para el cerramiento, tendrá MUCHAS sobras que puede usar en otros proyectos (lo que hace que el costo de futuras construcciones sea aún más barato). He subido PDF de las cosas que necesita si desea verificar el precio, etc.en eBay.

Herramientas (supongo que ya las tendrá)

  • Soldador
  • Soldar
  • Bomba de soldadura (si comete un error y necesita quitar la soldadura)
  • Pistola de silicona
  • Barras de pegamento caliente
  • Cuchillo artesanal (también conocido como cuchillo stanley)
  • Regla / cinta métrica / calibre Vernier
  • Taladro inalámbrico + brocas (1 mm a 13 mm)
  • Multiherramienta rotativa con disco de corte (también conocido como Dremel)
  • Líquido de limpieza como alcohol isopropílico (la loción para después del afeitado barata también funciona)
  • Máscara de seguridad (utilizada al pintar con aerosol)

Electrónica (costo de la electrónica = £ 13.05)

Algunos de estos los tenía gratis. Los juguetes electrónicos viejos tienen estos bonitos parlantes de Mylar adentro si los desarmas. Mientras esté allí, probablemente también pueda obtener un barril de CC y un botón pulsador.

  • Cables Dupont / Jumper - £ 0.99
  • Módulo de reloj en tiempo real DS1307 - £ 0.99 (recomendaría obtener DS3231 en su lugar donde esté disponible)
  • Cable Arduino nano + usb - 2,23 €
  • Altavoz Mylar de 8 ohmios - 0,99 €
  • Pulsador momentáneo SPST - £ 1.49
  • Toma de barril de CC de 5,5 mm - 1,26 €
  • Fuente de alimentación de 5v, 0.5A DC - £ 2.83
  • Pantalla de matriz de puntos MAX7219 - £ 3.76

Recinto (costo de los materiales del gabinete = £ 17.19)

  • Tubo de drenaje cuadrado de 60 mm - £ 5.99 (le sobrará MUCHO para más proyectos)
  • Pintura en aerosol negra - £ 4.85
  • PVC negro (cartón pluma) - £ 2.99
  • Súper pegamento - £ 0.99
  • Tapas de extremo de 60 mm - £ 2.37

Costo total = £ 30.24:-) ……..a partir de hoy, esto es el equivalente a 38 USD para cualquier lector internacional.

Disfruto trabajando con la tubería cuadrada de PVC. Son fáciles de perforar, cortar, pintar y usé uno para mi reloj Steampunk.

Paso 2: Prepare su tubería de drenaje

Prepare su tubería de drenaje
Prepare su tubería de drenaje

Marque dónde quiere poner las cosas

Esto fue tan fácil. No usé nada elegante. Primero corté la longitud de 2,5 m a un tamaño razonable para mi banco en casa (unos 30 cm) con una sierra para metales. Más tarde lo corté con una dremel para que los bordes fueran bonitos y rectos. Luego apoyé los componentes en la superficie de la tubería y usé un mercado permanente para marcar donde quería perforar y cortar. Tracé alrededor del exterior de la matriz de LED y usé una multiherramienta rotativa para cortar un orificio cuadrado para que encajara al ras. Usé un calibrador digital para medir el diámetro del botón pulsador y el barril de CC para cortar los orificios del tamaño correcto en la parte posterior y superior.

Cortar un bisel

Tengo montones de placas de espuma de PVC de proyectos anteriores. Son excelentes para montar circuitos en gabinetes, usarlo para mezclar epoxi y hacer otras piezas y bobs. Tome una pieza de tamaño A4 o A5 y corte un marco o bisel cuadrado de 5 mm para enmarcar la matriz de LED. Esto ocultará los extremos torcidos que haya hecho al cortar el orificio cuadrado para la matriz. Para esto, dibujé una pequeña plantilla en Inkscape y la imprimí (archivo SVG adjunto). Luego lo pegué con cinta adhesiva al cartón pluma y lo corté cuidadosamente con un cuchillo de artesanía. Es complicado hacerlo bien, recomiendo cortar primero el interior y luego el exterior.

Pintar todo

Una vez que todos los agujeros estén perforados y cortados, elimine los bordes con rebabas. Limpia las superficies con unas toallitas con alcohol para eliminar el polvo o la contaminación (o un aftershave barato si no tienes IPA). Intente rociar en un área bien ventilada y use una máscara cuando sea posible. Hice esto afuera con un poco de cartón en el piso, pero no es ideal, incluso una pequeña brisa puede hacer que la pintura regrese a tu cara. Tenga cuidado y use equipo de protección siempre que sea posible.

Rocíe la tubería, el bisel y las tapas de los extremos para que sean del mismo tipo de negro, luego déjelo secar durante unas horas.

Paso 3: programa el Arduino

Programa el Arduino
Programa el Arduino

Alguna información sobre el código

Gracias a GeckoDiode, ya que tomé su código y lo modifiqué para que funcione con el chip MAX7219. La versión de Adafruit usa el bus I2C y el MAX usa el bus SPI. Para esto utilicé la biblioteca MaxMatrix, que descargué e instalé en el IDE de Arduino. Si desea obtener más información sobre MaxMatrix y cómo funciona la matriz LED en principio, hay un breve tutorial en HowToMechatronics.com. La matriz de LED se compone únicamente de un solo color de LED en lugar de tener una pantalla multicolor.

Una frustración que tuve es que NO hay definiciones claras de cuáles son las funciones para la biblioteca y qué argumentos deben pasarse a cada una. Afortunadamente, pude averiguar qué hizo qué mediante prueba y error y, al final, no fue demasiado difícil hacer que funcionara correctamente. Lo primero que debe comprender es que debe definir cuántos módulos 8x8 hay en su matriz. En mi código, esto se almacena en un número entero llamado "módulos" como este:

"int módulos = 4;"

Este es el NÚMERO de módulos de 8x8 que ha vinculado en su pantalla. No es el número de LED o el pin que está usando los datos de envío. Lo siguiente que debe recordar es que si su "sprite" o lo que sea cubre las cuatro matrices, entonces la matriz de bytes debe definirse así:

"byte text_start_bmp = {32, 8,… * algunos datos de bytes *…};"

Los números indican la cantidad de filas y columnas en la matriz. En esta ocasión, el byte denominado "text_start_bmp" se muestra en 32 columnas y 8 filas. Los números solo se muestran en una única matriz de 8x8, por lo que el número de minuto 10 se ve así:

"byte minuto_ten_bmp = {8, 8,… * algunos datos de bytes *…};"

Los invasores cubren dos matrices, por lo que al byte se le dará 16, 8 en los datos del byte.

La otra cosa que me llamó la atención fue el posicionamiento de los datos del sprite. Puede pedirle al Arduino que muestre el sprite en una posición X / Y diferente en la matriz desde la posición inicial predeterminada. El código se ve así para el minuto cero:

"matrix.writeSprite (8, 0, minuto_zero_bmp);"

Un número es el ajuste X y otro es Y. No puedo recordar cuál es cuál ahora, pero si quieres empujar el sprite hacia arriba o hacia abajo en una fila o columna, simplemente incrementa el número positivo o negativo. Bastante simple para una matriz de 8x8, pero cuando su objeto cubre más de una matriz, debe establecer la posición de inicio en consecuencia. El objeto "POP" se muestra a continuación:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

¿Observa ahora cómo la posición inicial es 16 y no 8? Aquí el código indica que el sprite se muestra de izquierda a derecha desde la fila / columna de posición 16. ¡Considera que dos pantallas de 8x8 son una sola pantalla de 16x8 aunque haya 4! Por lo tanto, es importante pensar en cuántas pantallas se mostrará el sprite y dimensionar la matriz de bytes de cada sprite en consecuencia. ¡De lo contrario, tendrás algunos sprites muy interesantes!

DS1307 RTC

Aunque el DS1307 funciona bien con la biblioteca Adafruit RTClib.h, no puede configurar manualmente la hora, lo cual es una molestia. Simplemente fui con esto porque significaba menos código para cambiar. El DS1307 establece la hora utilizando la hora y la fecha en que se compiló el código a partir de la hora de su computadora. En su lugar, aprenda a usar la biblioteca DS3231 y configúrela una vez para uno o dos minutos más adelante. También tiene menos "deriva", por lo que mantiene mejor el tiempo con el tiempo. Ambos módulos usan el bus I2C y creo que el DS3231 se puede usar con RTClib.h si desea continuar usándolo.

Sube el código

Una vez que esté satisfecho con el código, cárguelo en Arduino. He adjuntado mi boceto de Arduino para su consideración.

Paso 4: Montaje de la electrónica

Montaje de electrónica
Montaje de electrónica

Mientras carga el código, recomendaría tener la electrónica ensamblada con cables dupont / jumper en una placa de prueba primero para que cuando cargue el código sepa que todo funciona según lo previsto. Esto le permite solucionar cualquier problema con la visualización de los sprites, etc.antes de comenzar a pegar y pegar. En mi código puede ver que estoy usando pines digitales 4, 5, 6, 7, 9, pero puede cambiarlos si es necesario. Es posible que deba soldar cables en el botón, el conector de CC y el altavoz, pero la mayoría deben ser conectores de estilo de ajuste fácil.

Una vez que esté satisfecho con el funcionamiento de la electrónica, debería considerar soldar las conexiones. Puede hacer esto con placa de cobre / veroboard, pero por la pequeña cantidad de componentes, puede soldar directamente a los pines del Arduino. Se verá como un nido de ratas, pero nadie verá el interior del recinto una vez que esté ensamblado de todos modos, solo asegúrese de que todas las partes metálicas estén segregadas, no querrá que nada se cortocircuite en la carcasa.

He hecho que el botón funcione cuando el pin "mainButton" se baja. Descubrí que el Arduino estaba reconociendo un botón falso presionado cuando la electrónica flotante se asienta sobre él. El uso de una resistencia pulldown de 10K en el botón pulsador y la configuración del pin en "INPUT_PULLUP" resolvió ese problema para mí.

Se adjunta el esquema en PDF y-p.webp

Paso 5: monte los componentes electrónicos y cierre

Monte la electrónica y cierre
Monte la electrónica y cierre
Monte la electrónica y cierre
Monte la electrónica y cierre

Para mi reloj, monté la electrónica con pegamento caliente, pero tenga cuidado de no aplicar demasiado (a la electrónica no le gusta calentarse demasiado tiempo). Usé una pequeña gota de súper pegamento salpicada alrededor del bisel y la presioné contra el frente. Terminé el recinto presionando las tapas de los extremos en cada extremo. Por supuesto, puede pegar las tapas de los extremos para encerrar completamente el ensamblaje, pero dejé un lado del mío abierto para poder acceder al puerto USB del arduino para restablecer la fecha y la hora en el futuro.

Paso 6: disfruta

Disfrutar
Disfrutar
Disfrutar
Disfrutar

En general, estoy satisfecho con la forma en que salió esto, considerando que solo es una tubería de desagüe y pintura en aerosol. Espero que les guste y háganme saber si pueden pensar en alguna actualización interesante que se pueda agregar. Me interesaría saber si alguien puede hacer esto más barato o si hay otra forma económica de hacer un cerramiento que pueda probar en mi próximo proyecto.

Recomendado: