Tabla de contenido:

Luz ambiental interactiva: 8 pasos
Luz ambiental interactiva: 8 pasos

Video: Luz ambiental interactiva: 8 pasos

Video: Luz ambiental interactiva: 8 pasos
Video: Iluminación Ambiental por HDRI | Nivel 2: Clase 8 | #Unreal4Arq 2024, Noviembre
Anonim
Luz ambiental interactiva
Luz ambiental interactiva
Luz ambiental interactiva
Luz ambiental interactiva
Luz ambiental interactiva
Luz ambiental interactiva

¡Este es mi primer instructable! Por favor, tengan paciencia conmigo mientras lucho por escribir un inglés adecuado. ¡Sientase libre de corregirme! Comencé este proyecto justo después de que comenzara la competencia 'Let it glow'. Ojalá hubiera hecho mucho más y hubiera terminado lo que quería hacer. Pero entre la escuela y el trabajo, no me queda tanto tiempo como hubiera deseado. Sin embargo, dejo aquí un informe de mis experimentos como instructable, para que cualquiera pueda intentar hacer lo que hice. Este instructivo no está destinado a servir como guía y enseñar cómo hacer este artilugio. No es una guía para principiantes en electrónica. Es más como compartir una idea y un objetivo que deseo perseguir. Si eres un principiante o un completo ignorante en electrónica y deseas hacer algo como esto, ¡lo siento! Pero siempre podemos intentar ayudarte. Vea el último paso. Ya hemos visto muchos proyectos de luz ambiental. La mayoría de ellos usan LED RGB: - Para iluminar una habitación con un color, creando una atmósfera que se adapte a su estado de ánimo - Para crear efectos de luz a partir del color del televisor / monitor o del audio. Incluso hay algunos en instructables.com Relacionado: Sistemas de iluminación ambiental de bricolaje Iluminación ambiental de barras de luzConstruir tus propias barras de iluminación de color ambiental Usando esta competencia como excusa, comencé un proyecto que ha estado en mi mente por un tiempo. Siempre quise hacer algo similar a estas luces ambientales y llenar las paredes de mi habitación con LED RGB. Pero, dar un paso más, hacer que todos y cada uno de ellos sean controlables. Se espera que este proyecto dé como resultado un kit de electrónica de código abierto para aficionados y manipuladores electrónicos, que permita la piratería de hardware / software y la integración sensorial. Aquí hay una pequeña vista previa de lo que hice:

Paso 1: exploración de la idea

Quiero poder llenar las paredes de mi habitación con LEDs RGB, controlando el color y brillo de cada led, voy a utilizar un microcontrolador por la facilidad de uso y la flexibilidad que aporta. Desafortunadamente, no puedo controlar cientos de LED con los pocos pines disponibles en los microcontroladores. Incluso sería difícil codificar el control de tantos LED, así que decidí dividir todos los LED en varias barras más pequeñas y para cada barra podría usar un microcontrolador. Luego, usaría las capacidades de comunicación de los microcontroladores para compartir información entre ellos. Esta información podría ser el color y brillo de los LED, patrones / secuencias de colores e información sensorial. Para cada barra decidí usar 16 LED RGB. Esto da como resultado una barra que no es ni demasiado grande ni pequeña. De esta manera utilizo una cantidad aceptable de recursos para cada led, reduciendo los costos de cada barra, sin embargo, 16 LED RGB son 48 LED (3 * 16 = 48) para que los controle el microcontrolador. Con los costos en mente, decidí usar el microcontrolador más barato que pude usar. Esto significa que el microcontrolador solo tendrá hasta 20 pines de E / S, no suficientes para 48 LED. No deseo usar charlieplexing o algún tipo de unidad de división de tiempo, ya que el objetivo del proyecto es iluminar una habitación. ¡La alternativa que se me ocurre es usar algún tipo de registro de desplazamiento enganchado!

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware

Como se dijo en el paso anterior, deseo hacer varias barras para iluminar una habitación. Esto trae a la mente el tema de los costos. Voy a intentar hacer que cada barra sea lo más rentable posible. El microcontrolador que utilicé fue un AVR ATtiny2313. Estos son bastante baratos y tenía algunos por ahí. ATtiny2313 también tiene una interfaz serie universal y una interfaz USART que se utilizarán bien en los siguientes pasos. También tenía tres expansores de puertos de E / S MCP23016 - I2C de 16 bits por ahí, ¡solo el recuento correcto! Usé cada expansor de puerto para controlar un color de los 16 LED. Los LED … Desafortunadamente, fueron los más baratos que pude encontrar. Son 48 rojos, verdes y azules ~ 10000 mcd 5 mm con un ángulo de 20 grados. Esto no debería importar por ahora, ya que es solo un prototipo. A pesar de esto, ¡el resultado es bastante bueno! Estoy ejecutando el microcontrolador a 8 MHz. El bus I2C tiene una frecuencia de 400 kHz. La frecuencia de conmutación del LED es de unos 400 Hz. De esta manera, si soy capaz de manejar 48 LED sin llevarlo al límite, ¡tendré espacio para más después!

Paso 3: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Después de diseñar el circuito, lo construí en varias placas de prueba, con fines de creación de prototipos. Después de varias horas de cortar cables y ensamblar el circuito, obtuve este resultado: ¡una placa de pruebas gigante con 48 LED y toneladas de cables!

Paso 4: ¿Control?

¿Control?
¿Control?

Esta es la parte más desafiante del proyecto. Quería hacer un algoritmo de control lo suficientemente genérico para manejar patrones / secuencias y también controlar el brillo y el color de cada LED. Para controlar los LED tengo que enviar al MCP23016 un cuadro de 4bytes (1 byte = 8 bits). Un byte con la dirección del IC correspondiente al color, 1 byte con el comando "escribir" y 2 bytes con el valor de los 16bits (LEDs). El IC está conectado a los LED como "sumidero", es decir, un valor lógico 0 en el pin encenderá el LED. Y ahora la parte desafiante, ¿cómo hacer un control PWM para 48 LED? ¡Estudiemos PWM para un LED! PWM explicó en Wikipedia. Si quiero que el brillo del LED sea del 50%, mi valor de PWM es del 50%. Esto significa que el LED, en un período de tiempo, debe estar encendido la misma cantidad de tiempo que apagado. Tomemos un período de 1 segundo. PWM del 50% significa que en este 1 segundo, el tiempo de encendido es de 0,5 segundos y el tiempo de apagado es de 0,5 segundos. ¿PWM del 80%? ¡0,2 segundos apagado, 0,8 segundos encendido! En el mundo digital: con un período de 10 ciclos de reloj, 50% significa que durante 5 ciclos el LED está encendido y durante otros 5 ciclos el LED está apagado. 20%? 2 ciclos encendido, 8 ciclos apagado. 45%? Bueno, realmente no podemos obtener el 45% … Dado que el período está en ciclos y solo tenemos 10 ciclos, solo podemos dividir el PWM en pasos de 10%. Esto significa que la evolución del pin debería ser, para el 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; O incluso 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; en programación podemos hacer esta secuencia de encender y apagar un arreglo. Para cada ciclo, enviamos al pin el valor del índice donde está el ciclo. ¿Tenía sentido hasta ahora? Si queremos hacer LED0 50% y LED1 20%, podemos agregar ambas matrices.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Para activar el pin LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; resultando en LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Al emitir esta secuencia de números en el IC del expansor de puertos, obtendríamos el LED0 con 50% de brillo y el LED1 con 20% !! Simple para 2 LED, ¿verdad? ¡Ahora tenemos que hacer esto para 16 LED, para cada color! Para cada uno de estos arreglos, tenemos una combinación de brillo para cada color (16 LED) Cada vez que queremos otra combinación de colores, tenemos que cambiar este arreglo.

Paso 5: ¡Haciéndolo fácil

¡Haciéndolo fácil!
¡Haciéndolo fácil!
¡Haciéndolo fácil!
¡Haciéndolo fácil!

El paso anterior es demasiado trabajo para hacer una secuencia simple… Entonces decidí hacer un programa, donde decimos los colores de cada LED en un paso de la secuencia y obtenemos los tres arreglos del paso. Hice este programa en LabView debido a limitaciones de tiempo.

Paso 6: primeros experimentos

Primeros experimentos
Primeros experimentos

Cargando varios pasos en el microcontrolador y obtenemos algo como esto: ¡Perdón por la mala calidad de los videos! Definí el número máximo de pasos de una secuencia a 8, y limité el PWM al 20% de saltos. Esta decisión se basa en el tipo de control que estoy usando y la cantidad de EEPROM que tiene el ATtiny2313. En estos experimentos traté de ver qué tipo de efectos podía hacer ¡Debo decir que estoy satisfecho con el resultado!

Paso 7: control en tiempo real

Control en tiempo real
Control en tiempo real
Control en tiempo real
Control en tiempo real
Control en tiempo real
Control en tiempo real

Como se mencionó en los pasos anteriores, deseo comunicarme con todos los microcontroladores que controlan los LED en mi habitación. Entonces utilicé la interfaz USART disponible en ATtiny2313 y la conecté a mi computadora. También hice un programa en LabView para controlar la barra de LED, en este programa puedo decirle al microcontrolador cuánto dura la secuencia, el color de cada LED y el tiempo entre los pasos de una secuencia. demostrar cómo puedo cambiar el color de los LED y definir secuencias.

Paso 8: Conclusiones

Conclusiones
Conclusiones
Conclusiones
Conclusiones
Conclusiones
Conclusiones
Conclusiones
Conclusiones

Creo que tuve éxito en este primer enfoque de mi proyecto. Puedo controlar 16 LED RGB con pocos recursos y limitaciones. Es posible controlar cada LED por separado, creando cualquier secuencia deseada.

Trabajo futuro:

Si recibo comentarios positivos de la gente, puedo desarrollar aún más esta idea y hacer un kit de electrónica de bricolaje completo, con placas de circuito impreso e instrucciones de montaje.

Para mi próxima versión, haré lo siguiente: -Cambiaré el microcontrolador a uno con ADC -Cambiaré el MCP23016 por algún otro tipo de salida serial en paralelo que pueda absorber más corriente de los LED -Hacer software de código abierto para comunicarse con el microcontrolador y controlar los LED -Desarrollar la comunicación entre varios microcontroladores.

¿Tienes alguna sugerencia o pregunta? ¡O deja un comentario!

Finalista en Let It Glow!

Recomendado: