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

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Componentes e Materiais

Componente Quantidade
LED RGB Programável APA106, 8 mm 288
Arduino UNO 1
Fio de cobre estanhado 22 AWG 1 rolo
Anéis metálicos de 8 polegadas (≈20 cm) de diâmetro 12
Hastes de acrílico de 12 polegadas (≈30 cm) 10

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

A inspiração veio das inúmeras curvas criadas pela interseção de um cilindro com um plano! Queria criar um show de luzes LED, mas já havia construído vários cubos de LED recentemente. Buscava algo diferente, tanto no hardware quanto no software. E achei que seria um ambiente divertido para programar — com tanto potencial quanto um cubo, mas distintamente diferente!

Escolhi LEDs APA106 programáveis de 8 mm para esta torre. São mais caros que LEDs RGB comuns, mas muito mais fáceis de trabalhar, tanto no hardware quanto no software. Sem registradores de deslocamento — tudo controlado por duas linhas de dados. Sem rotina de serviço de interrupção (ISR) e sem multiplexação entre camadas de LEDs — estes LEDs ficam acesos o tempo todo.

Decidi construir o cilindro/torre como um conjunto de 12 anéis empilhados. Os anéis têm 8" (≈20 cm) de diâmetro, e cada anel contém 24 LEDs espaçados a ~1" (na verdade π × 8 / 24 ≈ 1,05"). Os anéis são separados por 1", então os LEDs ficam a 1" de distância em ambas as direções. Hastes de acrílico fixam os anéis formando a torre.

LEDs APA106 consomem até 60 mA no brilho máximo e branco. No pior caso, a torre consumiria 17 A! Mas estes LEDs são tão brilhantes que raramente uso brilho acima de 10% no software. E acender a torre toda em branco praticamente não ocorre. Na prática, nunca tive problemas alimentando pela porta USB. Se quiser fonte externa, 2 A são suficientes.

Construção

Encontrei anéis metálicos de 8" na Amazon que serviram como base para meus anéis de LED. Foi uma surpresa agradável descobrir que se pode soldar neles facilmente! "Facilmente" é relativo — o anel é pesado e requer muito calor. Meu ferro de 40 W ficou no máximo e precisou ficar 5-10 segundos antes do estanho derreter. Primeiro estanhei o anel antes de soldar o LED, e sempre usei dissipadores tipo clipe nos terminais dos LEDs.

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Antes de soldar os LEDs no anel, você deve conformar os terminais de 24 LEDs conforme o diagrama abaixo:

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Como parte da conformação, dobrei levemente a ponta do terminal de GND. Isso facilita a identificação e a fixação no anel.

Outro passo preparatório: marque 24 espaços iguais no anel onde os LEDs serão colocados. Também precisei prender o anel verticalmente durante a solda. Usei a engenhoca abaixo para segurá-lo:

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Após soldar alguns LEDs no anel, conecte os terminais Data-In aos Data-Out conforme mostrado abaixo. Sempre use dissipadores tipo clipe para proteger os LEDs.

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Quando todos os LEDs estiverem no anel, você terá um Data-In para o anel inteiro, com o Data-Out do lado oposto pronto para ir ao próximo anel acima. Neste ponto, conecte todos os terminais +5V com um pedaço reto de fio de cobre estanhado 22 AWG. Estique um pedaço de 26" (≈66 cm) prendendo uma ponta no torno e puxando a outra com alicate. Depois fixe nos LEDs conforme mostrado:

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Com um anel pronto, teste-o usando o sketch de teste incluído. Testar agora é crucial — muito mais fácil corrigir um LED defeituoso ou solda fria agora do que no meio da torre pronta! Teste conectando o Data-In livre ao pino 6 do UNO. O sketch de teste incluído difere um pouco do vídeo, mas mostra se o anel funciona.

Agora faça mais 11 anéis. É muito trabalho, mas com prática você reduz o tempo para algumas horas por anel.

Importante: Os LEDs de cada anel devem alinhar-se com os dos outros anéis. Se o espaçamento for perfeito, não há problema, mas tive pequenas variações que me obrigaram a usar um anel como molde para os outros, sempre colocando o Data-In livre no mesmo lugar. (Se olhar de perto minha torre, os dois primeiros anéis não alinham bem. Depois disso, usei o método do molde com resultado muito melhor.)

Com pelo menos 4 anéis prontos, inicie a montagem da torre. A montagem inicial dos 4 anéis inferiores é a parte mais crítica — não queremos uma Torre de Pisa! Para unir os anéis, use espaçadores de 22 mm de altura para criar o espaçamento de 1". Usei espaçadores impressos em 3D (plástico preto), mas cavilhas de 1/4" funcionariam igual. Para fixar os espaçadores, usei um pouco de Blue Tack (adesivo temporário).

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Os anéis são unidos por seis hastes de acrílico de 12". É crucial alinhar tudo exatamente antes de colar. Uma vez coladas as hastes com cola quente, é quase impossível fazer alterações. Deite a torre de lado e cole as hastes nos anéis. A foto abaixo mostra os 4 primeiros anéis com as 3 primeiras hastes. Mais 3 foram adicionadas, totalizando 6. As hastes ficam entre os LEDs, com 4 LEDs entre cada haste.

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Com todas as hastes fixadas, remova os espaçadores (podem ser reutilizados nos anéis seguintes). Quando todos os 12 anéis estiverem no lugar, conecte terra, +5V e linhas de dados entre anéis usando fio de cobre estanhado 22 AWG. Os barramentos de alimentação ligam todos os 12 anéis em paralelo.

Há duas linhas de dados, cada uma com 144 LEDs — uma para os 6 anéis superiores (vai ao pino 6 do UNO) e outra para os 6 inferiores (pino 7). Cada linha começa no anel mais baixo e sobe até o topo. Originalmente planejei uma única linha de dados, mas a partir do anel 8 comecei a ver flashes estranhos. Pensei que fosse a alimentação, mas capacitores nos trilhos não ajudaram. Dividir em duas linhas de dados resolveu o problema.

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Acima, a torre finalizada. O Arduino UNO fica na base. Usei minhas 4 hastes de acrílico restantes para suspender o UNO, colando tudo com cola quente. Uma alternativa seria montar a torre sobre uma base com o UNO dentro. São 4 conexões ao UNO: terra e +5V (comuns a todos os 12 anéis) e as duas linhas de dados nos pinos 6 e 7.

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Software

LEDs programáveis como APA106 são fáceis porque várias bibliotecas lidam com o timing dos pulsos de dados. Em projetos anteriores com APA106 (meu 2º cubo RGB 5x5x5 e o projeto de arte triangular), usei a popular biblioteca NeoPixel da Adafruit. Mas para esta torre, escolhi a biblioteca FastLED. Tem ótimos recursos, funções matemáticas rápidas que achei úteis, e permitiu substituir minha paleta arco-íris rústica de 43 passos por uma de 256 passos. Centenas de funções, paletas predefinidas e outros recursos que não usei aqui, mas ótimos para projetos futuros. Outro recurso muito útil da FastLED é a facilidade para fazer fades (transições suaves).

Sempre gosto de ter uma função para especificar facilmente um LED e sua cor. Nesta torre, precisa ser setColor(anel, posição, cor), onde anel é qual anel e posição é qual posição naquele anel. Esta rotina lida com toda a conversão de qual linha de dados o LED está e sua posição na cadeia.

Uma ferramenta poderosa da FastLED é sua classe de objeto com todas as cores nomeadas da web. Basta especificar a cor como CRGB::HotPink, onde CRGB é a classe e HotPink o membro. Mas membros de classe são chatos de digitar e passar como parâmetros, então usei #define para criar uma pequena paleta de cores nomeadas que posso referenciar apenas pelo nome, sem o CRGB::.

Tenho outra função que define a cor de um LED específico como matiz de paleta arco-íris de 0 a 255. Entre essas duas funções, posso facilmente especificar 10 cores nomeadas ou gerar uma paleta arco-íris suave para qualquer LED da torre.

Outra função básica que criei foi rotate(anel, direção), que rota o conteúdo de qualquer anel. Cada chamada é um passo, mas pode rotacionar a torre inteira, ou partes em direções opostas, criando efeitos interessantes.

Sobre a FastLED: ela suporta diretamente os LEDs APA106 que uso. Embora a NeoPixel da Adafruit também funcionasse, precisei experimentar a configuração. Com FastLED, a configuração é automática apenas especificando APA106 como tipo de LED.

Como disse no início, um dos efeitos mais interessantes é a interseção entre um cilindro e um plano. Inicialmente pensei em fazer isso na hora com matemática. Mas há dúvidas se o UNO é rápido o suficiente, e fazer via tabelas foi bem fácil, então optei por tabelas. Basicamente, esta tabela acende a interseção de um plano com a torre em 18 ângulos diferentes, e a altura da interseção pode variar. Você verá os resultados em vários pontos do show.

Usei a mesma abordagem de tabelas para criar várias interseções de um cilindro com uma esfera. Funcionou, mas não tão eficaz quanto a interseção com plano. Há um efeito no show que usa isso. Ambas as tabelas ficam na memória de programa (PROGMEM), não consumindo RAM.

Três sketches para o UNO estão incluídos no pacote de software:

  1. Teste rápido para um único anel.
  2. Prévia de 45 segundos do show.
  3. Show completo de 8 minutos com 16 efeitos/animações diferentes.

Todos os três são mostrados em vídeos nesta página (embora o teste de anel difira um pouco do vídeo).

Uma última coisa sobre software: No final do loop principal, onde as animações são chamadas, adicionei um reset por software. Normalmente não seria necessário, mas tenho um bug algures. Sem o reset, após várias passagens por todas as animações, o programa trava. Provavelmente algo não sai da pilha na RAM quando deveria. Pode até ser problema na biblioteca FastLED. Nunca encontrei a causa, e o reset por software garante operação contínua, embora não seja a solução mais elegante.

Código

Esquemático

Torre de LED Artística: Cilindro RGB Programável com 288 LEDs APA106

Processo de manufatura

  1. Tecnologia de Turbinas Eólicas: História, Design e Impacto Futuro
  2. Construa Seu Próprio LUMAZOID: Visualizador de Música DIY com Arduino
  3. Construa seu Próprio Jogo UFO Attack com Arduino UNO e Display MAX7219
  4. Construa Seu Próprio Jogo de Roleta com 37 LEDs e Arduino Nano
  5. Projeto Arduino: Melodia Coffin Dance – Construa e Toque a Música Viral
  6. Relógio 3D RGB Arduclock – Bluetooth, LEDs Endereçáveis e RTC
  7. Monitor de Saúde de Rios: Sistema de Qualidade da Água Baseado em Arduino
  8. Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
  9. Jogo Interativo com Joystick e Arduino – Feedback com LEDs
  10. Relógio Analógico Estilo POV com LEDs – Projeto DIY Arduino Nano