Escolha uma Página

Ambilight com Prismatik e WS2812B

18 ago - 2020

Aprenda a montar com o Arduino e a fita de LEDS WS2812B, um sistema similar ao Ambilight (bias lighting) para o monitor do seu computador. O efeito bias lightning nada mais é do que uma fonte luminosa RGB, posicionada atrás do monitor, que gera um efeito muito interessante para assistir filmes e jogos. Este tipo de efeito, é responsável por reproduzir as cores das extremidades do monitor,  na parede ou superfície atrás do seu monitor. Deste modo, criando um efeito visual em que a sua tela aparenta ser maior do que de fato é.

A parte que mais gostamos desse projeto é que o software de gerenciamento das luzes, além de ser open source, também é compatível com Windows, Linux, Android e Apple OS. Portanto, até mesmo um computador Raspeberry Pi será capaz de executar o software responsável por controlar o sistema eletrônico de efeitos visuais.

 

Fácil de montar e configurar

Este é um projeto com o nível de dificuldade baixo, e requer pouco tempo para montar. As ferramentas necessárias são básicas, ferro de soldar, estanho, alicate, tesoura e cola quente.

O software utilizado para o controle dos LEDs é o Prismatik, para maiores detalhes visite o GitHub do desenvolvedor.

 

Lista de materiais

 

Os materiais acima podem ser substituídos por similares, como, por exemplo, o Arduino NANO pode ser substituído pelo Arduino UNO R3, os fios podem ser de qualquer cor, mas recomenda-se as cores sugeridas para evitar confusões na hora da montagem.

*A demanda por corrente elétrica da fonte irá variar conforme a quantidade de LEDs utilizados, para cada 1 metro de fita de LED WS2812B o seu consumo máximo é da ordem de 14W, ou seja, aproximadamente 3A.

**A quantidade de fita de LEDs irá depender do tamanho da sua tela, neste artigo, para uma tela de 19 polegadas, foi necessário um pouco menos de 1 metro de fita, totalizando 57 LEDs no total.

 

Montagem do sistema de LEDs no seu monitor

Em primeiro lugar, separe as ferramentas necessárias:

  • Ferro de soldar
  • Estanho
  • Alicate
  • Tesoura
  • Cola quente

 

Feito isso, retire o seu monitor do computador, e então coloque-o deitado sobre uma mesa. Com o seu rolo de fita LED WS2812B corte 2 pedaços iguais para a lateral esquerda e direita e um pedaço para parte superior do monitor. Corte os pedaços de fita de forma que se assemelhem a figura 1.

Figura 1: Posicionamento das fitas de LEDs no monitor.

Não recomendamos a instalação da fita de LEDs na parte inferior do monitor, uma vez que isto irá iluminar a sua mesa e poderá causar um efeito indesejado, sobretudo, se a sua mesa for branca, ocorrendo reflexos de luz.

Não cole as fitas no monitor ainda!! Antes, há um passo importantíssimo a ser seguido.

A fita de LED WS2812B é uma fita digital com algumas particularidades. Há 3 terminais na fita, sendo eles positivo, negativo e dados. Uma atenção especial deve ser dada ao terminal de dados, uma vez que os dados devem trafegar em um sentido único ao longo de todos os segmentos de fita do nosso projeto. Observe a figura 2 que ilustra o sentido dos dados ao longo da fita. A grande maioria das fitas possuem setas, que indicam a direção dos dados, ao longo da fita. Caso você inverta o sentido de dados da fita, o projeto não irá funcionar adequadamente.

Figura 2: Observe a seta impressa na fita, esta seta indica o sentido dos dados.

 

Deste modo, somente cole as fitas no monitor após ter certeza de que as fitas fiquem posicionadas de maneira que as setas, de cada segmento de fita, que indicam o sentido do sinal estejam no mesmo sentido conforme a figura 3.

Figura 3: Observe a disposição das fitas, respeitando o sentido do sinal de dados.

 

