Índice:

Digispark e WS2812 Rainbow Wheel in a Box: 4 etapas (com imagens)
Digispark e WS2812 Rainbow Wheel in a Box: 4 etapas (com imagens)

Vídeo: Digispark e WS2812 Rainbow Wheel in a Box: 4 etapas (com imagens)

Vídeo: Digispark e WS2812 Rainbow Wheel in a Box: 4 etapas (com imagens)
Vídeo: Rainbow wheel, wooden box (8x WS2812, DigiSpark, NeoPixel) 2024, Novembro
Anonim
Image
Image
Digispark e WS2812 Rainbow Wheel in a Box
Digispark e WS2812 Rainbow Wheel in a Box
Digispark e WS2812 Rainbow Wheel in a Box
Digispark e WS2812 Rainbow Wheel in a Box

Este projeto minúsculo foi feito em torno de uma caixa de madeira 10x6x5cm bem entalhada que encontrei em uma loja.

Sua melhor característica, que não foi capturada corretamente pela câmera, é iluminar com cores brilhantes e saturadas as laterais da tampa entalhada em árvore da caixa.

Por outro lado, esteja ciente de que usar um efeito arco-íris em uma faixa de LEDs RGB 5050 estreitos sempre resultará em uma iluminação esbranquiçada a alguns centímetros dos LEDs, pois a cor de cada pixel logo se mistura com a de seus vizinhos. Se você quiser evitar este efeito, você pode tentar usar algumas lentes de foco

O brilho da lâmpada é mantido proporcional à luz ambiente graças a um LDR: a lâmpada brilhará em condições de luz do dia e não será muito brilhante quando usada como uma luz noturna, no escuro.

Suprimentos

Lista de materiais:

  • uma placa Attiny85 Digispark (clone), com seu bootloader Micronucleus
  • uma barra WS2812 8x
  • um LDR, usado para ajustar o brilho da lâmpada dependendo do ambiente
  • um resistor pull-up de 10KΩ para o LDR
  • um micro cabo USB para programar o Digispark e para ligar a lâmpada uma vez feito
  • uma caixa de madeira oca
  • uma fonte de alimentação de 5V⎓ (capaz de fornecer não menos que 500mA)

Habilidades e ferramentas:

  • PlatformIO (rodando no Visual Studio Code) como IDE - qualquer Arduino IDE fará o trabalho, embora
  • um ferro de solda, algum fio de solda e habilidades básicas de solda
  • alguma fiação, tesoura
  • alguma cola, pinça
  • um pouco de tinta opaca (para cobrir o LED Digispark e para proteger o LDR de ser influenciado pela luz da lâmpada)

Etapa 1: Digispark e PlatformIO

Digispark (e todos os clones envolvendo o mesmo microcontrolador de 8 bits) é uma placa de breakout construída em torno de um AVR Attiny85, capaz de comunicação USB direta graças a um bootloader Micronucleus. Encontre mais informações em seu wiki:

PlatformIO é o ecossistema que usei para programar o Digispark. Para trabalhar com isso, você deve instalar o Visual Studio Code

Etapa 2: esquema e fiação

Esquemático e fiação
Esquemático e fiação
Esquemático e fiação
Esquemático e fiação
Esquemático e fiação
Esquemático e fiação

De solda

  1. conecte três fios à barra WS2812 (terra, entrada de energia e entrada de dados)
  2. fio terra e Vcc para 5V e pino GND do Digispark
  3. soldar o fio restante ao pino P0 do Digispark
  4. soldar um resistor de 10KΩ aos pinos GND e P2 da placa
  5. use dois fios para conectar o LDR aos pinos 5V e P2 (usei fios esmaltados pouco visíveis por razões estéticas)

Etapa 3: Firmware

Encontre o código para este projeto em meu GitHub:

Bom saber:

  • #include deve ser usado ao trabalhar com PlatformIO
  • os parâmetros, como atribuição de pinos, número de LEDs WS2812, velocidade da roda do arco-íris e limiares de escuro / claro para LEDs e LDR estão no início do código
  • Adafruit Neopixel é a biblioteca usada para controlar os LEDs WS2812
  • A biblioteca RunningMedian é usada para tornar as leituras de LDR mais estáveis; devido aos limites definidos, mapeamento dos limites de brilho do LED, isso é especialmente bom em condições de baixo brilho, onde uma pequena flutuação pode resultar em uma oscilação irritante
  • Você não encontrará nenhuma tentativa de travar o Attiny85, então o projeto permanecerá editável

Algumas dicas (que aparecem também no arquivo README.md no GitHub):

  • Para fazer upload do código, certifique-se de ter um cabo USB com cada pino conectado: cabos de carregamento baratos geralmente têm apenas + 5V e aterramento
  • O upload do PlatformIO para o DigiSpark exige que você conecte o DigiSpark após a compilação, embora o console não avise "agora é hora de conectar o DigiSpark", como o Arduino IDE faz.
  • Correção rápida para o problema de upload para DigiSpark de PlatformIO no MacOS: PIO problema 111
  • Carregadores USB baratos podem fornecer saída suja / barulhenta, o que pode fazer os LEDs piscarem estranhamente, especialmente com baixo brilho: certifique-se de ter uma fonte de 5 VCC limpa, ou para filtrar adicionando um capacitor (ou um circuito mais adequado)

Etapa 4: Revestimento e toque de acabamento

Revestimento e toque de acabamento
Revestimento e toque de acabamento
Revestimento e toque de acabamento
Revestimento e toque de acabamento
Revestimento e toque de acabamento
Revestimento e toque de acabamento
  • Faça um buraco na caixa de sua escolha para hospedar o projeto, para conectar seu cabo USB. Esteja ciente de que quanto maior o orifício ao redor do conector micro USB, maior será o vazamento de luz de sua barra de LED, a menos que você não forneça alguma vedação opaca.
  • Faça um buraco para o LDR; certifique-se de não apontar para a área que será iluminada pelos LEDs, caso contrário, a autorregulação cairá em um loop
  • Grave a superfície interna para abrir espaço para a barra de LED, pois você não deve querer ver diretamente os LEDs enquanto olha para sua lâmpada
  • Vede com um meio opaco a parte inferior do LDR, para evitar qualquer interferência no brilho do ambiente de detecção causada pela barra WS2812
  • Use uma gota de tinta opaca para mascarar o led de energia do Digispark, evitando que brilhe dentro da caixa
  • Cole a placa Digispark, a barra de LED, o LDR e todos os cabos para evitar que o interior da sua caixa oca pareça desarrumado
  • Preveja um cabo USB com um interruptor para ligar e desligar a lâmpada facilmente

Recomendado: