Construa seu próprio iluminação dinâmica ambiente por um media center

luz media centerSe você ver um monte de filmes em seu PC ou centro de mídia, eu tenho certeza que você já enfrentou a iluminação dilemma- você completamente desligar todas as luzes? Você mantê-los em plena explosão? Ou você usar um interruptor para manter um brilho amarelo maçante em algum lugar? Bem, não sofrer mais.

Por menos de US $ 100, você pode configurar um sistema de iluminação surpreendente que vai refletir o que é on-triagem se o vídeo é uma cena da noite azul, as luzes serão azul- quando uma labareda de fogo laranja pisca no, assim que as luzes . Bem-vindo ao mundo da iluminação RGB ambiente.

componentes

  • faixa de luz RGB - Esta é uma faixa de 5 metros de LEDs RGB que podem ser comprados no eBay e enviados a partir de Hong Kong por menos de £ 20 cada. Se você compra em lojas de eletrônicos que você estará pagando pelo medidor e um rolo de 5m vai custar três ou quatro vezes maior do que, assim que comprar online. Estes tipos de tiras de LED pode ser alterado para qualquer cor, mas apenas de uma só vez - eles não podem ser ajustados individualmente.
  • fonte de alimentação 12v - O poder (ampage) necessária depende de como muitas tiras de LEDs você vai ser comunicantes. Cada metro atrai aproximadamente 0,6 amperes, mas isso depende da densidade de seus LEDs isso não deixe de verificar a sua faixa de LED particular. 3A seria suficiente para a faixa de 5m I ligada acima, e fontes de alimentação separadas podem ser comprados por cerca de £ 10, se você não pode adquirir um outro lugar.
  • 3 x transistores MOSFET N - Você pode probaby encontrar mais barato, mas eu comprei um pacote de 6 (Tipo STP16NF06FP) por cerca de £ 10. Estes são usados ​​para isolar a corrente do Arduino - ligar as tiras directamente para o Arduino iria fritar-lo com a quantidade de corrente extraem. Você precisa de um transistor MOSFET por canal de cor LED, para Vermelho, Verde e Azul.
  • Arduino - Eu não incluí o custo desse item como é assumido você já tem um, e há uma variedade de clones que você pode comprar se você não puder pagar um oficial.

O custo total foi, portanto, em torno de £ 40 não incluindo o Arduino.

Introdução

O projeto consiste em duas partes. Primeiro vamos estar criando um circuito básico Arduino que escuta aos comandos do computador, e define os LEDs RGB para uma cor apropriada. A segunda envolve o uso de um novo aplicativo chamado Em processamento e Java no lado do computador - para descobrir o que as cores estão actualmente na tela, média-los, e de saída que a porta de comunicação serial para o Arduino para reagir.

Parte 1: Circuito e Arduino

O circuito que estamos usando é muito simples, como você pode ver a partir do diagrama abaixo. A faixa de LED deve ser fornecido com um plugue macho em uma extremidade que você pode colocar diretamente na placa de ensaio.

luz media center

Sua faixa de LED pode variar, mas se você olhar de perto você verá 12V, R, G, B escrito sobre os trilhos em algum lugar. Estas tiras podem realmente ser cortado nestes pontos de cobre (a cada 3 LEDs sobre os que eu tenho), então se você quer cortar as tiras nos cantos da sua TV você pode seguramente fazer isso - você não precisa usar toda a 5m quer , então você pode ter alguma esquerda para um projeto futuro. Ligue a 12v positiva diretamente à fonte de alimentação externa.

iluminação ambiente dinâmico

Os MOSFETs têm três pins- portão, drenar, e fonte. O portão é como o interruptor eletrônico que o Arduino irá controlar. Este, em seguida, determina o fluxo de corrente entre a fonte e o dreno. O dreno de cada MOSFET deve ser conectado no chão do Arduino, eo chão da fonte de alimentação, enquanto a fonte conecta aos canais de tiras de LED.

iluminação ambiente dinâmico

Quando você tiver completado o circuito, baixar e executar este código de teste (originalmente de LadyAda, pinos modificado). Você deverá ver o seu redemoinho faixa de LED através de uma variedade de cores.

iluminação ambiente dinâmico

Parte 2: Processamento

baixar Em processamento e correr. Você pode se surpreender ao descobrir que parece quase exatamente como o ambiente- desenvolvimento Arduino que é porque o ambiente Arduino foi baseado nele, embora ambos desempenham funções diferentes. Pegue este código - originalmente por República Silicon mas fortemente modificada por mim para fazer as configurações de tamanho de tela automática e com melhor representação de cores - E ter um momento para olhar sobre ele. Basicamente ele usa uma classe Java chamada Robô para fazer uma captura de tela a cada 10ms- Em seguida, ele escolhe cada pixel ímpar e médias a cor total. Se o desempenho for um problema para você, aumentar a skipValue variável para 3 ou 4 para saltar mais pixels - o efeito global deve ser o mesmo, mas ele vai correr mais rápido, uma vez que examina menos pixels. Finalmente, eu adicionei um filtro que ajuda a saturar a cor, aumentando o máximo e diminuindo os valores mínimos RGB encontrados (Sem isso, eu achei as cores a ser demasiado branco). 

Execute o app- pela primeira vez, você provavelmente irá obter um erro enquanto tenta acessar a porta serial errado.

iluminação ambiente dinâmico

Verifique a janela de depuração para uma lista de portas seriais atuais, e anote o número ao lado do que o Arduino está conectado. No meu caso em um Mac, a conexão USB é a porta 4. Altere o número nesta linha para a porta correta:

port = new (this, Serial.list () [4], 9600) de série - // set taxa de transmissão

Salvar e re-de run você deve ver uma pequena janela pop-up - o que representa a cor média de tudo na tela. Lançar um app pintura ou algo com cores fortes para testá-lo, caso contrário ele provavelmente vai apenas exibir uma sombra escura de cinza. Pare o aplicativo quando terminar de testar como precisamos do acesso à porta serial para programar o Arduino.

luz media center

Por último, carregar este código no seu Arduino. Em vez de enviar cores aleatórias para a faixa de LED, este código lê os valores da porta serial (que a transformação é a saída para). É bastante fácil de entender, a única parte difícil pode ser a utilização de um marcador nos dados de série:

if (Serial.available ()> = 4) {if (Serial.read () == 0xff) {vermelho = Serial.read () - verde = Serial.read () - azul = Serial.read () -}}

Isso garante lemos os valores de bytes corretos - o aplicativo de processamento gera um marcador como um "ponto de interrupção" entre cada conjunto de valores para que o Arduino não vai ficar fora de sincronia e pensar que o valor verde é para etc. azul

Uma vez que o código Arduino é carregada (não deve haver nenhuma saída na faixa de LED inicialmente), então você pode carregar e executar o processamento app- imediatamente você deve ver o seu trabalho de luz ambiente.

Aqui está um vídeo de demonstração de como isso funcionou para mim com alguma aleatória vídeo da música trippy.

O que você acha?! Embora não seja tão impressionante como algo que analisa cada parte da tela e usos pixels de LED individuais, é muito mais barato e muito mais brilhante. A única desvantagem para isso é que tudo deve ser executado no seu computador media center - não vai trabalhar com transmissão de TV regular ou o seu Xbox 360, por exemplo. Se você tiver quaisquer problemas, dúvidas ou sugestões, por favor, pergunte ligação away- ou talvez a um vídeo de sua instalação concluída.

» » Construa seu próprio iluminação dinâmica ambiente por um media center