Índice:

Luzes de festa portáteis: 12 etapas (com fotos)
Luzes de festa portáteis: 12 etapas (com fotos)

Vídeo: Luzes de festa portáteis: 12 etapas (com fotos)

Vídeo: Luzes de festa portáteis: 12 etapas (com fotos)
Vídeo: Softbox Como Usar - Review Softbox Sou Foto 50x70cm 2024, Novembro
Anonim
Image
Image
A ideia
A ideia

Projetos Tinkercad »

Você pode iluminar uma festa e torná-la mais divertida?

Essa era a questão. E a resposta é SIM (claro).

Este instrutível é sobre como fazer um dispositivo portátil que ouve música e cria a visualização da música a partir de anéis concêntricos de LEDs Neopixel.

Foi feita uma tentativa de fazer o dispositivo "dançar", ou seja, mover-se no ritmo da música, mas a detecção de batida provou ser uma tarefa mais complicada do que parece (sem trocadilhos), então "dançar" é um pouco estranho, mas ainda está lá.

O dispositivo é habilitado para Bluetooth e responderá a comandos de texto. Não tive tempo de escrever um aplicativo para controlar Party Lights (Android ou iOS). Se você está à altura da tarefa - por favor me avise !!!

Se você gosta deste instrutível, vote nele no concurso Make It Glow!

Suprimentos

Para construir luzes de festa, você precisará de:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Módulo para Arduino (link aqui) - o cérebro do dispositivo. Esses dispositivos relativamente baratos são tão poderosos que não fica claro por que você voltaria para um Arduino.
  • MSGEQ7 Band Graphic Equalizer IC DIP-8 MSGEQ7 (link aqui)
  • Módulo Bluetooth HC-05 ou HC-06 (link aqui)
  • Microfone Adafruit MAX9814 (link aqui)
  • Um servo motor padrão (link aqui) é que você deseja que seu dispositivo "dance"
  • CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (link aqui)
  • TTP223 Touch Key Module Capacitive Settable Self-Lock / No-Lock Switch Board (link aqui)
  • Ultra Compact 5000-mah Dual USB Outputs Super Slim Power Bank (link aqui)

  • Resistores, capacitores, fios, cola, parafusos, placas de prototipagem, etc. etc.

Etapa 1: a ideia

A ideia
A ideia

A ideia é ter um dispositivo portátil que pudesse ser colocado próximo a uma fonte de música e que criasse visualizações musicais coloridas. Você deve ser capaz de controlar o comportamento do dispositivo por meio de botões (toque) e Bluetooth.

Atualmente, a Party Lights tem 7 visualizações implementadas (diga-me se tiver mais ideias!):

  1. Círculos concêntricos coloridos
  2. Cruz maltesa
  3. Luzes pulsantes
  4. Lareira (minha favorita)
  5. Luzes de corrida
  6. Árvores claras
  7. Segmentos laterais

Por padrão, o dispositivo percorrerá as visualizações a cada minuto. No entanto, um usuário pode optar por manter uma visualização e / ou percorrê-la manualmente.

As visualizações que giram sua paleta de cores também podem ser "congeladas" se o usuário gostar de uma combinação de cores específica.

E com mais alguns controles, o usuário pode alterar a sensibilidade do microfone e habilitar / desabilitar o modo de "dança" do servo motor.

Etapa 2: esquemático e processamento de som

Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som
Esquemático e processamento de som

Um arquivo esquemático fritzing está incluído no pacote no Github na subpasta "arquivos".

Basicamente, um chip MSEQ7 faz o processamento de áudio, dividindo um sinal de áudio em 7 bandas: 63Hz, 160Hz, 400Hz, 1kHz, 2,5kHz, 6,25kHz e 16kHz

O microcontrolador usa essas 7 bandas para criar várias visualizações, basicamente mapeando as respectivas amplitudes de banda em intensidade de luz LED e combinações de cores.

A fonte de som é um microfone com 3 níveis de controle de ganho. Você pode percorrer as configurações de ganho usando um dos botões, dependendo da distância / volume da fonte de som.

O microcontrolador também tenta realizar a detecção de "batida" na banda de "baixo" de 63 Hz. Ainda estou trabalhando em uma maneira confiável de detectar e manter o alinhamento da batida.

O uso de botões de "toque" foi uma experiência. Acho que funcionam muito bem, no entanto, a falta de feedback da imprensa é um pouco confusa.

Etapa 3: roda de LED

Roda LED
Roda LED
Roda LED
Roda LED
Roda LED
Roda LED

O núcleo da visualização é uma roda de 61 LED.

Observe que a peça vem como anéis individuais que você terá que montar. Eu costumava pensar em fios de cobre para linhas de energia (que também mantêm os anéis juntos) e fios de sinal finos.

Os LEDs são numerados de 0 a 60, começando no LED externo inferior e indo no sentido horário para dentro. O LED central é o número 60.

Cada visualização depende de matrizes de dados bidimensionais, que mapeiam cada LED em uma posição específica para o segmento de visualização de destino.

Por exemplo, para círculos concêntricos, existem 5 segmentos:

  • Círculo externo, LEDs 0 - 23, 24 LEDs de comprimento
  • Segundo círculo externo, LEDs de 24 a 39, 16 LEDs de comprimento
  • Terceiro círculo (centro), LEDs 40 - 51, 12 LEDs de comprimento
  • Segundo círculo interno, LEDs 52 - 59, 8 LEDs de comprimento
  • LED interno, LED 60, 1 LED longo

A visualização mapeia 5 dos 7 canais de áudio e acende LEDs progressivamente de acordo com sua posição na banda circular proporcional ao nível de som na banda.

Outras visualizações usam estruturas e formatos de dados diferentes, mas a ideia é sempre ter visualizações conduzidas pelos arrays de dados, não tanto pelo código. Desta forma, as visualizações podem ser ajustadas para diferentes formas (mais ou menos LEDs, mais bandas de EQ) sem alterar o código, apenas os valores nas matrizes de dados.

Por exemplo, é assim que a estrutura de dados para a visualização 1 se parece no esboço:

// Visualização 1 e 3 - 5 círculos completos byte TOTAL_LAYERS1 = 5; const byte LAYERS1 [TOTAL_LAYERS1] [25] = {// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 {24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, {16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, {12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}, {8, 52, 53, 54, 55, 56, 57, 58, 59}, {1, 60}};

Etapa 4: visualizações

Visualizações
Visualizações
Visualizações
Visualizações
Visualizações
Visualizações
Visualizações
Visualizações

Até agora, existem 7 visualizações e uma animação de inicialização:

Animação inicial

Quando o aparelho é ligado, uma imitação de fogo de artifício é exibida. Era para ser uma sequência de teste de LED e Servo, mas posteriormente evoluiu para uma versão animada de tal teste

Círculos concêntricos coloridos

As luzes circundam o display em círculos concêntricos proporcionais à amplitude da respectiva banda de eq. Alternar aleatoriamente entre horário e anti-horário e girar lentamente as cores sobre a roda de 256 cores

Cruz maltesa

Uma banda é o LED central. Outra banda são as linhas verticais e horizontais dos LEDs, e os segmentos restantes representam cada uma uma banda de EQ. Todos os segmentos estão girando cores em deslocamento de 128 para manter o contraste.

Luzes pulsantes

Cada círculo acende todos os LEDs em uníssono para uma banda de eq dedicada, enquanto gira lentamente as cores com um ligeiro deslocamento. As bandas de EQ são progressivamente deslocadas de um círculo para o próximo, criando uma progressão externa.

Lareira

As faixas são semicírculos iluminados de baixo para cima, começando com um vermelho brilhante e adicionando amarelo no caminho para cima, simulando um incêndio em uma lareira. Ocasionalmente, "faísca" branca brilhante dispara aleatoriamente. Não há rotação de cor

