Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Acesta este primul meu instructable, așa că purtați-vă cu mine.
Îmi place să fac muzică și, în situații live, cum ar fi concertele din sufragerie, îmi place când sunt efecte de lumină sincronizate cu ceea ce joc. Așa că am construit o cutie bazată pe Arduino care face ca o bandă LED să se lumineze într-o culoare aleatorie atunci când lovesc o notă de pe tastatura MIDI și unde am lovit nota.
Provizii
- Arduino Uno
- Protectie Arduino
- Mufă MIDI
- 1N4148 diodă
- 6N138 opto cuplaj
- rezistențe: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- Benzi LED WS2812B (60 LED-uri)
- niște fire rămase
- tuburi termocontractabile
- carcasă potrivită pentru Arduino (folosesc o cutie de joncțiune din plastic)
De asemenea, veți avea nevoie
- fier de lipit și lipit
- Tastatură MIDI și cablu MIDI
Pasul 1: Electronica
Circuitul este destul de simplu. Se compune dintr-o intrare MIDI standard (stânga Arduino) și conexiunea la banda LED (dreapta Arduino). Așezați toate părțile pe ecran, există mult spațiu. În general, este recomandat să utilizați o sursă de alimentare externă pentru a alimenta banda LED, dar am constatat că atunci când jucați, doar câteva LED-uri sunt aprinse în același timp, deci a existat nicio problemă în utilizarea Arduino + 5V / GND ca putere de ieșire. (Încercați să evitați lovirea tuturor tastelor în același timp și cu viteză maximă.;-)) Dacă decideți să utilizați o sursă de alimentare externă, pur și simplu conectați-o la pinii Arduino + 5V și GND. Unii oameni recomandă introducerea unui condensator 100uF (care nu este prezentat în schemă) între aceste două linii.
Lipiți piesele pe ecran și conectați banda LED așa cum se arată în schemă.
Pasul 2: Conectarea benzii LED
Este important să conectați capătul drept - capătul de intrare - al benzii LED la circuit. Banda mea are un conector feminin ca intrare și are mici triunghiuri de-a lungul timpului îndreptate departe de intrare. La ieșire, era un conector tată (pentru a-l putea conecta la o altă bandă, de care nu avem nevoie), așa că am tăiat-o și am lipit-o pe cele trei cabluri care vin de la Arduino. Utilizați tuburi termocontractabile pentru a lega cele trei cabluri de banda LED împreună și pentru a le face mai puțin vizibile.
Banda LED pe care am folosit-o vine cu bandă adezivă în spate, astfel încât poate fi ușor lipită de partea din spate a tastaturii MIDI.
Pasul 3: Adaptarea proiectului la tastatura dvs
Este posibil să trebuiască să adaptați banda LED și codul Arduino la tastatură. Al meu are 76 de taste, iar lungimea benzii este aproape exact lățimea tastaturii. Dacă aveți de ex. 61 de taste, este posibil să aveți nevoie de o bandă mai scurtă. Banda LED poate fi tăiată între oricare două LED-uri. Asigurați-vă că tăiați partea corectă, are un capăt de intrare (cu un conector feminin) și un capăt de ieșire (cu un conector tată), trebuie să păstrați capătul de intrare. În cod, schimbați #define pentru
- NUMBER_OF_LEDS la numărul de LED-uri rămase în banda dvs. după tăierea capătului,
- NUMBER_OF_KEYS până la numărul de taste de pe tastatură și
- MIN_KEY până la numărul de pitch MIDI al celei mai mici taste. Puteți găsi acest lucru în manualul de utilizare al tastaturii; sau utilizați un instrument care afișează numărul de note MIDI, cum ar fi KMidiMon pentru Linux sau Pocket MIDI pentru Windows sau Mac; sau încercați diferite valori până când dispozitivul răspunde la toate tastele de pe tastatură
Pasul 4: Codul Arduino
Codul Arduino utilizează biblioteca MIDI (v4.3.1) de Forty Seven Effects și biblioteca Adafruit NeoPixel (v1.3.4) de Adafruit. Instalați aceste biblioteci utilizând Arduino IDE. Apoi compilați codul și încărcați-l pe Arduino fără scutul conectat (optocuplatorul este conectat la pinul RX, ceea ce împiedică încărcarea). Alimentați Arduino prin cablu USB (eu folosesc un neg negru de perete).
Dacă doriți să modificați codul după cum doriți, iată o scurtă prezentare generală a modului în care funcționează: în fiecare buclă, intrarea MIDI este citită. Dacă s-a primit un eveniment Note On sau Note Off, se apelează funcțiile MyHandleNoteOn sau MyHandleNoteOff. Amândoi apelează funcția updateVelocityArray, care stochează viteza (adică cât de tare ați apăsat tasta) a numărului cheii. Dacă viteza este mai mare decât cea stocată anterior, culoarea LED-ului corespunzător este setată la „culoarea curentă”. După ce evenimentele MIDI au fost tratate, se apelează funcția updateLedArray. Aceasta actualizează „culoarea curentă” (ale cărei valori roșu, verde și albastru se modifică independent într-un mod liniar, până când se atinge capătul inferior sau superior, moment în care viteza pentru schimbarea liniară este setată la un număr aleatoriu), reduce încet viteza notelor apăsate și actualizează valorile culorilor fiecărui LED care trebuie să-și schimbe culoarea (datorită lovirii notei noi sau reducerii vitezei). Funcția showLedArray transferă culorile în structura Adafruit_NeoPixel numită „pixeli” și face ca LED-urile reale să arate culorile în structura pixelilor.
Pasul 5: Îmbunătățiri posibile …
Un proiect nu se termină niciodată. Întotdeauna se poate face ceva pentru a-l îmbunătăți:
- Protecția conține atât de puține părți încât este într-adevăr o risipă; s-ar putea obține cu ușurință același efect cu un Arduino Nano și un PCB de 15x7 găuri plus niște anteturi pin feminine.
- Unele dintre semnalele MIDI se pierd. Dacă este un NoteOn, LED-ul corespunzător nu se va aprinde; dacă este un NoteOff, nu se va stinge (de aceea am introdus reducerea vitezei, care asigură faptul că LED-urile nu vor rămâne aprinse la nesfârșit). Încă încerc să-mi dau seama de motiv. Este posibil să fie o problemă de sincronizare, iar MIDI.read () ar trebui apelat mai des.
- Unele semnale MIDI sunt citite greșit, adică LED-urile greșite se aprind. Ar putea fi conectat cu punctul de mai sus. Are nevoie de o investigație.
- Circuitul este conceput pentru a oferi un efect vizual plăcut, fără prea multe interacțiuni ale utilizatorului (în afară de redarea tastaturii). Cu toate acestea, mi-aș putea imagina adăugarea unui potențiometru care este citit (folosind una dintre intrările analogice Arduino) cu care puteți modifica viteza maximă la care se schimbă culorile (în prezent # define'd ca MAX_COLOR_CHANGE_SPEED = 20). Sau măsurați timpul mediu dintre două evenimente NoteOn și modificați MAX_COLOR_CHANGE_SPEED în consecință - în melodiile lente, culoarea ar trebui să se schimbe mai lent.
Pasul 6: Gata
Alimentați Arduino prin cablu USB (eu folosesc un neg negru de perete). Conectați-vă tastatura MIDI la mufa MIDI și începeți rockin '. Urmăriți-mă jucând puțină muzică ușoară (joc de cuvinte, oricât de rău este, intenționat).
Recomandat:
Lumină de ceas cu afișaj matricial cu bandă LED controlată WiFi: 3 pași (cu imagini)
Lămpi de ceas cu afișaj matricial cu bandă LED controlată WiFi: benzi LED programabile, de ex. bazat pe WS2812, sunt fascinante. Aplicațiile sunt multiple și puteți obține rapid rezultate impresionante. Și cumva construirea ceasurilor pare a fi un alt domeniu la care mă gândesc mult. Începând cu o experiență în
DIY Interesantă Lumină LED cu efect de urmărire a inimii: 8 pași (cu imagini)
DIY Interesantă Lumină cu efect de urmărire a inimii de inimă: această structură acoperă modul de a face lumini LED cu efect de urmărire uimitoare pentru iubitul, tatăl, mama, colegii de clasă și prietenii buni. Acest lucru este destul de ușor de construit atâta timp cât aveți răbdare. Vă recomandăm să aveți o experiență de lipire dacă construiți
ESP8266 RGB LED STRIP WIFI Control - NODEMCU ca telecomandă IR pentru bandă led controlată prin Wifi - Control RGB LED STRIP pentru smartphone: 4 pași
ESP8266 RGB LED STRIP WIFI Control | NODEMCU ca telecomandă IR pentru bandă led controlată prin Wifi | RGB LED STRIP Smartphone Control: Bună băieți, în acest tutorial vom învăța cum să folosim nodemcu sau esp8266 ca telecomandă IR pentru a controla o bandă LED RGB, iar Nodemcu va fi controlat de smartphone prin wifi. Deci, practic puteți controla LED-ul RGB LED cu smartphone-ul dvs
Lumină de înregistrare controlată Midi pentru Logic Pro X: 9 pași (cu imagini)
Lumină de înregistrare controlată Midi pentru Logic Pro X: Acest tutorial oferă informații despre cum să construiți și să programați o interfață MIDI de bază pentru a controla o lumină de înregistrare de către Logic Pro X. Imaginea prezintă o diagramă bloc a întregului sistem de pe computerul Mac care rulează Logic Pro X în stânga spre Sai
Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: 7 pași (cu imagini)
Controler de lumină cu bandă LED 5V MIDI pentru Spielatron sau alt MIDI Synth: Acest controler luminează intermitent cu LED-uri tri-color pentru 50mS pe notă. Albastru pentru G5 la D # 6, roșu pentru E6 la B6 și verde pentru C7 la G7. Controlerul este un dispozitiv ALSA MIDI, astfel încât software-ul MIDI să poată ieși la LED-uri în același timp cu un dispozitiv de sintetizare MIDI