Anuncio
La Navidad está aquí otra vez, y ya sea que sea tu fiesta favorita del año o que te haga sudar frío, las decoraciones están comenzando a subir. Este año, ¿por qué no incorporar tecnología DIY en sus decoraciones para que se destaquen?
En este proyecto construiremos una matriz de LED 8 x 8 resistente a la intemperie, activada por movimiento desde cero... por menos de $ 20. Está diseñado para caber en el centro de una corona de Navidad estándar, aunque podría usarse en cualquier lugar de la casa. Y como funciona con baterías, ¡también en cualquier lugar lejos de la casa!
Lista de partes
Para este proyecto necesitarás:
- Arduino
- Usé el Nano porque es de tamaño pequeño, pero podrías usar casi cualquier Microcontrolador compatible con Arduino Guía de compra de Arduino: ¿Qué placa debería obtener?Hay tantos tipos diferentes de placas Arduino por ahí, que te perdonarían por estar confundido. ¿Cuál deberías comprar para tu proyecto? ¡Permítanos ayudarlo con esta guía de compra de Arduino! Lee mas .
- 64 x LEDs rojos.
- 8 x resistencias de 220 ohmios.
- Sensor de movimiento PIR.
- Muchos Kits de inicio Arduino ¿Qué se incluye en un kit de inicio Arduino? [MakeUseOf explica]Anteriormente introduje el hardware de código abierto Arduino aquí en MakeUseOf, pero necesitarás más que el Arduino real para construir algo a partir de él y comenzar realmente. Los "kits de inicio" de Arduino son ... Lee mas ven con estos. Compré un paquete múltiple de Amazon por $ 10.
- 1 pieza de tablero de prototipos.
- El que se usó aquí fue de 9 x 7 cm, aunque puede usar cualquier tamaño que desee.
- Batería de 7-12v.
- Aquí se usa una batería simple por razones de presupuesto, pero un cargador de banco móvil Los mejores bancos de energía de Pokemon GoPokemon Go supera a la batería de un teléfono. Exprimir un poco más de jugo capturador de Pokémon de tu teléfono requiere un banco de energía. ¿Pero cuál es la mejor batería que existe? Lee mas Puede durar aún más.
- Surtido de piezas cortas de alambre.
- Caja Tupperware o caja similar resistente a la intemperie.
- ¡Asegúrese de que sea lo suficientemente grande como para que quepan todos sus componentes en su interior!
- Corona de Navidad.
- Cualquiera servirá, solo asegúrese de que la caja del gabinete encaje dentro de ella.
- Soldador y soldadura.
Aunque no es estrictamente necesario, ya que podría soldar los componentes directamente al Nano, también encontré una pequeña placa de prueba muy útil durante las pruebas. Una pistola de pegamento caliente también ayuda a juntar todas las piezas.
Este proyecto requiere bastante soldadura, y como principiante puede parecer desalentador. Personalmente, todavía soy un principiante en la soldadura y descubrí que no es tan difícil o lento como parece. Si también es nuevo en la soldadura, aquí hay algunos buenos consejos para ayudar Aprenda a soldar, con estos simples consejos y proyectos¿Estás un poco intimidado por la idea de un hierro caliente y metal fundido? Si desea comenzar a trabajar con la electrónica, necesitará aprender a soldar. Permítanos ayudarlo. Lee mas .
Si realmente no le gusta la idea de soldar, este proyecto también es posible con Tiras de LED Proyecto de fin de semana: construya una pantalla gigante de píxeles LEDMe encantan los píxeles LED: brillantes, fáciles de controlar, baratos y muy versátiles. Hoy los convertiremos en una gran pantalla de píxeles que se puede colgar en la pared. Lee mas , o una matriz LED lista para usar que puede tener en su kit de inicio. Algunos ajustes de código serán necesarios si decide seguir esa ruta.
Configurando el Arduino
Comenzaremos con el diagrama de circuito del Arduino y los cables que conectaremos a nuestro sensor PIR y matriz LED.
Dentro de la matriz
Ahora para hacer nuestra matriz de LED 8 x 8. Para empezar, es una buena idea crear una fila y una columna de la matriz, para asegurarse de que esté exactamente donde la quiere en el tablero de prototipos.
En la foto de arriba, todos los LED están colocados de manera que los ánodos (la pata positiva más larga) estén hacia la parte superior del protoboard. Esto es importante, ya que crearemos columnas de ánodos comunes uniéndolos y filas de cátodos comunes (la pata negativa más corta). ¡Obtener esto ahora ahorrará dolores de cabeza más adelante!
Vamos a construir una matriz de cátodo de fila común, este diagrama muestra cómo está todo conectado.
Puede parecer un poco desalentador al principio, pero es una configuración bastante simple. En cada fila, todos los cátodos se unen de derecha a izquierda y luego se unen a uno de nuestros pines Arduino. Después de esto, hacemos lo mismo para cada columna de ánodos. De esta manera, dependiendo de la columna a la que apliquemos energía y a qué fila unimos a tierra, podemos encender cualquier LED individual en la matriz.
Que comience la soldadura
Comience colocando su primera fila de LED. Asegúrate de que todos los ánodos estén orientados hacia la parte superior y dale la vuelta. Descubrí que agregar otro LED en cada esquina y colocar otra pieza de protoboard en la parte superior con un cable elástico ayudaba a mantener todo en su lugar.
Ahora, uno por uno, doble la pata del cátodo (corta) de cada LED hacia la izquierda para que se superpongan entre sí. Es más fácil comenzar desde el lado izquierdo y trabajar a la derecha. Si está utilizando una pieza de protoboard más grande, primero puede soldarlos a la placa y conectarlos entre sí mediante las almohadillas. ¡Tenga cuidado de no unir ninguno de los cátodos a ninguna otra línea del tablero ni a ninguno de los ánodos!
Repita este proceso para las ocho filas, y cuando haya terminado, debería tener algo parecido a esto:
Anodos de salto!
Las columnas de ánodos son un poco más complicadas. En el diagrama anterior, los ánodos se curvan cada vez que cruzan una fila de cátodos. Esto se debe a que no pueden tocar las filas en absoluto. Debemos doblar los ánodos sobre las filas de cátodos y unirlos entre sí. Puede encontrar que usar un bolígrafo para doblar las piernas ayuda mucho.
Haga esto para cada fila de ánodos y conecte una resistencia a cada ánodo superior. Probablemente le resulte más fácil colocar la resistencia en el siguiente orificio del protoboard y unir las almohadillas con soldadura. Ahora debería tener algo como esto:
¡Felicidades! La matriz LED está completa. Verifique su soldadura a fondo en esta etapa para asegurarse de que no haya interrupciones y que ninguna de las columnas toque las filas. No se preocupe si no se ve bonito, ¡solo necesitamos que funcione! Puede verificar cada LED individualmente ahora conectando 5v a cualquiera de los extremos de la columna, y conectando a tierra a cualquiera de los extremos de la fila.
Siempre que todo esté bien, conecte los cables de conexión a cada columna y cada fila, y conéctelos a su Arduino como se muestra en el diagrama anterior.
Vamos a codificar
Abra el IDE de Arduino y elija su placa y puerto. Si eres nuevo en Arduino, mira esto Guía de inicio. Comenzando con Arduino: una guía para principiantesArduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas
Ingrese este código en el editor. Es un código bastante denso si no está familiarizado con él, pero está disponible. aquí totalmente anotado para ayudar a comprender cómo funciona.
const int fila [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = BAJO; int val = 0; bool pirTrigger = falso; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int píxeles [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME en blanco = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & blank, & threedownthreein, & blank, & blank, & threedownthreein. }; configuración nula () {for (int i = 0; i <8; i ++) {pinMode (fila [i], SALIDA); pinMode (col [i], SALIDA); // sensor de movimiento pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; para (int x = 0; x <8; x ++) {para (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {píxeles [x] [y] = ALTO; } else {píxeles [x] [y] = BAJO; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (fila [currentRow], LOW); para (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = píxeles [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (fila [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == verdadero && pirCountdown> 0) {refreshScreen (); cuenta regresiva--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Las partes importantes para entender son:
los refreshSpeed variable. Esta variable determina cómo se actualiza el tiempo entre cada pantalla. Un número mayor significa una espera más larga.
El const CHAR_MAP_NAMEs. Aquí es donde coloca cada mapa de caracteres (o marco si es más fácil pensar en ellos de esa manera) que desea mostrar.
los noOfFrames variable. Esto determina cuántos fotogramas se muestran en una reproducción completa. Tenga en cuenta que puede ser diferente al número de mapas de caracteres. Por ejemplo, si desea mostrar "A CAT", solo necesitaría definir cuatro cuadros distintos: en blanco, un UNA, una C y un T.
Ahora, cuando el sensor de movimiento detecta movimiento, la pantalla LED debe parpadear tres veces hacia abajo y tres hacia adentro desde la parte superior izquierda. Si no se muestra correctamente, revise su cableado nuevamente para asegurarse de que todo esté en el lugar correcto. Cuando agrega su propia imagen o mensaje, puede cortarse temprano o reproducirse por demasiado tiempo. Intenta cambiar el pirLockTime variable hasta que juegue durante el tiempo que desee.
El proceso de agregar cada cuadro a la pantalla LED puede ser un poco tedioso, por lo que hemos creado esta hoja de cálculo para que sea un poco más fácil crear texto e imágenes para su matriz LED (haga una copia de la Hoja de Google para poder editarla).
Usando la hoja de cálculo, puede copiar sus creaciones directamente en el código.
Haz que valiente los elementos
Ahora que tenemos una matriz de LED en funcionamiento, necesitamos una forma de sobrevivir al clima invernal. Si bien este método puede no resistir una tormenta tropical o sumergirse en la piscina, debería ser suficiente para mantener todos los componentes electrónicos a salvo de los elementos.
Utilicé una caja redonda de Tupperware que tiene 15 cm de diámetro y 6 cm de profundidad, ya que se adapta perfectamente a mis componentes. Corte una ventana en la tapa un poco más grande que su matriz de LED y coloque una película de plástico transparente, asegurándose de no dejar espacios para que entre líquido. El plástico resistente de algunos envases funcionaría mejor, pero esto era todo lo que tenía. También puede colocar algunos soportes para el protoboard, aunque ambos trabajos pueden realizarse fácilmente con una cinta resistente al agua.
Luego, haga un pequeño agujero debajo de la ventana, luego con cuidado y lentamente ensanche hasta que su sensor PIR solo pueda pasar. Desea que se ajuste lo más cómodamente posible.
Conecte su sensor PIR y complete cualquier espacio que pueda ver con cinta adhesiva o pegamento caliente.
Limpie cualquier cinta o pegamento que pueda impedir que la caja se cierre correctamente y agregue todos sus componentes a la caja junto con su batería. Aquí, se usó una batería AA simple, conectada directamente al pin VCC del Nano. Se agregaron algunos pequeños trozos de corcho al exterior del recinto para ayudar a colgar la construcción en el centro de la corona.
Y hemos terminado
Una vez que la caja esté sellada, cuélgala con tu corona navideña y espera las reacciones de tus visitantes a tu bienvenida personal de alta tecnología de $ 20 Incluso podrías ir un paso más allá y crear increíbles Decoraciones de bricolaje Decoraciones navideñas impresas en 3D para unas perfectas vacaciones geek¿Por qué no ahorrar algo de dinero esta Navidad e imprimir en 3D algunos adornos festivos para su hogar? Lee mas ¡Por otro lado de la casa también!
En este proyecto, hemos construido un sistema de matriz de LED autónomo desde cero, que se activa por movimiento y puede sobrevivir estando al aire libre en todas las condiciones climáticas. Esta construcción será útil mucho después de que termine la temporada de vacaciones en otros proyectos, y la misma técnica podría usarse para crear recintos a prueba de intemperie baratos para otros proyectos también.
¿Has construido algo para darle a tu Navidad un toque DIY? ¿Estás planeando algún regalo de Navidad con temas de bricolaje este año? ¡Háganos saber en los comentarios a continuación!
Ian Buckley es periodista independiente, músico, intérprete y productor de video que vive en Berlín, Alemania. Cuando no está escribiendo o en el escenario, está jugando con la electrónica o el código de bricolaje con la esperanza de convertirse en un científico loco.