Após colar os segmentos de fita no monitor, devemos fazer a conexão elétrica entre os segmentos. Para tanto, utilize um ferro de solda, e, lembre-se de manter a ponta do ferro limpa, isto facilita o processo de soldagem. Recorte 2 conjuntos de 3 pedacinhos de fio com comprimento suficiente para interligar os segmentos de fita. Nesta operação é importante se atentar para realizar as conexões corretas entre os segmentos de fita. Isto é, ligue positivo com positivo, dados com dados e negativo com negativo conforme a figura 4.

Figura 4: Após posicionar corretamente as fitas, faça a ligação entre elas com fio e solda.

 

Agora é a hora de colocarmos o nosso Arduino NANO no lugar, observe a figura 5 com o diagrama de montagem.

Figura 5: Diagrama elétrico do circuito.

 

Nesta montagem só iremos utilizar o pino GND e D3 do Arduino. O pino D3 deve ser ligado através de um resistor de 330 ohms ao terminal de dados do primeiro segmento de fita, início dos dados, indicado pela seta de dados ao longo da fita. Já o pino GND do Arduino deve ser ligado ao negativo da fita. Além disto, os terminais positivo e negativo da fita devem ser ligados a fonte de alimentação, respeitando a polaridade.

Para fixar o Arduino, utilize cola quente também, pois, caso queira desmontar o projeto no futuro, a cola quente saí com facilidade.

Figura 6: Aspecto final da montagem do circuito no monitor.

 

Gravando o Sketch no Arduino

Copie e cole o código fonte abaixo na IDE do Arduino, compile e carregue o programa para o seu Arduino. Lembre-se de ajustar na linha 10 (#define NUM_LEDS x) no código fonte o número de LEDs utilizado em sua montagem. No exemplo do artigo utilizamos 57 LEDs.

/*
 * Arduino interface for the use of WS2812 strip LEDs
 * Uses Adalight protocol and is compatible with Boblight, Prismatik etc...
 * "Magic Word" for synchronisation is 'Ada' followed by LED High, Low and Checksum
 * @author: Wifsimster <wifsimster@gmail.com> 
 * @library: FastLED v3.001
 * @date: 11/22/2015
 */
#include "FastLED.h"
#define NUM_LEDS 57
#define DATA_PIN 3

// Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
#define serialRate 115200

// Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;

// Initialise LED-array
CRGB leds[NUM_LEDS];

void setup() {
  // Use NEOPIXEL to keep true colors
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
  
  // Initial RGB flash
  LEDS.showColor(CRGB(255, 0, 0));
  delay(500);
  LEDS.showColor(CRGB(0, 255, 0));
  delay(500);
  LEDS.showColor(CRGB(0, 0, 255));
  delay(500);
  LEDS.showColor(CRGB(0, 0, 0));
  
  Serial.begin(serialRate);
  // Send "Magic Word" string to host
  Serial.print("Ada\n");
}

void loop() { 
  // Wait for first byte of Magic Word
  for(i = 0; i < sizeof prefix; ++i) {
    waitLoop: while (!Serial.available()) ;;
    // Check next byte in Magic Word
    if(prefix[i] == Serial.read()) continue;
    // otherwise, start over
    i = 0;
    goto waitLoop;
  }
  
  // Hi, Lo, Checksum  
  while (!Serial.available()) ;;
  hi=Serial.read();
  while (!Serial.available()) ;;
  lo=Serial.read();
  while (!Serial.available()) ;;
  chk=Serial.read();
  
  // If checksum does not match go back to wait
  if (chk != (hi ^ lo ^ 0x55)) {
    i=0;
    goto waitLoop;
  }
  
  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
  // Read the transmission data and set LED values
  for (uint8_t i = 0; i < NUM_LEDS; i++) {
    byte r, g, b;    
    while(!Serial.available());
    r = Serial.read();
    while(!Serial.available());
    g = Serial.read();
    while(!Serial.available());
    b = Serial.read();
    leds[i].r = r;
    leds[i].g = g;
    leds[i].b = b;
  }
  
  // Shows new values
  FastLED.show();
}

 

Após carregar o sketch, ligue a fita de LEDs na fonte, e dê um reset no seu Arduino, se tudo correr bem, a fita deve piscar em sequência as cores verde, vermelho e azul.

Configurando o software Prismatik

Após fazer o download e instalar o software Prismatik em seu computador, tome nota da porta COM em que o seu Arduino está conectado, você pode obter essa informação na própria IDE do Arduino.

Abra o software Prismatik e clique no botão “Device”, após isto clique em “Run configuration wizard”

Ao abrir o wizard (assistente de configuração) irá aparecer a seguinte tela.

 

Clique em next conforme a figura acima. Na próxima tela, o software irá pedir para que você selecione qual é o tipo de dispositivo conectado. Selecione o dispositivo “Adalight”, conforme a figura abaixo.

 

No próximo passo será necessário configurar a porta COM em que o seu Arduino está conectado, não há necessidade de modificar as demais configurações.

 

Caso o seu computador tenha mais de um monitor instalado, escolha em qual monitor está instalada a fita de LEDs.

 

O próximo passo requer bastante atenção, agora vamos configurar uma região especifica da sua tela para cada LED da fita. Isto é importante para que se tenha um efeito correto, no caso do exemplo deste artigo, o nosso monitor usa 57 LEDs. Observe abaixo a tela de configuração.

 

Configure esta etapa de maneira similar a da imagem, há 3 presets de configuração que podem ser usados, e também há a opção custom. Explore as possíveis disposições, recomendamos a opção custom. Também é possível ajustar a área de captura de cor de cada LED com o botão do mouse. Lembre-se de comtemplar todos os LEDs instalados em seu monitor e também se atentar ao número de LEDs em cada lateral e parte superior do monitor.

 

Agora, vamos calibrar a fita de LEDs para que a reprodução de cores seja a mais fiel possível, você deve ajustar cada canal de cor (verde, vermelho e azul) a fim de que a cor branca exibida pela fita de LEDs se aproxime a cor branca exibida pelo seu monitor.

 

Recomendamos que você faça essa etapa em um ambiente escuro, e com fundo atrás do seu monitor seja da cor branca. Essa configuração de calibração depende de cada sistema (tela + LEDs), portanto você deve ir ajustando por tentativa e erro até chegar ao melhor resultado possível.

Uma boa aproximação inicial consiste em verificar, individualmente, a intensidade de cada cor.

E então, limitar a cor mais intensa (maior luminosidade) para o nível de intensidade das outras duas cores. E assim, seguir  com o processo de calibração.

Não deixem de tirar dúvidas com a gente, é só enviar na seção de comentários. Aguardem os próximos posts da @moduloeletronica aqui no nosso blog!

Rafael Valsani Leme Passos

Rafael Valsani Leme Passos

Sobre o autor: Rafael Valsani Leme Passos é técnico em eletrônica pela ETEC Bento Quirino e graduando em Engenharia de Alimentos pela Universidade Estadual de Campinas. 

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Facebook

VEJA TAMBÉM

Regador automático de plantas com Arduino

Aprenda neste artigo, como automatizar a rega de suas plantas, utilizando o Arduino NANO. Este projeto, além do baixo custo, pode ser montado em menos de uma hora e irá garantir que as suas plantas sempre tenham água disponível, garantido um crescimento adequado e...

Fita de LEDs RGB endereçáveis WS2812B e a biblioteca fastLED

No post de hoje, vamos conhecer a fita de LEDs WS2812B endereçáveis e como utilizá-la com o Arduino UNO.  Essa fita de LEDs se destaca, em relação as outras do mercado, pelo fato de que seus LEDs podem ser controlados de maneira individual, permitindo que o...

NEWSLETTER

Assine nossa newsletter e receba as novidades.

ATENDIMENTO

(19) 3579-7189