Luzes de corrida

Cada círculo concêntrico é uma banda de EQ separada. Os LEDs principais são aqueles na linha vertical abaixo do LED central. Uma vez que o LED é aceso proporcionalmente à amplitude da banda, ele começa a "correr" ao redor do respectivo círculo, diminuindo lentamente a intensidade. As rotações no sentido horário e anti-horário são suportadas, alternando aleatoriamente.

Árvores claras

Os segmentos são iluminados em uma linha reta do LED inferior para cima e, em seguida, lateralmente em semicírculos concêntricos que imitam palmeiras. Rotação de cores.

Segmentos laterais

Esta é uma versão da cruz de Malta anterior com apenas 2 segmentos diagonais usados. Supostamente se assemelha ao ícone das ondas sonoras.

Etapa 5: controles do botão de toque

Controles de botão de toque
Controles de botão de toque

Existem 4 botões sensíveis ao toque:

  1. Percorrer as visualizações e manter a atual até que outra seja escolhida (por padrão, as visualizações são alternadas a cada 30 segundos)
  2. "Congelar" / "descongelar" o esquema de cores atual - se você gosta de uma combinação de cores em particular, você pode congelá-la - a rotação de cores é desativada e a visualização continuará apenas com esta paleta de cores
  3. Ajuste a sensibilidade do microfone
  4. Ligue / desligue o "modo de dança"

No modo de dança, o dispositivo tentará detectar a "batida" da música que está tocando e girar a cabeça de acordo com a batida. Até agora, a "dança" está um pouco estranha do que bonita, para ser honesto.

Etapa 6: detecção de batida e "dança" do servo

Detecção de batida e servo
Detecção de batida e servo

O dispositivo está constantemente tentando detectar a "batida" da melodia atual como uma distância entre picos consecutivos da banda de 63Hz. Uma vez detectado (e apenas se o modo de dança estiver LIGADO), o dispositivo irá ativar seu servo motor para virar aleatoriamente para a esquerda ou direita de acordo com a batida.

Quaisquer ideias brilhantes sobre como tornar isso mais confiável são bem-vindas!

O sketch 'Music_Test_LED' produz 7 bandas de EQ de uma forma adequada para plotagem usando Arduino IDE.

Etapa 7: Formas 3D

Formas 3D
Formas 3D
Formas 3D
Formas 3D
Formas 3D
Formas 3D

Toda a montagem Party Lights foi projetada do zero usando o Autodesk TinkerCAD.

O design original está localizado aqui. A pasta "files / 3D" em github.com contém os modelos STL.

Este design ilustra como o dispositivo parece montado.

Todos os componentes foram impressos e depois montados / colados.

A "cúpula" hospeda o microcontrolador, a placa Bluetooth e um microfone. O microcontrolador é colocado em uma placa de 40 mm x 60 mm e é apoiado por trilhos designados.

O servo está localizado na "perna" da cúpula, enquanto os botões estão localizados na base.

O compartimento da bateria é impresso especificamente para o tipo de bateria mencionado na seção Suprimentos. Se você optar por usar uma bateria diferente, o compartimento terá que ser redesenhado de acordo.

Etapa 8: Fonte de alimentação

Fonte de energia
Fonte de energia
Fonte de energia
Fonte de energia

Um banco de energia superfino com duas saídas USB Ultra-Compact 5000-mah parece estar fornecendo energia suficiente para horas de operação.

O compartimento da bateria é projetado de forma que se destaque do resto do dispositivo e pode ser substituído por outro projetado para um tipo diferente de bateria.

O plugue USB foi posicionado e colado a quente no lugar para conectar a bateria conforme ela desliza para dentro.

Etapa 9: Controle de Bluetooth

Controle de Bluetooth
Controle de Bluetooth

Um módulo HC-05 é adicionado para fornecer uma maneira de controlar o dispositivo sem fio.

Quando ligado, o dispositivo cria uma conexão Bluetooth chamada "LEDDANCE", com a qual você pode emparelhar seu telefone.

O ideal é que haja um aplicativo que permita controlar o PartyLights (escolher uma paleta de cores, simular o pressionamento de botões, etc.). No entanto, ainda não escrevi um.

Se você estiver interessado em ajudar a escrever um aplicativo Android ou iOS para Party Lights, por favor, me avise!

Para controlar o dispositivo, você pode usar atualmente o aplicativo de terminal Bluetooth e enviar os seguintes comandos:

  • LEDDBUTT - onde é '1', '2', '3' ou '4' simula o pressionamento de um botão respectivo. Ex.: LEDDBUTT1
  • LEDDCOLRc - onde c é um número de 0 a 255 - posição da cor desejada em uma roda de cores. O dispositivo mudará para a cor de LED especificada.
  • LEDDSTAT - retorna um número de 3 caracteres consistindo apenas em '0's e' 1's:

    • primeira posição: '0' - as cores não estão girando, '1' - as cores estão girando
    • segunda posição: '0' - o modo de dança está desligado, '1' - o modo de dança está ligado
    • terceira posição: '0' - microfone está em ganho normal, '1' - microfone está em alto ganho

Etapa 10: controle o aplicativo com base em Blynk

Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk
Aplicativo de controle baseado em Blynk

Blynk (blynk.io) é uma plataforma IoT independente de hardware. Usei o Blynk em meu Sistema de Irrigação Automática de Plantas IoT instrutível e fiquei impressionado com a facilidade e robustez da plataforma.

O Blynk oferece suporte para conexão com dispositivos periféricos via Bluetooth - exatamente o que precisamos para o PartyLights.

Se ainda não o fez, baixe o aplicativo Blynk, registre-se e recrie o aplicativo Blynk PartyLights usando as capturas de tela anexadas a esta etapa. Certifique-se de que as atribuições dos pinos virtuais sejam as mesmas das capturas de tela, caso contrário, os botões do aplicativo não funcionarão como esperado.

O arquivo "blynk_settings.h" contém meu UID Blynk pessoal. Quando você criar seu projeto, ele receberá um novo para você usar.

Faça upload do esboço do PartyLightsBlynk.ino, abra o aplicativo. Emparelhe com um dispositivo Bluetooth e curta a festa.

Etapa 11: Esboços e bibliotecas

Esboços e Bibliotecas
Esboços e Bibliotecas

O esboço principal e os arquivos de suporte estão localizados em Github.com aqui.

As seguintes bibliotecas foram usadas no esboço Party Lights:

  • TaskScheduler - multitarefa cooperativa - aqui (desenvolvido por mim)
  • AverageFilter - filtro médio modelado - aqui (desenvolvido por mim)
  • Servo - controle servo - é uma biblioteca padrão do Arduino
  • WS2812B -Controle NEOPixel - vem como parte do pacote STM32

Esta página do Wiki explica como usar placas STM32 com Arduino IDE.

Etapa 12: melhorias futuras

Melhorias Futuras
Melhorias Futuras

Algumas coisas podem ser melhoradas neste design, que você pode considerar se embarcar neste projeto:

  • Use ESP32 em vez da placa Maple Mini. ESP32 tem 2 CPUs, Bluetooth e pilhas de WiFi, e pode funcionar a 60 MHz, 120 MHz e até 240 MHz.
  • Design menor - o dispositivo resultante é grande. Pode ser mais compacto (especialmente se você abandonar a ideia de dança e o servo associado)
  • A detecção de batida pode ser aprimorada infinitamente. O que vem naturalmente para nós, humanos, parece ser uma tarefa difícil para um computador
  • Muito mais visualizações podem ser concebidas e implementadas.
  • E, é claro, um aplicativo pode ser escrito para controlar o dispositivo sem fio com uma IU interessante.

Recomendado: