Índice:

Jaqueta de show de luzes que reage à música: 7 etapas (com fotos)
Jaqueta de show de luzes que reage à música: 7 etapas (com fotos)

Vídeo: Jaqueta de show de luzes que reage à música: 7 etapas (com fotos)

Vídeo: Jaqueta de show de luzes que reage à música: 7 etapas (com fotos)
Vídeo: Beyoncé - Super Bowl XLVII Halftime Show (Legendado) 2024, Novembro
Anonim
Jaqueta Light Show que reage à música
Jaqueta Light Show que reage à música

Este tutorial foi produzido como parte do meu projeto de último ano para minha graduação em Tecnologia Musical e Eletrônica Aplicada na Universidade de York. Destina-se a músicos com interesse em eletrónica. O produto finalizado será uma matriz de LED nas costas de uma jaqueta que pode produzir um show de luzes de acordo com a música. Isso será feito analisando as entradas de áudio usando Pure Data e Arduino. A jaqueta terá duas configurações que podem ser controladas por um interruptor. Uma configuração controlará os LEDs de acordo com a amplitude da música e a outra fará com que os LEDs pisquem um de cada vez e mudem de cor de acordo com o tom.

Como vai funcionar

Este dispositivo será composto por dois circuitos separados. Um será baseado em um Arduino Mega conectado diretamente a um computador. O outro circuito será baseado em um LilyPad Arduino e será completamente contido dentro da jaqueta e alimentado por uma bateria de 9V. Ambos os circuitos se comunicarão sem fio usando módulos XBee. Os sinais de áudio serão recebidos pelo microfone embutido do computador e analisados no Pure Data para obter dados de amplitude e frequência. Essas informações serão transferidas para o Arduino Mega usando um circuito de entrada MIDI e então serão transmitidas para o LilyPad usando o XBees. O LilyPad irá então determinar como os LEDs na capa irão reagir.

O que você vai precisar

Para o Mega Circuito

  • Arduino Mega 2560
  • Regulado pelo XBee Explorer
  • Antena de rastreamento XBee 1mW - Série 1
  • Escudo de prototipagem para o Mega
  • USB Tipo A a B
  • Cabo USB para MIDI
  • MIDI Socket
  • 1 x resistor 220Ω
  • 1 x resistor 270Ω
  • 1 x diodo 1N4148
  • 1 x 6N138 optoacoplador

Para o circuito LilyPad

  • LilyPad Arduino 328 placa principal
  • LilyPad XBee Breakout Board
  • Antena de rastreamento XBee 1mW - Série 1
  • LilyPad FTDI Basic Breakout Board
  • 72 LEDs LilyPad (uma gama de todas as cores disponíveis, incluindo branco, azul, vermelho, amarelo, verde, rosa e roxo)
  • LilyPad Slide Switch
  • Cabo USB 2.0 A-Macho para Mini-B
  • Bateria 9V
  • Clipe de bateria 9V

De outros

  • Jaqueta
  • Computador com Pure Data e Arduino IDE instalado
  • Fio de Equipamento
  • Equipamento de solda
  • Cortadores de fio
  • Decapantes de fio
  • Agulha com um olho grande
  • Fio
  • Fio Condutivo
  • Tesoura
  • Fita métrica
  • Cola para tecido ou verniz transparente para as unhas
  • Giz ou Delineador Branco
  • Tecido para forro ou camiseta velha
  • Velcro
  • Broca (possivelmente)
  • LED padrão (para teste)
  • Placa de ensaio (para teste)
  • Outro resistor de 220Ω (para teste)
  • Multímetro (para teste)

O custo deste projeto dependerá muito de quanto dos equipamentos acima você já possui. No entanto, é provável que seja algo entre £ 150 - £ 200.

Uma observação rápida - as placas LilyPad são projetadas para serem costuradas diretamente em tecidos e, portanto, soldar um clipe de bateria de 9 V a um pode causar problemas. A conexão pode ser delicada e facilmente quebrada. Você pode obter placas LilyPad projetadas especificamente para baterias AAA ou LiPo que você pode decidir usar. No entanto, ainda optei por seguir a rota de 9V, pois a duração da bateria é maior do que AAA e minha universidade tem restrições ao uso de baterias LiPo.

Etapa 1: Criação do circuito de entrada MIDI

Criação do circuito de entrada MIDI
Criação do circuito de entrada MIDI
Criação do circuito de entrada MIDI
Criação do circuito de entrada MIDI
Criação do circuito de entrada MIDI
Criação do circuito de entrada MIDI

Em primeiro lugar, vamos considerar o circuito de entrada MIDI. Isso precisará ser construído na placa de prototipagem que se encaixará no Arduino Mega. Isso será usado para enviar mensagens MIDI do patch Pure Data para o Mega por meio de seu pino ‘COMMUNICATION RX0’. Veja acima um diagrama de circuito e uma foto. Dependendo da sua placa de prototipagem, seu layout pode ser um pouco diferente, mas optei por colocar o conector MIDI no canto esquerdo inferior. Pode ser necessário usar uma broca aqui para tornar os orifícios na blindagem maiores a fim de caber no soquete. Os fios vermelhos na foto estão conectados a 5V, os marrons estão conectados ao aterramento, o fio preto está conectado ao pino 3 no 6N138, o fio azul está conectado ao pino 2 no 6N138 e os fios amarelos estão conectados ao RX0 alfinete. Espaço é deixado no lado direito da placa de prototipagem para permitir espaço para o XBee mais tarde. Provavelmente será necessário fazer quebras nas trilhas do tabuleiro. Para este exemplo, eles tiveram que ser feitos entre os pinos no 6N138.

Testando o circuito de entrada MIDI

Para testar o circuito, carregue o código abaixo no Arduino Mega usando o cabo USB Tipo A para B. Certifique-se de que a blindagem não seja inserida ao fazer isso, pois o código não pode ser carregado se algo estiver conectado aos pinos RX ou TX. Além disso, o código inclui a biblioteca MIDI.h que você pode precisar fazer o download, disponível no link abaixo.

MIDI.h

Em seguida, insira a blindagem no mega e conecte-a a outra porta USB do computador por meio do cabo MIDI para USB. A extremidade MIDI que você precisará usar será identificada como 'saída'. Crie um circuito simples em uma placa de ensaio conectando o pino 2 a um resistor de 220Ω e conectando-o ao ânodo de um LED padrão. Conecte o cátodo dos LEDs ao aterramento.

Em seguida, crie um patch Pure Data simples com uma mensagem [60 100] e uma mensagem [0 0], ambas conectadas a um objeto noteout por meio de sua entrada esquerda. Certifique-se de que este patch esteja conectado ao circuito de entrada MIDI abrindo as configurações de MIDI e alterando o dispositivo de saída. Se não estiver disponível, certifique-se de conectar o circuito MIDI ao computador antes de abrir o Pure Data. Agora, se o seu circuito estiver correto, o LED deve acender quando a mensagem [60 100] for pressionada e deve desligar quando a mensagem [0 0] for pressionada.

Etapa 2: Projetando a matriz de LED

Projetando a matriz de LED
Projetando a matriz de LED
Projetando a matriz de LED
Projetando a matriz de LED
Projetando a matriz de LED
Projetando a matriz de LED

Em seguida, a matriz de LED para a parte de trás da jaqueta precisa ser considerada. Este será conectado diretamente à placa principal do LilyPad. Normalmente, para controlar LEDs usando um microcontrolador, cada um deles seria atribuído a seus próprios pinos individuais. No entanto, com apenas um Arduino LilyPad isso seria muito limitado. No total, o LilyPad tem 12 pinos digitais e 6 analógicos, portanto, potencialmente 18 pinos de saída. No entanto, como um desses pinos será usado posteriormente para controlar uma chave deslizante, isso deixará apenas 17 restantes.

Uma técnica pode ser usada nesta situação chamada multiplexação para maximizar o potencial dos pinos de controle do LilyPad. Isso tira proveito de dois fatos:

  • Os LEDs são diodos e permitem que a corrente flua apenas em uma direção.
  • Olhos e cérebros humanos processam imagens muito mais devagar do que a luz pode viajar, portanto, se os LEDs piscarem rápido o suficiente, não notaremos. Este é um conceito conhecido como “Persistência de Visão”.

Usando esta técnica, o número de LEDs que podem ser controlados é (n / 2) x (n- (n / 2)) onde n é o número de pinos de controle disponíveis. Portanto, com 17 pinos disponíveis, deve ser possível controlar 72 LEDs em uma matriz 9x8.

Um diagrama para o layout dos LEDs em uma matriz 9x8 pode ser visto acima, incluindo sugestões para os pinos aos quais cada linha e coluna deve ser conectada. É importante notar que as linhas e colunas não devem se tocar. Além disso, não são necessários resistores devido ao fato de que cada LED tem o seu próprio integrado com uma resistência de 100Ω.

Antes de começar a costurar, você deve planejar o layout do circuito da jaqueta. Um bom lugar para começar aqui é marcando na capa onde os LEDs irão aparecer com pequenos pontos, usando uma fita métrica para garantir que eles fiquem uniformemente espaçados. Para uma jaqueta de couro preta, o delineador branco funciona muito bem e pode ser facilmente removido se houver um erro. No entanto, outros meios como o giz também podem funcionar, dependendo do material e da cor de sua jaqueta. A disposição das cores dos LEDs que usei pode ser vista acima e funcionará com o código fornecido posteriormente. Você está convidado a usar um layout diferente, embora isso precise ser alterado no código.

A próxima coisa a se pensar é para onde irão o LilyPad, LilyPad XBee e a fonte de alimentação. Para a jaqueta que usei, o lugar mais sensato e discreto parecia ser na parte de trás da jaqueta, na parte de baixo e no forro interno. Isso ocorre porque é improvável que seja atingido pelos braços do usuário aqui e pode acessar facilmente a matriz de LED. Além disso, como a jaqueta que usei estava solta na parte de baixo, ainda era confortável.

Etapa 3: Costurando a matriz de LED

Costurando a matriz de LED
Costurando a matriz de LED
Costurando a matriz de LED
Costurando a matriz de LED
Costurando a matriz de LED
Costurando a matriz de LED

Neste ponto, você pode começar a costurar. A linha condutiva pode ser difícil de trabalhar, então aqui estão algumas dicas úteis:

  • Colar um componente no lugar com cola de tecido tornará muito mais fácil costurar.
  • Diferentes tipos de pontos terão diferentes propriedades estéticas e funcionais, portanto, vale a pena dar uma olhada neles antes de começar. Um ponto corrido básico, no entanto, deve servir para este projeto.
  • Os nós tendem a se soltar facilmente com a linha condutora, pois ela é mais “flexível” do que o normal. Uma solução para isso é usar uma pequena quantidade de verniz de unha transparente ou cola de tecido para selá-los. Dê-lhes tempo para secar antes de cortar suas caudas.
  • Ao criar conexões para componentes de circuito ou unir duas linhas de fio condutor, é uma boa ideia costurar essas várias vezes para garantir que uma boa conexão mecânica e elétrica foi feita.
  • Certifique-se de que sua agulha é afiada e tem um olho grande. Atravessar a jaqueta pode ser difícil e a linha condutora é mais espessa do que o normal.
  • Tenha cuidado com os fios de cabelo soltos. Eles podem criar curtos no circuito se tocarem em outras linhas de costura. Se isso se tornar um problema importante, todas as linhas podem ser seladas com verniz de unha transparente ou cola de tecido, uma vez que o teste foi realizado e tudo está definitivamente funcionando corretamente.

Um bom lugar para começar a costurar é nas fileiras. Para torná-los o mais retos possível, você pode desenhar linhas suaves para costurar usando uma régua. Depois de costurá-los, passe para as colunas. Deve-se ter muito cuidado cada vez que uma linha for alcançada, porque é essencial que as duas não se cruzem. Isso pode ser feito criando-se o ponto para a coluna no lado interno da jaqueta para essa junção, como pode ser visto na foto acima. Quando você tiver completado todas as linhas e colunas, um multímetro pode ser usado para verificar se não há curtos.

Quando estiver satisfeito, comece a costurar os LEDs para a coluna na extremidade direita da jaqueta. Certifique-se de que cada ânodo está conectado à sua própria linha e cada cátodo está conectado à coluna à esquerda. Em seguida, coloque o LilyPad Arduino no lugar usando cola de tecido em algum lugar mais ou menos abaixo desta coluna, certificando-se de que os pinos da placa de breakout FTDI estejam voltados para baixo. Costure o pino 11 do LilyPad na linha 1, o pino 12 na linha 2 e assim por diante até que o pino A5 seja costurado na linha 9. Em seguida, costure o pino 10 na coluna da extrema direita. Para testar esta primeira coluna, você pode usar o código abaixo. Carregue o código e ligue o LilyPad conectando-o ao seu computador usando a placa breakout FTDI e o cabo USB 2.0 A-Male para Mini-B.

