Índice:
- Suprimentos
- Etapa 1: os eletrônicos
- Etapa 2: Conectando a faixa de LED
- Etapa 3: Adaptando o projeto ao seu teclado
- Etapa 4: o código do Arduino
- Etapa 5: Possíveis melhorias …
- Etapa 6: Pronto
Vídeo: MIDI2LED - um efeito de luz de faixa LED controlada por MIDI: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Este é o meu primeiro instrutível, então tenha paciência comigo.
Adoro fazer música e, em situações ao vivo, como shows na sala de estar, gosto quando há efeitos de luz em sincronia com o que toco. Então, eu construí uma caixa baseada em Arduino que faz uma faixa de LED acender em uma cor aleatória quando eu bato uma nota no meu teclado MIDI e onde eu bato a nota.
Suprimentos
- Arduino Uno
- Arduino protoshield
- Conector MIDI
- Diodo 1N4148
- 6N138 opto-acoplador
- resistores: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Faixa de LED WS2812B (60 LEDs)
- alguns fios restantes
- tubo termorretrátil
- invólucro adequado para o Arduino (eu uso uma caixa de junção de plástico)
Você também vai precisar
- ferro de solda e solda
- Teclado MIDI e cabo MIDI
Etapa 1: os eletrônicos
O circuito é bastante simples. Ele consiste em uma entrada MIDI padrão (à esquerda do Arduino) e na conexão à faixa de LED (à direita do Arduino). Coloque todas as peças no protovelo, há muito espaço. Geralmente é recomendado usar uma fonte de alimentação externa para alimentar a faixa de LED, mas descobri que quando você joga, apenas alguns LEDs ficam ligados ao mesmo tempo, então havia nenhum problema em usar o Arduino + 5V / GND como saída de energia. (Tente evitar bater em todas as teclas ao mesmo tempo, e com velocidade total.;-)) Se você decidir usar uma fonte de alimentação externa, simplesmente conecte-a aos pinos do Arduino + 5V e GND. Algumas pessoas recomendam inserir um capacitor de 100uF (não mostrado no esquema) entre essas duas linhas.
Solde as peças no protovelo e conecte a faixa de LED conforme mostrado no esquema.
Etapa 2: Conectando a faixa de LED
É importante conectar a extremidade direita - a extremidade de entrada - da faixa de LED ao circuito. Minha faixa tem um conector fêmea como entrada e pequenos triângulos apontando para longe da entrada. Na saída, havia um conector macho (para poder conectá-lo a outra tira, que não precisamos), então cortei e soldei nos três cabos vindos do Arduino. Use tubulação termorretrátil para amarrar os três cabos à faixa de LED e torná-los menos visíveis.
A faixa de LED que usei vem com fita adesiva na parte de trás, para que possa ser facilmente colada na parte de trás do teclado MIDI.
Etapa 3: Adaptando o projeto ao seu teclado
Você pode ter que adaptar a faixa de LED e o código do Arduino ao seu teclado. O meu tem 76 teclas, e o comprimento da faixa é quase exatamente a largura do teclado. Se você tiver, por exemplo 61 teclas, você pode precisar de uma faixa mais curta. A faixa de LED pode ser cortada entre quaisquer dois LEDs. Apenas certifique-se de que está cortando a parte correta, ela tem uma extremidade de entrada (com um conector fêmea) e uma extremidade de saída (com um conector macho), você precisa manter a extremidade de entrada. No código, altere o # define para
- NUMBER_OF_LEDS ao número de LEDs restantes em sua tira após o corte final,
- NUMBER_OF_KEYS ao número de teclas do seu teclado e
- MIN_KEY para o número de pitch MIDI de sua nota mais baixa. Você pode encontrar isso no manual do usuário do teclado; ou use uma ferramenta que exibe o número da nota MIDI, como KMidiMon para Linux ou Pocket MIDI para Windows ou Mac; ou tente valores diferentes até que o dispositivo responda a todas as teclas do seu teclado
Etapa 4: o código do Arduino
O código do Arduino usa a biblioteca MIDI (v4.3.1) da Forty Seven Effects e a biblioteca Adafruit NeoPixel (v1.3.4) da Adafruit. Instale essas bibliotecas usando o IDE Arduino. Em seguida, compile o código e faça o upload para o Arduino sem a blindagem conectada (o optoacoplador é conectado ao pino RX, o que impede o upload). Ligue o Arduino via cabo USB (eu uso uma verruga de parede USB).
Se você gostaria de modificar o código a seu gosto, aqui está uma breve visão geral de como funciona: Em cada loop, a entrada MIDI é lida. Se um evento Note On ou Note Off tiver sido recebido, as funções MyHandleNoteOn ou MyHandleNoteOff serão chamadas. Ambos chamam a função updateVelocityArray, que armazena a velocidade (ou seja, com que força você pressionou a tecla) do número da tecla. Se a velocidade for maior do que a armazenada antes, a cor do LED correspondente é definida para a "cor atual". Depois que os eventos MIDI forem tratados, a função updateLedArray é chamada. Isso atualiza a "cor atual" (os valores de vermelho, verde e azul mudam independentemente de forma linear, até que o limite inferior ou superior seja alcançado, ponto em que a velocidade para a mudança linear é definida como um número aleatório), reduz lentamente a velocidade das notas pressionadas e atualiza os valores de cor de cada LED que tem que mudar sua cor (devido ao toque de uma nova nota ou redução da velocidade). A função showLedArray transfere as cores para a estrutura Adafruit_NeoPixel chamada "pixels" e faz com que os LEDs reais mostrem as cores na estrutura de pixels.
Etapa 5: Possíveis melhorias …
Um projeto nunca termina. Sempre há algo que pode ser feito para melhorá-lo:
- O proto-escudo contém tão poucas peças que é realmente um desperdício; pode-se facilmente obter o mesmo efeito com um Arduino Nano e um PCB de 15x7 orifícios, além de alguns conectores de pino fêmea.
- Alguns dos sinais MIDI são perdidos. Se for um NoteOn, o LED correspondente não acenderá; se for um NoteOff, ele não apagará (é por isso que introduzi a redução de velocidade, que garante que os LEDs não fiquem acesos indefinidamente). Ainda estou tentando descobrir o motivo. Possivelmente é um problema de tempo e MIDI.read () deve ser chamado com mais frequência.
- Alguns dos sinais MIDI são lidos incorretamente, ou seja, os LEDs errados acendem. Pode ser conectado com o ponto acima. Precisa de alguma investigação.
- O circuito é projetado para dar um efeito visual agradável sem muita interação do usuário (além de tocar o teclado). No entanto, eu poderia imaginar a adição de um potenciômetro que é lido (usando uma das entradas analógicas do Arduino) com o qual você pode alterar a velocidade máxima na qual as cores mudam (atualmente # definido como MAX_COLOR_CHANGE_SPEED = 20). Ou meça o tempo médio entre dois eventos NoteOn e mude MAX_COLOR_CHANGE_SPEED de acordo - em músicas lentas, a cor deve mudar mais lentamente.
Etapa 6: Pronto
Ligue o Arduino via cabo USB (eu uso uma verruga de parede USB). Conecte seu teclado MIDI ao conector MIDI e comece a agitar. Veja-me tocar um pouco de música leve (trocadilho, por pior que seja, intencional).
Recomendado:
Faixa LED Rgb controlada por RC: 4 etapas (com fotos)
Faixa de LED Rgb controlada por RC: Crie sua própria faixa de LED controlada por rc para iluminação individual da sala! A maioria das faixas de LED rgb são controladas por um controle remoto infravermelho. Para desligá-lo, ligá-lo ou mudar a cor, você deve ficar na frente do receptor. Isso é chato e não re
Faixa LED DIY: Como cortar, conectar, soldar e alimentar a faixa LED: 3 etapas (com fotos)
Faixa de LED DIY: Como cortar, conectar, soldar e alimentar Faixa de LED: Guia para iniciantes para fazer seus próprios projetos de luz usando faixa de LED. Flexíveis, confiáveis e fáceis de usar, as faixas de LED são a melhor escolha para uma variedade de aplicações. o básico sobre a instalação de uma faixa interna simples de LED de 60 LEDs / m, mas
ESP8266 RGB LED STRIP WIFI Control - NODEMCU como um controle remoto IR para faixa de LED controlada por wi-fi - Controle de smartphone RGB LED STRIP: 4 etapas
ESP8266 RGB LED STRIP WIFI Control | NODEMCU como um controle remoto infravermelho para faixa de LED controlada por wi-fi | RGB LED STRIP Smartphone Control: Olá pessoal, neste tutorial vamos aprender como usar o nodemcu ou esp8266 como um controle remoto IR para controlar uma faixa RGB LED e o Nodemcu será controlado pelo smartphone através de wi-fi. Então, basicamente você pode controlar o RGB LED STRIP com seu smartphone
Faixa LED RGB controlada por WiFi com ESP8266: 5 etapas
Faixa LED RGB controlada por WiFi Com ESP8266: A ideia é criar uma luz LED que possa ser controlada por WiFi. Tenho uma tira de LED sobressalente do Natal por aí, então estou reciclando isso para ESP8266, que permite que o LED seja controlado por WiFi.ESP8266 pode funcionar como servidor da web, este w
Faixa LED de 12v controlada por Wi-Fi usando Raspberry Pi com Tasker, Integração Ifttt: 15 etapas (com fotos)
Faixa de Led 12v controlada por wi-fi usando Raspberry Pi com Tasker, Integração Ifttt .: Neste projeto irei mostrar como controlar uma faixa de led analógico 12v simples sobre wi-fi usando um pi de framboesa. Para este projeto você vai precisar de: 1x Raspberry Pi (I estou usando um Raspberry Pi 1 Modelo B +) 1x RGB 12v Le