Índice:

Luz ambiente interativa: 8 etapas
Luz ambiente interativa: 8 etapas

Vídeo: Luz ambiente interativa: 8 etapas

Vídeo: Luz ambiente interativa: 8 etapas
Vídeo: La fotosíntesis para niños Video de Peques Aprenden Jugando 2024, Novembro
Anonim
Luz ambiente interativa
Luz ambiente interativa
Luz ambiente interativa
Luz ambiente interativa
Luz ambiente interativa
Luz ambiente interativa

Este é o meu primeiro instrutível! Por favor, tenha paciência comigo enquanto eu me esforço para escrever um inglês adequado. Sinta-se à vontade para me corrigir! Comecei este projeto logo após o início da competição 'Let it glow'. Eu gostaria de ter feito muito mais e terminado o que eu queria fazer. Mas entre a escola e o trabalho, não tenho tanto tempo quanto gostaria. No entanto, deixo aqui um relatório de minhas experiências como instrutível, para que qualquer pessoa possa experimentar e fazer o que fiz. Este instrutível não se destina a servir como um guia e ensinar como fazer esta engenhoca. Não é um guia para iniciantes em eletrônica. É mais como compartilhar uma ideia e um objetivo que desejo perseguir. Se você é um iniciante / totalmente ignorante em eletrônica e deseja fazer algo assim, me desculpe! Mas podemos tentar sempre ajudá-lo. Veja a última etapa. Já vimos muitos projetos de luz ambiente. A maioria deles usa LEDs RGB: - Para iluminar uma sala com uma cor, criando uma atmosfera que corresponda ao seu humor - Para criar efeitos de luz a partir da cor da TV / Monitor ou do áudio. Existem até mesmo alguns em instructables.com Relacionados: DIY Ambient Light SystemsLight Bar Ambient LightingConstruindo suas próprias barras de iluminação de cor ambiente Usando essa competição como desculpa, comecei um projeto que está na minha mente há algum tempo. Sempre quis fazer algo semelhante a essas luzes ambientes e preencher as paredes do meu quarto com LEDs RGB. Mas, dando um passo adiante, tornando todos e cada um deles controláveis. Esperamos que este projeto resulte em um kit eletrônico de código aberto para amadores e consertadores eletrônicos, permitindo hack de hardware / software e integração sensorial. Aqui está uma pequena amostra do que fiz:

Etapa 1: Explorando a ideia

Quero poder preencher as paredes da minha sala com LEDs RGB, controlando a cor e o brilho de cada led. Vou usar um microcontrolador pela facilidade de uso e flexibilidade oferecida. Infelizmente, não consigo controlar centenas de LEDs com os poucos pinos disponíveis nos microcontroladores. Seria até difícil codificar o controle de tantos LEDs. Então decidi que deveria dividir todos os LEDs em várias barras menores e para cada barra poderia usar um microcontrolador. Então, eu usaria os recursos de comunicação dos microcontroladores para compartilhar informações entre eles. Essas informações podem ser a cor e o brilho dos LEDs, padrões / sequências de cores e informações sensoriais. Para cada barra decidi usar 16 LEDs RGB. Isso resulta em uma barra nem muito grande nem pequena. Desta forma, utilizo um número aceitável de recursos para cada led, reduzindo os custos de cada barra. No entanto, 16 LEDs RGB são 48 LEDs (3 * 16 = 48) para o microcontrolador controlar. Com os custos em mente, decidi usar o microcontrolador mais barato que eu poderia usar. Isso significa que o microcontrolador terá apenas até 20 pinos de E / S, não o suficiente para 48 LEDs. Não desejo usar charlieplexing ou algum tipo de drive de divisão de tempo, já que o objetivo do projeto é iluminar uma sala. alternativa que eu poderia pensar é usar algum tipo de registro de deslocamento travado! Retomando: - Faça uma luz ambiente interativa - Faça uma barra padrão de LEDs controláveis - Possibilidade de conectar várias barras para preencher uma sala - Permitir adaptação / configuração do usuário e integração sensorial

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware

Como disse na etapa anterior, desejo fazer várias barras para iluminar uma sala. Isso traz à mente a questão do custo. Vou tentar fazer com que cada barra seja a mais econômica possível. O microcontrolador que usei era um AVR ATtiny2313. Estes são bastante baratos e eu tinha alguns por aí. ATtiny2313 também tem uma interface serial universal e uma interface USART que terá um bom uso nas etapas a seguir. Eu também tinha três expansores de porta de E / S de 16 bits MCP23016 - I2C por aí, apenas a contagem certa! Usei cada expansor de porta para controlar uma cor dos 16 LEDs. Os LEDs… Infelizmente, foram os mais baratos que consegui encontrar. Eles são 48 vermelhos, verdes e azuis ~ 10000mcd 5mm com ângulo de 20 graus. Isso não deveria importar por enquanto, já que este é apenas um protótipo. Apesar disso, o resultado é bastante bom! Estou executando o microcontrolador a 8 MHz. O barramento I2C tem clock de 400 kHz. A frequência de comutação do LED é de cerca de 400 Hz. Dessa forma, se eu sou capaz de acionar 48 LEDs sem empurrar ao limite, terei espaço para mais depois!