Se a porta correta não estiver disponível quando você conectar o LilyPad, pode ser necessário instalar um driver FTDI disponível no link abaixo.

Instalação do driver FTDI

Depois de ter esta primeira coluna de LEDs acesa, é hora de costurar o resto na jaqueta. Este é um processo que consome bastante tempo e, portanto, é provavelmente melhor que seja realizado em alguns dias. Certifique-se de testar cada coluna à medida que avança. Você pode fazer isso adaptando o código acima para que o pino da coluna que deseja testar seja declarado como uma saída na configuração e, em seguida, seja definido como BAIXO no loop. Certifique-se de que os outros pinos da coluna estejam definidos como ALTOS, pois isso garantirá que eles sejam desligados.

Etapa 4: adicionar um switch

Adicionando um Switch
Adicionando um Switch

Em seguida, você pode adicionar um interruptor que será usado para alterar as configurações da jaqueta. Ele precisa ser costurado na parte interna da jaqueta sob a placa LilyPad Arduino. Usando uma rosca condutiva, a extremidade identificada como “desligada” deve ser conectada ao aterramento e a extremidade identificada como “ligado” deve ser conectada ao pino 2.

Você pode testar o switch usando o código abaixo. Isso é muito simples e liga o LED inferior direito se a chave estiver aberta e desliga se a chave estiver fechada.

Etapa 5: Tornar o dispositivo sem fio

Tornando o dispositivo sem fio
Tornando o dispositivo sem fio
Tornando o dispositivo sem fio
Tornando o dispositivo sem fio
Tornando o dispositivo sem fio
Tornando o dispositivo sem fio

Preparando o LilyPad XBee e XBee Explorer

Prepare o LilyPad XBee para configuração soldando em um cabeçote macho de ângulo reto de 6 pinos. Posteriormente, isso permitirá que ele seja conectado a um computador por meio da placa LilyPad FTDI Basic Breakout e do cabo USB Mini. Além disso, solde o clipe da bateria de 9 V no LilyPad XBee com o fio vermelho indo para o pino “+” e o fio preto indo para o pino “-”.

Conecte a placa Explorer ao escudo de prototipagem do Arduino Mega. 5V e aterramento na placa do Explorer precisarão ser conectados a 5V e aterrado no Mega, o pino de saída no Explorer precisará ser conectado a RX1 no Mega e a entrada no Explorer precisará ser conectada a TX1 no Mega.

Configurando o XBees

Em seguida, o XBees precisa ser configurado. Em primeiro lugar, você precisará instalar o software CoolTerm gratuitamente, que está disponível no link abaixo.

Software CoolTerm

Certifique-se de distinguir entre os dois XBees de alguma forma, pois é importante que você não os confunda.

Primeiro, configure o XBee para o computador. Insira-o na placa Breakout LilyPad XBee e conecte-o ao computador usando a placa breakout básica FTDI e o cabo Mini USB. Abra CoolTerm e em Opções, selecione a porta serial correta. Se você não conseguir ver, tente pressionar 'Re-Scan Serial Ports'. Em seguida, certifique-se de que a taxa de transmissão esteja definida como 9600, ative o Eco local e defina a Emulação de tecla como CR. CoolTerm agora pode ser conectado ao XBee.

Digite “+++” na janela principal para colocar o XBee no modo de comando. Não pressione voltar. Isso permitirá que seja configurado usando comandos AT. Se tiver sido bem sucedido, após uma pausa muito curta, deve haver uma resposta de mensagem “OK”. Se houver um atraso de mais de 30 segundos antes da próxima linha, o modo de comando sairá e isso precisará ser repetido. Vários comandos AT precisam ser inseridos para definir o PAN ID, MY ID, Destination ID e para salvar as alterações. O retorno precisa ser atingido após cada um desses comandos e eles podem ser vistos na tabela acima. Uma vez que isso tenha sido concluído para o computador XBee, ele precisa ser desconectado e o mesmo processo deve ser realizado para a jaqueta XBee.

Você pode verificar as novas configurações do XBee digitando cada comando AT sem o valor no final. Por exemplo, se você digitar “ATID” e clicar em retorno, “1234” deve ser repetido.

Testando o XBees

Neste ponto, costure o LilyPad XBee na jaqueta ao lado do LilyPad Arduino. As seguintes conexões devem ser feitas com rosca condutiva:

  • 3,3 V no LilyPad XBee para '+' no LilyPad
  • Aterrar no LilyPad XBee para aterrar no LilyPad
  • RX no LilyPad XBee para TX no LilyPad
  • TX no LilyPad XBee para RX no LilyPad

Agora o dispositivo pode ser testado para garantir que os XBees estavam funcionando corretamente. O código abaixo, chamado 'Wireless_Test_Mega', precisa ser carregado no Arduino Mega e seu objetivo principal é receber mensagens MIDI do patch Pure Data simples criado anteriormente e transmitir diferentes valores por meio do XBee. Se uma nota MIDI com altura de 60 for recebida, a mensagem 'a' será transmitida. Alternativamente, se uma mensagem de nota for recebida, 'b' será transmitido.

Além disso, o código abaixo chamado 'Wireless_Test_LilyPad' precisa ser carregado para o LilyPad. Isso recebe as mensagens do Mega através do XBees e controla o LED inferior direito de acordo. Se a mensagem ‘a’ for recebida, o que significa que uma nota MIDI com afinação 60 foi recebida pelo Mega, o LED acenderá. Por outro lado, se ‘a’ não for recebido, o LED desligará.

Depois de fazer o upload do código para ambas as placas, certifique-se de que a blindagem foi inserida novamente no Mega e que está conectada ao computador por meio de ambos os cabos. Insira o computador XBee na placa do Explorer. Em seguida, certifique-se de que a placa FTDI Breakout esteja desconectada da jaqueta e insira a jaqueta XBee no LilyPad XBee. Conecte a bateria de 9V e tente pressionar as diferentes mensagens no Pure Data. O LED inferior direito na jaqueta deve ligar e desligar.

Etapa 6: toques finais

Toques Finais
Toques Finais
Toques Finais
Toques Finais
Toques Finais
Toques Finais

O patch de código e dados puros

Quando você estiver feliz que a jaqueta está funcionando sem fio, carregue o esboço do 'MegaCode' abaixo para o Arduino Mega e o esboço do 'LilyPadCode' para o LilyPad. Abra o patch Pure Data, certificando-se de que o DSP está ligado e a entrada de áudio está configurada para o microfone embutido do seu computador. Experimente tocar alguma música e mover o botão. Pode ser necessário ajustar ligeiramente os limiares no Pure Data, dependendo de quanto ou pouco os LEDs estão reagindo ao áudio.

Adicionando um Novo Forro

Finalmente, para tornar a jaqueta mais esteticamente agradável e mais confortável de usar, outro forro pode ser adicionado ao interior da jaqueta para cobrir a costura e os componentes. Isso deve ser feito usando velcro para permitir fácil acesso ao circuito caso seja necessário fazer qualquer alteração.

Em primeiro lugar, costure as tiras de 'laçada' (a parte mais macia) ao casaco por dentro, na parte superior e abaixo dos dois lados. É uma boa ideia deixar a parte inferior livre, pois isso permitirá que o ar entre nos componentes. Em seguida, corte um pedaço de tecido do mesmo tamanho e costure nele as tiras de 'gancho' do velcro, na parte superior e abaixo dos dois lados. Além disso, no mesmo lado do velcro e no local mais conveniente, costure um bolso onde a bateria possa ser encaixada. Veja as fotos acima para exemplos.

Etapa 7: Pronto

Seu Light Show Jacket sem fio agora deve estar completo e reagindo com sucesso ao áudio! Uma configuração deve criar um efeito como uma barra de amplitude e a outra deve ter LEDs individuais piscando ao som da música, com suas cores dependendo do tom. Veja acima para exemplos de vídeo. No caso de você estar se perguntando, a cor e o tom estão relacionados por meio da Ordem Rosacruz, que é baseada apenas na entonação. Espero que tenham gostado desse projeto!

Recomendado: