Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Crie um Sistema Ambilight Impressionante para Monitor com Arduino

Componentes e Materiais

Arduino Nano R3 × 1
Arduino UNO × 1
Fita LED Endereçável WS2812 (Digilent) × 1

Aplicativos e Serviços Online

Sobre o Projeto

Olá, amigos! Hoje vou mostrar como fazer um Ambilight para TV/Monitor usando Arduino. Este é um projeto muito fácil.

Não entrarei em muitos detalhes sobre o funcionamento de cada parte, pois já escrevi informações no meu blog: diiprojectslab.com. Mas você conseguirá fazer funcionar com as informações aqui.

O que você precisa:

Nota importante: Linux ou Mac não são suportados. O software Ambibox usado aqui só roda no Windows. (Para aplicações standalone existe variante com Raspberry Pi, mais cara).

Os LEDs funcionam muito bem sem lag perceptível no desktop e ao assistir filmes! Jogos são outra história: se o jogo rodar em modo tela cheia, o software na maioria das vezes não consegue capturar a imagem. Mas modo janela sem bordas (borderless) funciona! (Considere o CPU extra necessário ~5%)

Passo 1: Materiais Necessários

Passo 2: LEDs RGB

A parte mais importante são os LEDs RGB com controladores individuais. Não importa qual controlador você compre, desde que seja suportado pela biblioteca FastLED. Lista de chips suportados: GitHub FastLED.

Os mais comuns são WS2811 ou WS2812 – baratos e fáceis de usar. Vendidos em dois formatos:

Passo 3: Fixar a Fita LED no Monitor/TV

  1. Meça a parte traseira do monitor para saber quantos LEDs cortar (deixe ~1cm de cada borda)
  2. Corte a fita no comprimento desejado – cada LED é individualmente endereçável, corte nos pontos marcados
  3. Reconecte as 4 tiras para agir como uma única fita flexível (solde +5V, DIN, GND em sequência)
  4. DICA CRÍTICA: Verifique se as setas de direção da fita estão na orientação correta, senão não funcionará!

Passo 4: Conectar o Arduino

Passo 5: Conexões Resumidas

Para LEDs WS2811/12, apenas 3 conexões:

  1. 5V da fonte → 5V dos LEDs
  2. GND da fonte → GND do Arduino → GND dos LEDs
  3. Linha de dados dos LEDs → uma porta digital do Arduino (lembre o número!)

Passo 6: Software

  1. Baixe o código Adalight para Arduino (abaixo)
  2. Abra na Arduino IDE e instale a biblioteca FastLED antes
  3. No código, defina o pino (ex: pino digital 4) e quantidade de LEDs (ex: 60)
  4. Compile, selecione a porta COM e faça upload
  5. Configure o Ambibox: ajuste cores para combinar com a parede (no meu caso, branca)
  6. Reproduza um vídeo de teste RGB e pronto!

Agora você pode assistir filmes com efeitos AMBILIGHT – incrível! O app também tem efeito sonoro: LEDs piscam conforme a música.

Código

Código Arduino (baseado em Adalight/FastLED)

#include "FastLED.h"
#define NUM_LEDS 240
#define DATA_PIN 6
#define serialRate 115200

// "Magic Word" do protocolo Adalight
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
  
  // Sequência de inicialização RGB
  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);
  Serial.print("Ada\n"); // Envia "Magic Word" para o host
}

void loop() {
  // Aguarda "Magic Word" (3 bytes: 'A','d','a')
  for (i = 0; i < sizeof prefix; ++i) {
    waitLoop:
    while (!Serial.available());
    if (prefix[i] == Serial.read()) continue;
    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();

  // Verifica checksum
  if (chk != (hi ^ lo ^ 0x55)) { i = 0; goto waitLoop; }

  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));

  // Recebe dados RGB para cada LED
  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;
  }

  FastLED.show(); // Atualiza LEDs
}

Esquemático

Crie um Sistema Ambilight Impressionante para Monitor com Arduino

Processo de manufatura

  1. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  2. Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade
  3. Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
  4. Construa um Temporizador Regressivo Confiável com Arduino e Display de 7 Segmentos SparkFun
  5. Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
  6. Monitor de Nível de Sumidouro DIY – Arduino Nano, MPXV5010DP e Display OLED
  7. Construa Seu Próprio Carro RC Porsche com Arduino: Guia Passo a Passo
  8. Criar Tons Musicais com Arduino: Um Guia Passo a Passo
  9. Sistema Avançado de Monitoramento Residencial com Arduino Mega e Sensores IoT
  10. Construa uma Bússola Digital em Tempo Real com Arduino e Processing