Съдържание:
- Консумативи
- Стъпка 1: Електрониката
- Стъпка 2: Свързване на LED лентата
- Стъпка 3: Адаптиране на проекта към вашата клавиатура
- Стъпка 4: Кодът на Arduino
- Стъпка 5: Възможни подобрения …
- Стъпка 6: Готово
Видео: MIDI2LED - MIDI контролиран светодиоден лентов светлинен ефект: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Това е първият ми инструктаж, така че бъдете с мен.
Обичам да правя музика и в ситуации на живо като концерти в хола ми харесва, когато има светлинни ефекти в синхрон с това, което свиря. Затова построих кутия, базирана на Arduino, която кара LED лентата да светне в случаен цвят, когато ударя бележка на MIDI клавиатурата си и където ударя бележката.
Консумативи
- Arduino Uno
- Протощит на Arduino
- MIDI жак
- 1N4148 диод
- Оптичен съединител 6N138
- резистори: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- WS2812B LED лента (60 светодиода)
- някои останали проводници
- термосвиваеми тръби
- подходящ корпус за Arduino (използвам пластмасова разпределителна кутия)
Вие също ще имате нужда
- поялник и спойка
- MIDI клавиатура и MIDI кабел
Стъпка 1: Електрониката
Веригата е доста проста. Състои се от стандартен MIDI вход (вляво от Arduino) и връзката към LED лентата (вдясно от Arduino). Поставете всички части на протощита, има много място. Обикновено се препоръчва използването на външно захранване за захранване на LED лентата, но открих, че когато играете, само няколко светодиода са включени едновременно, така че имаше няма проблем при използването на Arduino +5V / GND като изходна мощност. (Опитайте се да избегнете натискане на всички клавиши едновременно и с пълна скорост.;-)) Ако решите да използвате външно захранване, просто го свържете към щифтовете Arduino +5V и GND. Някои хора препоръчват да поставите 100uF кондензатор (не е показан схематично) между тези два реда.
Запоявайте частите към протощита и свържете LED лентата, както е показано на схемата.
Стъпка 2: Свързване на LED лентата
Важно е да свържете десния край - входния край - на LED лентата към веригата. Моята лента има женски конектор като вход и има малки триъгълници, насочени далеч от входа. На изхода имаше мъжки конектор (за да можем да го свържем с друга лента, от която нямаме нужда), така че го отрязах и го запоявах към трите кабела, идващи от Arduino. Използвайте термосвиваеми тръби, за да свържете трите кабела към LED лентата заедно и да ги направите по -малко видими.
LED лентата, която използвах, се предлага с лепяща лента отзад, така че може лесно да бъде залепена към задната част на MIDI клавиатурата.
Стъпка 3: Адаптиране на проекта към вашата клавиатура
Може да се наложи да адаптирате LED лентата и кода на Arduino към клавиатурата си. Моят има 76 клавиша, а дължината на лентата е почти точно ширината на клавиатурата. Ако имате напр. 61 клавиша, може да се нуждаете от по -къса лента. LED лентата може да се реже между всеки два светодиода. Просто се уверете, че отрязвате правилната част, тя има входен край (с женски конектор) и изходен край (с мъжки конектор), трябва да запазите входния край. В кода променете #defines за
- NUMBER_OF_LEDS към броя на светодиодите, останали във вашата лента след отрязване на края,
- NUMBER_OF_KEYS до броя клавиши на клавиатурата ви и
- MIN_KEY до номера на MIDI тона на най -ниския ви ключ. Можете да намерите това в ръководството за потребителя на клавиатурата; или използвайте инструмент, който показва номера на MIDI бележка, като KMidiMon за Linux или Pocket MIDI за Windows или Mac; или изпробвайте различни стойности, докато устройството реагира на всички клавиши на клавиатурата ви
Стъпка 4: Кодът на Arduino
Кодът Arduino използва MIDI библиотеката (v4.3.1) от Forty Seven Effects и библиотеката Adafruit NeoPixel (v1.3.4) от Adafruit. Инсталирайте тези библиотеки с помощта на Arduino IDE. След това компилирайте кода и го качете на Arduino без свързан щит (оптокуплерът е свързан към RX пина, което възпрепятства качването). Захранвайте Arduino чрез USB кабел (използвам USB брадавица за стена).
Ако искате да промените кода по ваш вкус, ето кратък преглед как работи: Във всеки цикъл се чете MIDI входът. Ако е получено събитие Note On или Note Off, се извикват функциите MyHandleNoteOn или MyHandleNoteOff. И двамата извикват функцията updateVelocityArray, която съхранява скоростта (т.е. колко силно сте натиснали клавиша) на номера на ключа. Ако скоростта е по -висока от тази, която е била запазена преди, цветът на съответния светодиод се настройва на "текущ цвят". След обработката на MIDI събитията се извиква функцията updateLedArray. Това актуализира "текущия цвят" (червените, зелените и сините стойности се променят независимо по линеен начин, докато се достигне долния или горния край, в който момент скоростта за линейната промяна е зададена на произволно число), бавно намалява скоростта на натиснатите ноти и актуализира цветовите стойности на всеки светодиод, който трябва да промени цвета си (поради ново попадение на нота или намаляване на скоростта). Функцията showLedArray прехвърля цветовете в структурата Adafruit_NeoPixel, наречена "пиксели" и кара действителните светодиоди да показват цветовете в структурата на пикселите.
Стъпка 5: Възможни подобрения …
Един проект никога не е завършен. Винаги има нещо, което може да се направи, за да се подобри:
- Протощитът съдържа толкова малко части, че наистина е загуба; лесно може да се постигне същия ефект с Arduino Nano и печатна платка с 15x7 дупки плюс няколко женски щифта.
- Някои от MIDI сигналите се губят. Ако е NoteOn, съответният светодиод няма да светне; ако е NoteOff, няма да изгасне (затова въведох намаляването на скоростта, което гарантира, че светодиодите няма да останат включени за неопределено време). Все още се опитвам да разбера причината. Вероятно това е проблем с времето и MIDI.read () трябва да се извиква по -често.
- Някои от MIDI сигналите са прочетени погрешно, тоест греят грешни светодиоди. Може да се свърже с горната точка. Необходимо е известно проучване.
- Схемата е проектирана да дава приятен визуален ефект без много взаимодействие с потребителя (освен свирене на клавиатура). Мога обаче да си представя добавянето на потенциометър, който се отчита (използвайки един от аналоговите входове на Arduino), с който можете да промените максималната скорост, с която се променят цветовете (в момента #дефинира като MAX_COLOR_CHANGE_SPEED = 20). Или измерете средното време между две събития NoteOn и съответно променете MAX_COLOR_CHANGE_SPEED - при бавни песни цветът трябва да се променя по -бавно.
Стъпка 6: Готово
Захранвайте Arduino чрез USB кабел (използвам USB брадавица за стена). Свържете вашата MIDI клавиатура към MIDI жака и започнете да се люлеете. Гледайте ме как пускам малко лека музика (игра на думи, колкото и лоша да е, предназначена).
Препоръчано:
Как да направите огромен светлинен светодиоден знак: 4 стъпки (със снимки)
Как да направим огромен светлинен светодиоден знак: В този проект ще ви покажа как да изградите огромен знак с персонализирани букви, които могат да светят с помощта на RGB светодиоди. Но знакът може да се използва и като основен източник на светлина във вашата стая, като използвате топли бели LED ленти. Нека да стигнем до
Модифициран RGBW LED лентов контролер, PIR контролиран, ESP8285: 3 стъпки
Модифициран RGBW LED лентов контролер, PIR контролиран, ESP8285: Над бюрото си у дома съм инсталирал RGBW LED лента. WiFi LED RGBW контролерът трябва да работи с приложение като приложението Magic Home. Съдържам обаче чип ESP8285, който пробляснах със собствен фърмуер. Добавих PIR, чрез който LED лентата се превключва
Верига за преследване на LED ефект с хубав ефект, използваща BC547: 11 стъпки
Верига за преследване на светодиоди с хубав ефект с помощта на BC547: Здравей, приятелю, днес ще направя верига за преследване на светодиоди. Ефектът му е невероятен. Тази схема ще направя с помощта на транзистор BC547. Нека започнем
Светлинен ефект на камина: 4 стъпки
Светлинен ефект на камина: След дълъг и студен зимен ден не е ли хубаво да седнете пред камината си в топлината на къщата си? Повечето хора всъщност нямат камина, но дори гледката или светлината на пламъците могат да стоплят вас и студеното ви сърце. Ако търсите
7 лентов светодиоден аудио визуализатор: 4 стъпки (със снимки)
7 -лентов аудио визуализатор: Това е проект, който приема непрекъснат аналогов сигнал, обикновено музика и го използва, за да запали 7 -лентов светодиоден визуализатор. Той използва чипа MSGEQ7, за да анализира музикалния сигнал, за да получи честотните величини и да го картографира към светодиодните ленти. Led лентите