La Navidad está aquí otra vez, y ya sea que sea su día de fiesta favorito del año o que lo enfríe, las decoraciones comienzan a aumentar. Este año, ¿por qué no incorporar alguna tecnología de bricolaje en sus decoraciones para que se destaquen?
En este proyecto construiremos una matriz LED de 8 x 8 activada por movimiento y resistente a la intemperie desde cero ... por menos de $ 20. Está diseñado para caber en el centro de una corona de puerta de Navidad estándar, aunque podría usarse en cualquier lugar de la casa. ¡Y ya que funciona con batería, en cualquier lugar fuera de la casa también!
Lista de partes
Para este proyecto necesitarás:
- Arduino.
- Usé el Nano para su tamaño pequeño, pero podrías usar casi cualquier microcontrolador compatible con Arduino. Guía de compra de Arduino: ¿Qué placa deberías obtener? Guía de compra de Arduino: ¿Qué placa debería obtener? Hay tantos tipos diferentes de tableros Arduino que hay, se te perdonaría por estar confundido. ¿Qué debería comprar para su proyecto? ¡Permítanos ayudarlo con esta guía de compra de Arduino! Lee mas .
- 64 x LED rojos.
- Resistencias de 8 x 220 Ohm.
- Sensor de movimiento PIR
- Muchos kits de inicio de Arduino ¿Qué se incluye en un kit de inicio de Arduino? [MakeUseOf Explains] ¿Qué se incluye en un Arduino Starter Kit? [MakeUseOf Explains] Anteriormente introduje el hardware de código abierto Arduino aquí en MakeUseOf, pero vas a necesitar algo más que el Arduino real para construir algo y empezar. Arduino "kits de inicio" son ... Leer más vienen con estos. Compré un paquete múltiple de Amazon por $ 10.
- 1 pieza de placa de prototipos.
- El que se usó aquí fue de 9 x 7 cm, aunque puede usar cualquier tamaño que desee.
- Batería 7-12v.
- Aquí se usa un paquete de batería simple por razones de presupuesto, pero un cargador de banco móvil El mejor Pokemon Go Power Banks El mejor Pokemon Go Power Banks Pokemon Go supera a la batería de un teléfono. Exprimir un poco más de jugo de captura de Pokémon de su teléfono requiere un banco de energía. Pero, ¿cuál es la mejor batería que hay? Leer más puede durar incluso más.
- Surtido de piezas cortas de alambre.
- Caja Tupperware o caja impermeable similar.
- ¡Asegúrate de que sea lo suficientemente grande como para que quepan todos tus componentes en su interior!
- Corona de Navidad.
- Cualquiera lo hará, solo asegúrese de que la caja del gabinete se ajuste dentro de él.
- 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 la prueba. Una pistola de pegamento caliente también ayuda a unir todas las partes.
Este proyecto requiere una gran cantidad de soldadura, y como principiante puede parecer desalentador. Personalmente, todavía soy un principiante en la soldadura y descubrí que no es tan desafiante ni requiere tanto tiempo como parece. Si también eres nuevo en la soldadura aquí hay algunos buenos consejos para ayudar a aprender a soldar, con estos sencillos consejos y proyectos. Aprende a soldar, con estos simples consejos y proyectos. ¿Te sientes un poco intimidado por la idea de tener un hierro caliente y ¿metal fundido? Si quieres empezar a trabajar con productos electrónicos, vas a necesitar aprender a soldar. Permítanos ayudar. Lee mas .
Si realmente no le gusta la idea de la soldadura, este proyecto también es posible con tiras LED Proyecto de fin de semana: Construya un proyecto de fin de semana con pantalla gigante LED Pixel: Construya una pantalla gigante LED Pixel Me encantan los píxeles LED: brillante, fácil de controlar, barato y muy versátil. Hoy, los convertiremos en una gran pantalla de píxeles que se puede colgar en la pared. Lea más, o una matriz LED lista para usar que pueda 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 del circuito para el Arduino y los cables que conectaremos a nuestro sensor PIR y matriz LED.
Dentro de la matriz
Ahora para hacer nuestra matriz LED 8 x 8. Es una buena idea comenzar con crear una fila y una columna de la matriz, para asegurarse de que esté exactamente donde la quiere en la placa de prototipos.
En la foto de arriba, todos los LED se colocan de modo que los ánodos (la pata más larga y positiva) estén hacia la parte superior del protoboard. Esto es importante, ya que crearemos columnas de ánodos comunes al unirlos, y filas de cátodos comunes (la pata más corta y negativa). ¡Conseguir esto ahora ahorrará dolores de cabeza más adelante!
Vamos a construir una matriz de cátodo 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 conectan a uno de nuestros pines Arduino. Después de esto, hacemos lo mismo para cada columna de ánodos. De esta forma, dependiendo de a qué columna apliquemos potencia y qué fila unimos a tierra, podemos encender cualquier LED individual en la matriz.
Deje que empiece la soldadura
Comience colocando su primera fila de LED. Asegúrese de que todos los ánodos estén orientados hacia la parte superior y voltéelos. Descubrí que agregar otro LED en cada esquina y colocar otra pieza de protoboard en la parte superior con un cordón elástico ayudó a mantener todo en su lugar.
Ahora, uno por uno, doble la pata catódica (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 correctamente. Si está utilizando una pieza más grande de protoboard, puede soldarlos primero a la placa y conectarlos entre sí utilizando las almohadillas. ¡Tenga cuidado de no unir ninguno de los cátodos a ninguna otra línea en el tablero o cualquiera de los ánodos!
Repita este proceso para las ocho filas, y cuando haya terminado, debería tener algo que se parece a esto:
¡Saltando ánodos!
Las columnas de ánodos son un poco más complicadas. En el diagrama de arriba, los ánodos se curvan cada vez que cruzan una fila de cátodos. Esto es porque no pueden tocar las filas en absoluto. Debemos doblar los ánodos sobre las filas del cátodo y unirlos entre sí. Es posible que usar un bolígrafo para doblar las piernas ayude 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:
¡Felicitaciones! La matriz LED está completa. Verifique su soldadura a fondo en esta etapa para asegurarse de que no haya roturas y que ninguna de las columnas esté tocando 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 aterrizar 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 obtener la codificación
Abra el IDE de Arduino y elija su placa y puerto. Si es nuevo en Arduino, consulte esta guía de introducción. Comenzar con Arduino: una guía para principiantes Comenzar con Arduino: una guía para principiantes Arduino es una plataforma de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está dirigido 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í completamente anotado para ayudar a entender cómo funciona.
const int row[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 = LOW; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pixels[8][8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME[8][8]; const CHAR_MAP_NAME blank = { {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 }; void setup(){ for (int i=0;i<8;i++){ pinMode(row[i], OUTPUT); pinMode(col[i], OUTPUT); //motion sensor pinMode(pirPin, INPUT); digitalWrite(col[i], LOW); } } void screenSetup(){ const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex]; for (int x = 0; x< 8; x++) { for (int y = 0; y =noOfFrames){ currentCharIndex = 0; } } void refreshScreen(){ for (int currentRow = 0; currentRow< 8; currentRow++){ digitalWrite(row[currentRow], LOW); for (int currentCol = 0; currentCol< 8; currentCol++){ int thisPixel = pixels[currentRow][currentCol]; digitalWrite(col[currentCol], thisPixel); if (thisPixel == HIGH) { digitalWrite(col[currentCol], LOW); } } digitalWrite(row[currentRow], HIGH); } } void loop(){ val = digitalRead(pirPin); if (val == HIGH){ pirTrigger = true; } else if (val == LOW && pirCountdown 0) { refreshScreen(); countDown--; pirCountdown--; if(countDown<= 0) { countDown = refreshSpeed; screenSetup(); } } }
Las partes importantes para entender son:
La variable refreshSpeed . Esta variable determina cómo se actualiza el tiempo entre cada pantalla. Un número mayor significa una espera más larga.
La const CHAR_MAP_NAME s. Aquí es donde pone cada mapa de personaje (o marco si es más fácil pensar de esa manera) que desea mostrar.
La variable noOfFrames . Esto determina cuántos marcos se muestran en una reproducción completa. Tenga en cuenta que puede ser diferente al número de mapas de caracteres. Por ejemplo, si quisiera mostrar "A CAT", solo necesitaría definir cuatro marcos distintos: en blanco, A, C y T.
Ahora, cuando el sensor de movimiento detecta movimiento, la pantalla LED debe hacer parpadear el LED tres hacia abajo y tres hacia adentro desde la esquina superior izquierda. Si no se muestra correctamente, verifique su cableado nuevamente para asegurarse de que todo esté en el lugar correcto. Cuando agrega su propia imagen o mensaje, puede cortarse temprano o jugar demasiado tiempo. Intente cambiar la variable pirLockTime hasta que se reproduzca durante el tiempo que desee.
El proceso de agregar cada fotograma a la pantalla LED puede ser un poco tedioso, por lo que hemos creado esta hoja de cálculo para facilitar la creación de 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.
Hazlo valiente los elementos
Ahora que tenemos una matriz LED en funcionamiento, necesitamos una forma de que sobreviva 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.
Usé una caja Tupperware redonda de 15 cm de diámetro y 6 cm de profundidad, ya que se ajustaba perfectamente a mis componentes. Corte una ventana en la tapa un poco más grande que su matriz LED, y coloque una película de plástico transparente, asegurándose de no dejar espacios para que entre el líquido. El plástico resistente de algunos envases funcionaría mejor, pero esto era todo lo que tenía. También podría adjuntar algunos montajes para el protoboard, aunque ambos trabajos podrían hacerse fácilmente con una fuerte cinta impermeable.
A continuación, haga un pequeño orificio debajo de la ventana, luego, con cuidado y lentamente, ensanche hasta que su sensor PIR solo pueda pasar. Desea que se ajuste lo mejor posible.
Conecte su sensor PIR, y rellene 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 la batería. Aquí, se utilizó un paquete de baterías AA simple, conectado directamente al pin VCC del Nano. Se agregaron unas cuantas piezas pequeñas de corcho al exterior del recinto para ayudar a colgar la construcción en el centro de la corona.
Y estamos hechos
Una vez que la caja esté sellada, cuélguela con su corona de Navidad y espere las reacciones de sus visitantes a su bienvenida personal de $ 20 de alta tecnología. Incluso puedes dar un paso más y crear increíbles decoraciones DIY Decoraciones navideñas impresas en 3D para unas vacaciones perfectas en Geeky Decoraciones navideñas impresas en 3D para unas vacaciones geeky perfectas ¿Por qué no ahorrar algo de dinero en efectivo esta Navidad y imprimir en 3D algunos adornos festivos para tu hogar? ¡Lea más para conocer otros lugares de la casa también!
En este proyecto, hemos construido un sistema matriz LED autocontenido desde el principio, que se activa con el movimiento y puede sobrevivir al exterior en todo menos en las inclemencias del tiempo. 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 agua a bajo costo para otros proyectos también.
¿Has construido algo para darle a tu Navidad un toque de bricolaje? ¿Estás planeando algún regalo de Navidad con temas de bricolaje este año? Háganos saber en los comentarios a continuación!