Sommario:
- Forniture
- Passaggio 1: l'elettronica
- Passaggio 2: collegamento della striscia LED
- Passaggio 3: adattare il progetto alla tastiera
- Passaggio 4: il codice Arduino
- Passaggio 5: possibili miglioramenti…
- Passaggio 6: fatto
Video: MIDI2LED - un effetto luminoso a strisce LED controllato da MIDI: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Questo è il mio primo istruibile, quindi abbi pazienza.
Amo fare musica, e in situazioni live come i concerti in salotto, mi piace quando ci sono effetti di luce in sintonia con quello che suono. Quindi ho costruito una scatola basata su Arduino che fa illuminare una striscia LED in un colore casuale quando premo una nota sulla mia tastiera MIDI e dove premo la nota.
Forniture
- Arduino Uno
- Protoscudo Arduino
- Presa MIDI
- Diodo 1N4148
- 6N138 accoppiatore ottico
- resistenze: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Striscia LED WS2812B (60 LED)
- alcuni fili rimanenti
- tubo termoretraibile
- custodia adatta per Arduino (io uso una scatola di giunzione in plastica)
Avrai anche bisogno
- saldatore e saldatore
- Tastiera MIDI e cavo MIDI
Passaggio 1: l'elettronica
Il circuito è abbastanza semplice. Consiste in un ingresso MIDI standard (a sinistra dell'Arduino) e la connessione alla striscia LED (a destra dell'Arduino). Posiziona tutte le parti sul protoshield, c'è molto spazio. In genere si consiglia di utilizzare un alimentatore esterno per alimentare la striscia LED, ma ho scoperto che quando giochi, solo pochi LED sono accesi contemporaneamente, quindi c'era nessun problema nell'usare Arduino +5V / GND come potenza in uscita. (Cerca di evitare di premere tutti i tasti contemporaneamente e alla massima velocità.;-)) Se decidi di utilizzare un alimentatore esterno, collegalo semplicemente ai pin Arduino +5V e GND. Alcune persone consigliano di inserire un condensatore da 100uF (non mostrato nello schema) tra queste due linee.
Saldare le parti al protoshield e collegare la striscia LED come mostrato nello schema.
Passaggio 2: collegamento della striscia LED
È importante collegare l'estremità destra - l'estremità di ingresso - della striscia LED al circuito. La mia striscia ha un connettore femmina come ingresso e ha piccoli triangoli che puntano lontano dall'ingresso. In uscita c'era un connettore maschio (per poterlo collegare ad un'altra striscia, che non ci serve), quindi l'ho tagliato e saldato ai tre cavi provenienti dall'Arduino. Usa una guaina termorestringente per legare insieme i tre cavi alla striscia LED e per renderli meno visibili.
La striscia LED che ho usato è dotata di nastro adesivo sul retro, quindi può essere facilmente incollata sul retro della tastiera MIDI.
Passaggio 3: adattare il progetto alla tastiera
Potrebbe essere necessario adattare la striscia LED e il codice Arduino alla tastiera. Il mio ha 76 tasti e la lunghezza della striscia è quasi esattamente la larghezza della tastiera. Se hai ad es. 61 chiavi, potresti aver bisogno di una striscia più corta. La striscia LED può essere tagliata tra due LED qualsiasi. Assicurati solo di tagliare la parte corretta, ha un'estremità di input (con un connettore femmina) e un'estremità di output (con un connettore maschio), devi mantenere l'estremità di input. Nel codice, cambia #defines per
- NUMBER_OF_LEDS al numero di LED rimasti nella striscia dopo aver tagliato l'estremità,
- NUMBER_OF_KEYS al numero di tasti sulla tastiera e
- MIN_KEY al numero di intonazione MIDI della chiave più grave. Puoi trovarlo nel manuale utente della tastiera; oppure usa uno strumento che visualizza il numero di nota MIDI, come KMidiMon per Linux o Pocket MIDI per Windows o Mac; o prova valori diversi finché il dispositivo non risponde a tutti i tasti della tastiera
Passaggio 4: il codice Arduino
Il codice Arduino utilizza la libreria MIDI (v4.3.1) di Forty Seven Effects e la libreria Adafruit NeoPixel (v1.3.4) di Adafruit. Installa queste librerie usando l'IDE di Arduino. Quindi compila il codice e caricalo su Arduino senza lo shield collegato (l'accoppiatore ottico è collegato al pin RX, che impedisce l'upload). Alimenta Arduino tramite cavo USB (io uso una verruca da parete USB).
Se desideri modificare il codice a tuo piacimento, ecco una breve panoramica di come funziona: In ogni loop, viene letto l'input MIDI. Se è stato ricevuto un evento Note On o Note Off, vengono chiamate le funzioni MyHandleNoteOn o MyHandleNoteOff. Entrambi chiamano la funzione updateVelocityArray, che memorizza la velocità (cioè la forza con cui si preme il tasto) del numero del tasto. Se la velocità è superiore a quella memorizzata in precedenza, il colore del LED corrispondente viene impostato sul "colore attuale". Dopo che gli eventi MIDI sono stati gestiti, viene chiamata la funzione updateLedArray. Questo aggiorna il "colore corrente" (i cui valori rosso, verde e blu cambiano indipendentemente in modo lineare, fino a raggiungere l'estremità inferiore o superiore, a quel punto la velocità per il cambiamento lineare viene impostata su un numero casuale), riduce lentamente la velocità delle note premute e aggiorna i valori di colore di ciascun LED che deve cambiare colore (a causa di una nuova nota colpita o della riduzione della velocità). La funzione showLedArray trasferisce i colori alla struttura Adafruit_NeoPixel chiamata "pixel" e fa in modo che i LED reali mostrino i colori nella struttura dei pixel.
Passaggio 5: possibili miglioramenti…
Un progetto non è mai finito. C'è sempre qualcosa che si può fare per migliorarlo:
- Il protoshield contiene così poche parti che è davvero uno spreco; si potrebbe facilmente ottenere lo stesso effetto con un Arduino Nano e un PCB a 15x7 fori più alcuni connettori femmina.
- Alcuni dei segnali MIDI vengono persi. Se è un NoteOn, il LED corrispondente non si accenderà; se è un NoteOff, non si spegnerà (ecco perché ho introdotto la riduzione della velocità, che assicura che i LED non rimangano accesi indefinitamente). Sto ancora cercando di capire il motivo. Forse è un problema di temporizzazione e MIDI.read() dovrebbe essere chiamato più spesso.
- Alcuni dei segnali MIDI vengono letti male, ovvero si accendono i LED sbagliati. Potrebbe essere collegato con il punto sopra. Ha bisogno di qualche indagine.
- Il circuito è progettato per dare un piacevole effetto visivo senza molta interazione da parte dell'utente (a parte suonare la tastiera). Tuttavia, potrei immaginare di aggiungere un potenziometro che viene letto (utilizzando uno degli ingressi analogici di Arduino) con il quale è possibile modificare la velocità massima alla quale cambiano i colori (attualmente #define'd come MAX_COLOR_CHANGE_SPEED = 20). Oppure misura il tempo medio tra due eventi NoteOn e modifica MAX_COLOR_CHANGE_SPEED di conseguenza - nelle canzoni lente, il colore dovrebbe cambiare più lentamente.
Passaggio 6: fatto
Alimenta Arduino tramite cavo USB (io uso una verruca da parete USB). Collega la tua tastiera MIDI alla presa MIDI e inizia a suonare. Guardami suonare un po' di musica leggera (gioco di parole, per quanto brutto sia, voluto).
Consigliato:
Specchio per il trucco fai-da-te in semplici passaggi (usando le strisce luminose a LED): 4 passaggi
Specchio per il trucco fai-da-te in semplici passaggi (usando le strisce luminose a LED): in questo post, ho realizzato uno specchio per il trucco fai-da-te con l'aiuto delle strisce LED. Sono davvero fantastici e devi provarli anche tu
Semplici lampade a strisce LED (aggiorna le tue strisce LED): 4 passaggi (con immagini)
Semplici lampade a strisce LED (aggiorna le tue strisce LED): uso le strisce LED da un po 'di tempo e ne ho sempre amato la semplicità. Basta tagliare un pezzo di un ruolo, saldare dei fili, collegare un alimentatore e ti sei procurato una fonte di luce. Negli anni ho trovato un c
Controller per strisce LED RGBW modificato, controllato da PIR, ESP8285: 3 passaggi
Controller per strisce LED RGBW modificato, controllato da PIR, ESP8285: sopra la mia scrivania a casa ho installato una striscia LED RGBW. Il controller LED RGBW WiFi dovrebbe funzionare con un'app come l'app Magic Home. Tuttavia, contengo un chip ESP8285 che ho flashato con il mio firmware. Ho aggiunto un PIR tramite il quale la striscia LED cambia
Come realizzare un pannello luminoso a LED super luminoso - Versione semplice: 8 passaggi (con immagini)
Come realizzare un pannello luminoso a LED super luminoso - Versione semplice: oggi condivido con voi come realizzare un bellissimo pannello luminoso a LED super luminoso da un vecchio schermo LCD. Questa è una versione semplice che puoi usare 18650 con uscita 5v per smartphone ecc..5630 è LED ad alta luminosità che puoi usare qualsiasi cosa Led se vuoi Adattatore
Controller per strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: 7 passaggi (con immagini)
Controller di strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: questo controller lampeggia luci a strisce LED tricolore per 50 mS per nota. Blu per G5 a D # 6, rosso per E6 a B6 e verde per C7 a G7. Il controller è un dispositivo MIDI ALSA, quindi il software MIDI può inviare l'output ai LED contemporaneamente a un dispositivo synth MIDI