Etapa 3: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Depois de projetar o circuito, eu o construí em várias placas de ensaio, para fins de prototipagem. Depois de várias horas cortando fios e montando o circuito, obtive este resultado: Uma placa de ensaio gigante com 48 LEDs e toneladas de fio!

Etapa 4: Controle?

Ao controle?
Ao controle?

Esta é a parte mais desafiadora do projeto. Eu queria fazer um algoritmo de controle genérico o suficiente para lidar com padrões / sequências e também controlar o brilho e a cor de cada LED. Para controlar os LEDs, tenho que enviar ao MCP23016 um quadro de 4 bytes (1 byte = 8 bits). Um byte com o endereço do IC correspondente à cor, 1 byte com o comando "escrever" e 2 bytes com o valor dos 16bits (LEDs). O IC é conectado aos LEDs como "dissipador", ou seja, um valor lógico 0 no pino acenderá o LED. E agora a parte desafiadora, como fazer o controle PWM para 48 LEDs? Vamos estudar o PWM para um LED! PWM explicou na Wikipedia. Se eu quiser o brilho do LED em 50%, meu valor de PWM é 50%. Isso significa que o LED, em um período de tempo, deve estar ligado na mesma quantidade de tempo que desligado. Vamos dar um período de 1 segundo. PWM de 50% significa que neste 1 segundo, o tempo de ativação é de 0,5 segundos e o tempo de desativação é de 0,5 segundos. PWM de 80%? 0,2 segundos desligado, 0,8 segundos ligado! Fácil, certo? No mundo digital: Com período de 10 ciclos de clock, 50% significa que por 5 ciclos o LED fica aceso e por outros 5 ciclos o LED fica apagado. 20%? 2 ciclos ligados, 8 ciclos desligados. 45%? Bem, não podemos realmente obter 45% … Como o período é em ciclos e temos apenas 10 ciclos, só podemos dividir o PWM em passos de 10%. Isso significa que a evolução do pino deve ser, para 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Ou ainda 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Na programação podemos fazer esta sequência de ligar e desligar um array. Para cada ciclo, emitimos para o pino o valor do índice em que o ciclo é. Eu fiz sentido até agora? Se quisermos fazer LED0 50% e LED1 20%, podemos adicionar os dois arranjos. Para acionar o pino LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Para acionar o pino LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Resultando em LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Enviando essa sequência de números no IC do expansor de porta, obteríamos o LED0 com 50% de brilho e o LED1 com 20% !! Simples para 2 LEDs, certo? Agora temos que fazer isso para 16 LEDs, para cada cor! Para cada uma dessas matrizes, temos uma combinação de brilho para cada cor (16 LEDs) Cada vez que queremos outra combinação de cores, temos que alterar esta matriz.

Etapa 5: Tornando mais fácil

Tornando mais fácil!
Tornando mais fácil!
Tornando mais fácil!
Tornando mais fácil!

A etapa anterior é muito trabalhosa para fazer uma sequência simples … Então decidi fazer um programa, onde dizemos as cores de cada LED em uma etapa da sequência e obtemos as três matrizes da etapa. Fiz este programa em LabView devido a limitações de tempo.

Etapa 6: primeiras experiências

Primeiras experiências
Primeiras experiências

Carregando várias etapas no microcontrolador e obtemos algo assim: Desculpe a má qualidade dos vídeos! Eu defini o número máximo de etapas de uma sequência para 8, e limitei o PWM para saltos de 20%. Essa decisão é baseada no tipo de controle que estou usando e na quantidade de EEPROM que o ATtiny2313 tem. Nesses experimentos, tentei ver que tipo de efeitos eu poderia fazer. Devo dizer que estou satisfeito com o resultado!

Etapa 7: Controle em tempo real

Controle em tempo real
Controle em tempo real
Controle em tempo real
Controle em tempo real
Controle em tempo real
Controle em tempo real

Conforme mencionado nas etapas anteriores, desejo me comunicar com todos os microcontroladores que controlam os LEDs em minha sala. Usei a interface USART disponível no ATtiny2313 e conectei ao meu computador. Também fiz um programa em LabView para controlar a barra de LED. Neste programa posso dizer ao microcontrolador quanto tempo é a sequência, a cor de cada LED e o tempo entre as etapas de uma sequência. No próximo vídeo irei demonstrar como posso mudar a cor dos LEDs e definir sequências.

Etapa 8: Conclusões

Conclusões
Conclusões
Conclusões
Conclusões
Conclusões
Conclusões
Conclusões
Conclusões

Acho que tive sucesso nesta primeira abordagem do meu projeto. Sou capaz de controlar 16 LEDs RGB com poucos recursos e restrições. É possível controlar cada LED separadamente, criando qualquer sequência desejada.

Trabalho futuro:

Se eu receber feedback positivo das pessoas, posso desenvolver ainda mais essa ideia e fazer um Kit Eletrônico DIY completo, com placas de circuito impresso e instruções de montagem.

Para minha próxima versão, irei: - Mudar o microcontrolador para um com ADC - Mudar o MCP23016 por algum outro tipo de saída paralela serial que possa absorver mais corrente dos LEDs - Fazer um software de código aberto para se comunicar com o microcontrolador e controlar os LEDs - Desenvolver a comunicação entre vários microcontroladores.

Você tem alguma sugestão ou pergunta? Ou deixe um comentário!

Finalista do Let It Glow!

Recomendado: