Propaganda

luz do centro de mídiaSe você assiste a muitos filmes no seu PC ou central de mídia, tenho certeza de que enfrentou o dilema da iluminação; você apaga completamente todas as luzes? Você os mantém a todo vapor? Ou você usa um interruptor mais escuro para manter um brilho amarelo opaco em algum lugar? Bem, não sofra mais.

Por menos de US $ 100, você pode configurar um sistema de iluminação incrível que refletirá o que está na tela; se o vídeo for uma cena noturna azul, as luzes serão azuis; quando uma labareda de fogo laranja pisca, suas luzes também. Bem-vindo ao mundo da iluminação RGB ambiente.

Componentes

  • Fita de luz RGB - esta é uma faixa de 5 metros de LEDs RGB que podem ser comprados no eBay e enviados de Hong Kong por menos de £ 20 cada. Se você comprar em lojas de eletrônicos, estará pagando a metro e um rolo de 5m custará três ou quatro vezes mais, portanto, compre on-line. Esse tipo de faixa de LED pode ser alterado para qualquer cor, mas apenas de uma vez - elas não podem ser ajustadas individualmente.
  • instagram viewer
  • Fonte de alimentação de 12V - a energia (ampage) necessária depende de quantas faixas de LEDs você conectará. Cada medidor consome aproximadamente 0,6 amperes, mas isso depende da densidade de seus LEDs, portanto, verifique sua faixa de LED específica. 3A seria suficiente para a tira de 5m que liguei acima e fontes de alimentação separadas podem ser compradas por cerca de 10 libras, se você não conseguir uma fonte em outro lugar.
  • 3 x Transistores MOSFET N - você pode provavelmente achar mais barato, mas eu comprei um pacote de 6 (tipo STP16NF06FP) por cerca de £ 10. Eles são usados ​​para isolar a corrente do Arduino - conectar as tiras diretamente ao Arduino iria fritá-la com a quantidade de corrente que elas consomem. Você precisa de 1 transistor MOSFET por canal de cor LED, para vermelho, verde e azul.
  • Arduino O que é o Arduino e o que você pode fazer com ele?O Arduino é um pequeno dispositivo eletrônico notável, mas se você nunca usou um antes, exatamente o que são e o que você pode fazer com um? consulte Mais informação - Não incluí o custo desse item, pois supõe-se que você já tenha um e há uma variedade de clones que você pode comprar se não puder pagar por 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, criaremos um circuito básico do Arduino que ouça os comandos do computador e define os LEDs RGB para uma cor apropriada. O segundo envolve o uso de um novo aplicativo chamado Em processamento e Java no lado do computador - para descobrir quais cores estão atualmente na tela, classificá-las e produzi-las na porta de comunicação serial para o Arduino reagir.

Parte 1: Circuito e Arduino

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

luz do centro de mídia

Sua faixa de LED pode variar, mas se você olhar de perto, verá 12v, R, G, B escrito nos trilhos em algum lugar. Essas tiras podem realmente ser cortadas nesses pontos de cobre (a cada 3 LEDs nos que tenho), portanto, se você quiser cortar as tiras em nos cantos da sua TV, você pode fazer isso com segurança - você também não precisa usar todos os 5 metros, para que você possa ter um pouco para o futuro projeto. Conecte o positivo 12v diretamente à fonte de alimentação externa.

iluminação ambiente dinâmica

Os MOSFETs têm três pinos; portão, drenare fonte. O portão é como o interruptor eletrônico que o Arduino irá controlar. Isso determina a corrente que flui entre a fonte e o dreno. O dreno de cada MOSFET deve ser conectado ao terra do Arduino e ao terra da fonte de alimentação, enquanto a fonte se conecta aos canais de faixa de LED.

iluminação ambiente dinâmica

Quando você completou o circuito, faça o download e execute isso código de teste (originalmente de LadyAda, pinos modificados). Você deve ver sua faixa de LED girar através de uma variedade de cores.

iluminação ambiente dinâmica

Parte 2: Processando

Baixar Em processamento e corra. Você pode se surpreender ao descobrir que parece quase exatamente como o ambiente de desenvolvimento do Arduino; isso ocorre porque o ambiente do Arduino foi baseado nele, embora ambos executem funções diferentes. Pegue este códigooriginalmente por República do Silício mas fortemente modificado por mim para tornar as configurações de tamanho da tela automáticas e com melhor representação de cores - e reserve um momento para examiná-lo. Basicamente, ele usa uma classe Java chamada Robô para fazer uma captura de tela a cada 10ms; ele seleciona cada pixel ímpar e calcula a média da cor total. Se o desempenho é um problema para você, aumente o skipValue variável para 3 ou 4 para pular mais pixels - o efeito geral deve ser o mesmo, mas será executado mais rapidamente ao examinar menos pixels. Por fim, adicionei um filtro que ajuda a saturar a cor aumentando o máximo e diminuindo os valores mínimos de RGB encontrados (sem isso, achei as cores muito brancas).

Execute o aplicativo; Na primeira vez, você provavelmente receberá um erro ao tentar acessar a porta serial errada.

iluminação ambiente dinâmica

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

port = new Serial (este, Serial.list () [4], 9600); // definir taxa de transmissão

Salve e execute novamente; você verá uma pequena janela sendo exibida - isso representa a cor média de tudo na tela. Inicie um aplicativo de pintura ou algo com cores fortes para testá-lo; caso contrário, provavelmente ele exibirá apenas um tom escuro de cinza. Interrompa o aplicativo quando concluir os testes, pois precisamos do acesso à porta serial para programar o Arduino.

luz do centro de mídia

Por fim, carregar este código no seu Arduino. Em vez de enviar cores aleatórias para a faixa de LEDs, esse código lê os valores da porta serial (na qual o Processing está produzindo). É fácil entender, a única parte difícil pode ser o uso de um marcador nos dados seriais:

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

Isso garante a leitura dos valores de bytes corretos - o aplicativo Processing gera um marcador como um "ponto de interrupção" entre cada conjunto de valores para que o Arduino não fique fora de sincronia e pense que o valor verde é para azul etc.

Depois que o código do Arduino é carregado (inicialmente não deve haver saída na faixa de LEDs), você pode carregar e executar o aplicativo Processing; Imediatamente você deverá ver sua luz ambiente funcionando.

Aqui está uma demonstração em vídeo de como tudo funcionou para mim com um videoclipe de viagem aleatório.

O que você acha?! Embora não seja tão impressionante quanto algo que analisa cada parte da tela e usa pixels individuais de LED, é muito mais barato e muito mais brilhante. A única desvantagem disso é que tudo deve ser executado no computador do seu media center - ele não funciona com a transmissão de TV comum ou com o Xbox 360, por exemplo. Se você tiver algum problema, dúvida ou sugestão, pergunte; ou talvez faça um link para um vídeo da sua configuração concluída.

James é bacharel em Inteligência Artificial e possui certificação CompTIA A + e Network +. Ele é o principal desenvolvedor do MakeUseOf e passa seu tempo livre jogando paintball e jogos de tabuleiro em VR. Ele está construindo PCs desde que era criança.