Съдържание:

MIDI2LED - MIDI контролиран светодиоден лентов светлинен ефект: 6 стъпки
MIDI2LED - MIDI контролиран светодиоден лентов светлинен ефект: 6 стъпки

Видео: MIDI2LED - MIDI контролиран светодиоден лентов светлинен ефект: 6 стъпки

Видео: MIDI2LED - MIDI контролиран светодиоден лентов светлинен ефект: 6 стъпки
Видео: Isus calmează furtuna - Marcu 4: 35-40 // Meditații la Cuvântul lui Dumnezeu /Devoțiuni creștine.... 2024, Ноември
Anonim
MIDI2LED - светлинен ефект с LED лента, контролиран от MIDI
MIDI2LED - светлинен ефект с LED лента, контролиран от MIDI

Това е първият ми инструктаж, така че бъдете с мен.

Обичам да правя музика и в ситуации на живо като концерти в хола ми харесва, когато има светлинни ефекти в синхрон с това, което свиря. Затова построих кутия, базирана на 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 лентата
Свързване на 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 жака и започнете да се люлеете. Гледайте ме как пускам малко лека музика (игра на думи, колкото и лоша да е, предназначена).

Препоръчано: