Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Elektronikken
- Trin 2: Tilslutning af LED Strip
- Trin 3: Tilpasning af projektet til dit tastatur
- Trin 4: Arduino -koden
- Trin 5: Mulige forbedringer …
- Trin 6: Udført
Video: MIDI2LED - en MIDI -kontrolleret LED Strip Light Effect: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Dette er min første instruerbare, så vær med mig.
Jeg elsker at lave musik, og i live situationer som stue-koncerter kan jeg lide det, når der er lyseffekter i synkronisering med det, jeg spiller. Så jeg byggede en Arduino-baseret boks, der får en LED-strimmel til at lyse i en tilfældig farve, da jeg ramte en note på mit MIDI-tastatur, og hvor jeg ramte noten.
Forbrugsvarer
- Arduino Uno
- Arduino protoshield
- MIDI -stik
- 1N4148 diode
- 6N138 optokobling
- modstande: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- WS2812B LED -strip (60 lysdioder)
- nogle resterende ledninger
- varmekrympeslange
- egnet kabinet til Arduino (jeg bruger en plastik forbindelsesboks)
Du får også brug for
- loddejern og lodde
- MIDI -tastatur og MIDI -kabel
Trin 1: Elektronikken
Kredsløbet er ret ligetil. Den består af en standard MIDI -indgang (til venstre for Arduino) og forbindelsen til LED -båndet (til højre for Arduino). Placer alle delene på protoshield, der er masser af plads. Det anbefales generelt at bruge en ekstern strømforsyning til at drive LED -stripen, men jeg fandt ud af, at når du spiller, er der kun få LED'er tændt på samme tid, så der var intet problem i at bruge Arduino +5V / GND som effekt. (Prøv at undgå at ramme alle taster på samme tid og med fuld hastighed.;-)) Hvis du beslutter dig for at bruge en ekstern strømforsyning, skal du blot slutte den til Arduino +5V og GND benene. Nogle mennesker anbefaler at indsætte en 100uF kondensator (ikke vist i skematisk) mellem disse to linjer.
Lod loddelene til protoshield, og tilslut LED -båndet som vist på skematisk.
Trin 2: Tilslutning af LED Strip
Det er vigtigt at tilslutte den højre ende - inputenden - af LED -båndet til kredsløbet. Min strip har et hunstik som input, og har små trekanter, der hele tiden peger væk fra input. Ved udgangen var der en hanstik (for at kunne tilslutte den til en anden strimmel, som vi ikke har brug for), så jeg skar den af og lod den til de tre kabler, der kom fra Arduino. Brug varmekrympeslange til at binde de tre kabler til LED -båndet sammen og gøre dem mindre synlige.
LED -strimlen, jeg brugte, leveres med tape på bagsiden, så den let kan limes på bagsiden af MIDI -tastaturet.
Trin 3: Tilpasning af projektet til dit tastatur
Du skal muligvis tilpasse LED -stripen og Arduino -koden til dit tastatur. Min har 76 taster, og længden af strimlen er næsten nøjagtigt tastaturets bredde. Hvis du har f.eks. 61 nøgler, har du muligvis brug for en kortere strimmel. LED -strimlen kan skæres mellem to lysdioder. Bare sørg for at afbryde den korrekte del, den har en indgangsende (med en hunstik) og en udgangsende (med en hanstik), du skal beholde inputenden. I koden skal du ændre #definer til
- NUMBER_OF_LEDS til antallet af lysdioder, der er tilbage i din strimmel efter afskæring af enden,
- NUMBER_OF_KEYS til antallet af taster på dit tastatur, og
- MIN_KEY til MIDI -tonehøjden for din laveste nøgle. Du kan finde dette i tastaturets brugermanual; eller brug et værktøj, der viser MIDI -notenummeret, f.eks. KMidiMon til Linux eller Pocket MIDI til Windows eller Mac; eller prøv forskellige værdier, indtil enheden reagerer på alle tasterne på dit tastatur
Trin 4: Arduino -koden
Arduino -koden bruger MIDI -biblioteket (v4.3.1) af Forty Seven Effects og Adafruit NeoPixel -biblioteket (v1.3.4) af Adafruit. Installer disse biblioteker ved hjælp af Arduino IDE. Kompilér derefter koden og upload den til Arduino uden at skjoldet er tilsluttet (optokobleren er forbundet til RX -stiften, hvilket forhindrer upload). Tænd for Arduino via USB -kabel (jeg bruger en USB -vægvorte).
Hvis du gerne vil ændre koden til din smag, er her en kort oversigt over, hvordan den fungerer: I hver loop læses MIDI -input. Hvis der er modtaget en Note On eller Note Off -hændelse, kaldes funktionerne MyHandleNoteOn eller MyHandleNoteOff til. De kalder begge funktionen updateVelocityArray, som gemmer hastigheden (dvs. hvor hårdt du har ramt tasten) for nøgletallet. Hvis hastigheden er højere end den, der blev gemt før, indstilles farven på den tilsvarende LED til den "aktuelle farve". Efter at MIDI -hændelserne er blevet håndteret, kaldes funktionen updateLedArray. Dette opdaterer den "aktuelle farve" (hvis røde, grønne og blå værdier ændres uafhængigt på en lineær måde, indtil den nedre eller øvre ende er nået, på hvilket tidspunkt hastigheden for den lineære ændring er indstillet til et tilfældigt tal), reducerer langsomt hastigheden på de pressede toner og opdaterer farveværdierne for hver LED, der skal ændre dens farve (på grund af et nyt notat hit eller reduktion af hastigheden). Funktion showLedArray overfører farverne til Adafruit_NeoPixel -strukturen kaldet "pixels" og får de faktiske lysdioder til at vise farverne i pixelstrukturen.
Trin 5: Mulige forbedringer …
Et projekt er aldrig færdigt. Der er altid noget, der kan gøres for at forbedre det:
- Protoshield indeholder så få dele, at det virkelig er spild; man kunne let opnå den samme effekt med en Arduino Nano og et 15x7 hullers printkort plus nogle kvindelige pinhoveder.
- Nogle af MIDI -signalerne går tabt. Hvis det er en NoteOn, lyser den tilsvarende LED ikke; hvis det er en NoteOff, vil den ikke slukke (derfor introducerede jeg hastighedsreduktionen, hvilket sikrer, at lysdioder ikke forbliver tændt på ubestemt tid). Jeg forsøger stadig at finde ud af årsagen. Det er muligvis et problem med timing, og MIDI.read () burde kaldes oftere.
- Nogle af MIDI -signalerne læses forkert, dvs. de forkerte lysdioder lyser. Kan være forbundet med ovenstående punkt. Kræver lidt undersøgelse.
- Kredsløbet er designet til at give en behagelig visuel effekt uden meget brugerinteraktion (bortset fra at spille på tastaturet). Jeg kunne dog forestille mig at tilføje et potentiometer, der læses op (ved hjælp af en af Arduino's analoge indgange), hvormed du kan ændre den maksimale hastighed, hvormed farverne ændres (i øjeblikket #defineret som MAX_COLOR_CHANGE_SPEED = 20). Eller mål den gennemsnitlige tid mellem to NoteOn -begivenheder, og ændr MAX_COLOR_CHANGE_SPEED i overensstemmelse hermed - i langsomme sange bør farven ændre sig langsommere.
Trin 6: Udført
Tænd for Arduino via USB -kabel (jeg bruger en USB -vægvorte). Tilslut dit MIDI -tastatur til MIDI -stikket, og begynd rockin '. Se mig spille lidt let musik (ordspil, så slemt som det er bestemt).
Anbefalede:
DIY LED Strip: Sådan skæres, forbindes, loddes og Power LED Strip: 3 trin (med billeder)
DIY LED Strip: Sådan skæres, forbindes, loddes og Power LED Strip: Begynderguide til at lave dine egne lysprojekter ved hjælp af LED strip.Fleksibel pålidelig og let at bruge, LED strips er det bedste valg til en række forskellige applikationer.Jeg vil dække det grundlæggende om at installere en simpel indendørs 60 LED's/m LED -strip, men i
Let LED Holiday Light Show: Troldmænd om vinteren - WS2812B LED Strip med FastLED og en Arduino Tutorial: 6 trin
Let LED Holiday Light Show: Troldmænd om vinteren | WS2812B LED Strip med FastLED og en Arduino Tutorial: Jeg designede og programmerede dette ferielysshow til at vise hvor som helst. Jeg brugte en WS2812B led strip med en pixeltæthed på 30 pixels/ meter. Da jeg brugte 5 meter, havde jeg i alt 150 lysdioder. Jeg holdt koden enkel, så alle der var nye ved at bruge WS2812
LED Strip Light Paper Lamp: 4 trin
LED Strip Light Paper Lamp: Lampens fulde dimensioner er 6x6x10. Jeg brugte min 3D-printer (CR-10 Mini), og nogle LED-strips og elektronik fandt jeg rundt omkring i huset. Det er en fantastisk bordlampe
Lettere WiFi LED Light Strip Controller: 8 trin (med billeder)
Lettere WiFi LED Light Strip Controller: Sidste forår begyndte jeg at designe brugerdefineret hardware og software til at styre to strimler LED-lys ved hjælp af et NodeMCU ESP8266-12E udviklingsbord. Under denne proces lærte jeg, hvordan jeg lavede mine egne printkort (PCB'er) på en CNC -router, og jeg
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: 7 trin (med billeder)
MIDI 5V LED Strip Light Controller til Spielatron eller anden MIDI Synth: Denne controller blinker trefarvede LED strip lys for 50mS pr note. Blå for G5 til D#6, rød for E6 til B6 og grøn for C7 til G7. Controlleren er en ALSA MIDI -enhed, så MIDI -software kan sende til lysdioderne samtidig med en MIDI -synthenhed