Tabla de contenido:
- Suministros
- Paso 1: la electrónica
- Paso 2: Conexión de la tira de LED
- Paso 3: adaptar el proyecto a su teclado
- Paso 4: el código Arduino
- Paso 5: posibles mejoras …
- Paso 6: ¡Listo
Video: MIDI2LED: un efecto de luz de tira de LED controlado por MIDI: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Este es mi primer instructable, así que tengan paciencia conmigo.
Me encanta hacer música, y en situaciones en vivo como conciertos en la sala de estar, me gusta cuando hay efectos de luz sincronizados con lo que toco. Así que construí una caja basada en Arduino que hace que una tira de LED se ilumine en un color aleatorio cuando toco una nota en mi teclado MIDI, y donde toco la nota.
Suministros
- Arduino Uno
- Protoshield de Arduino
- Conector MIDI
- Diodo 1N4148
- Acoplador óptico 6N138
- resistencias: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Tira de LED WS2812B (60 LED)
- algunos cables sobrantes
- Tubo termoretráctil
- Carcasa adecuada para Arduino (yo uso una caja de conexiones de plástico)
También necesitarás
- soldador y soldadura
- Teclado MIDI y cable MIDI
Paso 1: la electrónica
El circuito es bastante sencillo. Consiste en una entrada MIDI estándar (a la izquierda del Arduino) y la conexión a la tira de LED (a la derecha del Arduino). Coloque todas las piezas en el protoshield, hay mucho espacio. Generalmente se recomienda usar una fuente de alimentación externa para alimentar la tira de LED, pero descubrí que cuando juegas, solo algunos LED están encendidos al mismo tiempo, por lo que había no hay problema en usar el Arduino + 5V / GND como salida de potencia. (Trate de evitar presionar todas las teclas al mismo tiempo y a máxima velocidad.;-)) Si decide usar una fuente de alimentación externa, simplemente conéctela a los pines Arduino + 5V y GND. Algunas personas recomiendan insertar un condensador de 100 uF (no se muestra en el esquema) entre estas dos líneas.
Suelde las piezas al protoshield y conecte la tira de LED como se muestra en el esquema.
Paso 2: Conexión de la tira de LED
Es importante conectar el extremo derecho, el extremo de entrada, de la tira de LED al circuito. Mi tira tiene un conector hembra como entrada y tiene pequeños triángulos que apuntan en dirección opuesta a la entrada. En la salida había un conector macho (para poder conectarlo a otra tira, que no necesitamos), así que lo corté y lo soldé a los tres cables que vienen del Arduino. Utilice tubos termorretráctiles para unir los tres cables a la tira de LED y hacerlos menos visibles.
La tira de LED que utilicé viene con cinta adhesiva en la parte posterior, por lo que se puede pegar fácilmente a la parte posterior del teclado MIDI.
Paso 3: adaptar el proyecto a su teclado
Es posible que deba adaptar la tira de LED y el código Arduino a su teclado. El mío tiene 76 teclas, y la longitud de la tira es casi exactamente el ancho del teclado. Si tiene, por ejemplo, 61 teclas, es posible que necesite una tira más corta. La tira de LED se puede cortar entre dos LED cualesquiera. Solo asegúrate de cortar la parte correcta, tiene un extremo de entrada (con un conector hembra) y un extremo de salida (con un conector macho), debes mantener el extremo de entrada. En el código, cambia los #defines por
- NUMBER_OF_LEDS a la cantidad de LED que quedan en su tira después de cortar el extremo,
- NUMBER_OF_KEYS al número de teclas de su teclado y
- MIN_KEY al número de tono MIDI de su tecla más baja. Puede encontrar esto en el manual del usuario del teclado; o utilice una herramienta que muestre el número de nota MIDI, como KMidiMon para Linux o Pocket MIDI para Windows o Mac; o pruebe diferentes valores hasta que el dispositivo responda a todas las teclas de su teclado
Paso 4: el código Arduino
El código Arduino utiliza la biblioteca MIDI (v4.3.1) de Forty Seven Effects y la biblioteca Adafruit NeoPixel (v1.3.4) de Adafruit. Instale estas bibliotecas usando el IDE de Arduino. Luego compila el código y cárgalo al Arduino sin el escudo conectado (el optoacoplador está conectado al pin RX, lo que impide la carga). Encienda el Arduino a través de un cable USB (yo uso una verruga de pared USB).
Si desea modificar el código a su gusto, aquí hay una breve descripción general de cómo funciona: En cada bucle, se lee la entrada MIDI. Si se ha recibido un evento Note On o Note Off, se llaman las funciones MyHandleNoteOn o MyHandleNoteOff. Ambos llaman a la función updateVelocityArray, que almacena la velocidad (es decir, la fuerza con la que presionó la tecla) del número de tecla. Si la velocidad es superior a la almacenada anteriormente, el color del LED correspondiente se establece en el "color actual". Una vez que se han manejado los eventos MIDI, se llama a la función updateLedArray. Esto actualiza el "color actual" (cuyos valores rojo, verde y azul cambian independientemente de forma lineal, hasta que se alcanza el extremo inferior o superior, momento en el que la velocidad del cambio lineal se establece en un número aleatorio), reduce lentamente la velocidad de las notas presionadas y actualiza los valores de color de cada LED que tiene que cambiar su color (debido al nuevo golpe de nota o reducción de la velocidad). La función showLedArray transfiere los colores a la estructura Adafruit_NeoPixel llamada "píxeles" y hace que los LED reales muestren los colores en la estructura de píxeles.
Paso 5: posibles mejoras …
Un proyecto nunca se termina. Siempre hay algo que se puede hacer para mejorarlo:
- El protoshield contiene tan pocas partes que es realmente un desperdicio; uno podría lograr fácilmente el mismo efecto con un Arduino Nano y un PCB de 15x7 agujeros más algunos encabezados de clavija hembra.
- Algunas de las señales MIDI se pierden. Si es un NoteOn, el LED correspondiente no se encenderá; si es un NoteOff, no se apagará (por eso introduje la reducción de velocidad, que asegura que los LED no permanecerán encendidos indefinidamente). Todavía estoy tratando de averiguar la razón. Posiblemente sea un problema de tiempo, y se debería llamar a MIDI.read () con más frecuencia.
- Algunas de las señales MIDI están mal leídas, es decir, se encienden los LED incorrectos. Podría estar relacionado con el punto anterior. Necesita algo de investigación.
- El circuito está diseñado para brindar un efecto visual agradable sin mucha interacción del usuario (aparte de tocar el teclado). Sin embargo, podría imaginarme agregando un potenciómetro que se lee (usando una de las entradas analógicas de Arduino) con el que puede cambiar la velocidad máxima a la que cambian los colores (actualmente # definido como MAX_COLOR_CHANGE_SPEED = 20). O mida el tiempo promedio entre dos eventos NoteOn y cambie MAX_COLOR_CHANGE_SPEED en consecuencia; en canciones lentas, el color debería cambiar más lentamente.
Paso 6: ¡Listo
Encienda el Arduino a través de un cable USB (yo uso una verruga de pared USB). Conecte su teclado MIDI a la toma MIDI y comience a rockear. Mírame tocar un poco de música ligera (juego de palabras, por malo que sea, intencionado).
Recomendado:
Controlador de tira de LED RGBW modificado, controlado por PIR, ESP8285: 3 pasos
Controlador de tira de LED RGBW modificado, controlado por PIR, ESP8285: Sobre mi escritorio en casa he instalado una tira de LED RGBW. El controlador WiFi LED RGBW debería funcionar con una aplicación como la aplicación Magic Home. Sin embargo, tengo un chip ESP8285 que flasheé con mi propio firmware. Agregué un PIR por el cual la tira de LED cambia
Efecto asombroso de la tira de LED: 4 pasos
Efecto asombroso de la tira de LED: Hola amigo, queremos buenos efectos de la tira de LED. La tira de LED decora nuestra habitación y cuando da efectos, la habitación se ve increíble. Si tu tira de LED brilla simple, entonces este blog es muy especial para ti porque en este blog aprenderá cómo podemos hacer
Tira de LED Neopixel Ws 2812 con Arduino controlado por Bluetooth desde Android o Iphone: 4 pasos
Tira de LED Neopixel Ws 2812 con Arduino controlado por Bluetooth desde Android o Iphone: Hola a todos, en este instructivo, he hablado sobre cómo controlar una tira de LED neopixel o una tira de LED ws2812 desde tu teléfono Android o iPhone usando conectividad Bluetooth. agregue una tira de led neopixel en su hogar junto con Arduino con
Control WIFI ESP8266 RGB LED STRIP - NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi - Control de teléfono inteligente RGB LED STRIP: 4 pasos
Control WIFI ESP8266 RGB LED STRIP | NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi | Control de teléfono inteligente con tiras de LED RGB: Hola chicos, en este tutorial aprenderemos a usar nodemcu o esp8266 como control remoto IR para controlar una tira de LED RGB y Nodemcu será controlado por teléfono inteligente a través de wifi. Entonces, básicamente, puedes controlar la TIRA LED RGB con tu teléfono inteligente
Hacer un sable de luz con efecto de sonido (por Arduino: 5 pasos
Hacer un sable de luz con efecto de sonido (por Arduino: desde que aprendí a usar arduino para hacer cosas, siempre quiero usarlo para hacer un sable de luz con efecto de sonido, y una vez que hago uno descubrí que no es tan difícil. mirado para hacer uno