Мазмуну:

MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect: 6 кадам
MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect: 6 кадам

Video: MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect: 6 кадам

Video: MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect: 6 кадам
Video: Сатурн 🪐 в гороскопе Джйотиш 2024, Ноябрь
Anonim
MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect
MIDI2LED - MIDI көзөмөлдөгөн LED Strip Light Effect

Бул менин биринчи көрсөтмөм, андыктан чыдаңыз.

Мен музыка жасаганды жакшы көрөм, жана конок бөлмөсүндөгү концерт сыяктуу жандуу кырдаалдарда, мен ойногон нерсеге шайкеш жарык эффекттери болгондо мага жагат. Ошентип, мен MIDI клавиатурасындагы нотага тийгенде жана нотага тийгенде LED тилкесин туш келди түстө күйгүзө турган Arduino негизделген кутучаны курдум.

Жабдуулар

  • Arduino Uno
  • Arduino протокол
  • MIDI уячасы
  • 1N4148 диод
  • 6N138 opto кошкучу
  • каршылыгы: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED тилкеси (60 LED)
  • кээ бир калган зымдар
  • жылытуучу түтүк
  • Arduino үчүн ылайыктуу корпус (мен пластикалык туташуу кутусун колдоном)

Сизге да керек болот

  • ширетүүчү жана темир
  • MIDI клавиатура жана MIDI кабели

1 -кадам: Электроника

Электроника
Электроника

Район абдан жөнөкөй. Бул стандарттык MIDI кирүүсүнөн (Arduino -нун сол тарабы) жана LED тилкесине туташуудан (Arduino -нун оң тарабы) турат. Бардык бөлүктөрдү прото калканга койгула, мейкиндик көп. Ал жалпысынан LED тилкесин иштетүү үчүн тышкы электр булагын колдонуу сунушталат, бирок мен ойногондо бир эле учурда бир нече LED диоддору күйүп турганын байкадым. кубаттуулук катары Arduino +5V / GND колдонууда көйгөй жок. (Бардык баскычтарды бир убакта жана толук ылдамдык менен басып калбоого аракет кылыңыз.;-)) Эгерде сиз тышкы электр булагын колдонууну чечсеңиз, аны Arduino +5V жана GND казыктарына туташтырыңыз. Кээ бир адамдар бул эки линиянын ортосуна 100uF конденсаторун (схемада көрсөтүлгөн эмес) киргизүүнү сунушташат.

Бөлүктөрдү прото калканга кошуп, схемада көрсөтүлгөндөй LED тилкесин туташтырыңыз.

2 -кадам: LED тилкесин туташтыруу

LED тилкесин туташтыруу
LED тилкесин туташтыруу

LED тилкесинин оң жагын - киргизүү учун - схемага туташтыруу маанилүү. Менин тилкемде кириш катары ургаачы туташтыргычы бар жана кириштен алыс турган үч бурчтуктар бар. Чыгышта эркек туташтыргычы бар болчу (аны бизге кереги жок башка тилкеге туташтыруу үчүн), ошондуктан мен аны кесип, Arduinoдон келген үч кабелге коштум. Үч кабелди LED тилкесине байлап, аларды анча көрүнбөө үчүн жылытуучу түтүктү колдонуңуз.

Мен колдонгон LED тилкеси жабышчаак тасма менен жабдылган, ошондуктан аны MIDI клавиатурасынын артына оңой чаптап койсо болот.

3 -кадам: Долбоорду клавиатураңызга ыңгайлаштыруу

Долбоорду клавиатураңызга ыңгайлаштыруу
Долбоорду клавиатураңызга ыңгайлаштыруу
Долбоорду клавиатураңызга ыңгайлаштыруу
Долбоорду клавиатураңызга ыңгайлаштыруу

Сиз LED тилкесин жана Arduino кодун клавиатурага ылайыкташтырышыңыз керек болушу мүмкүн. Меники 76 баскычка ээ, жана тилкенин узундугу клавиатуранын туурасына дээрлик дал келет. Эгерде сизде мис. 61 ачкыч, сизге кыска тилке керек болушу мүмкүн. LED тилкесин каалаган эки светодиоддун ортосунда кесип салууга болот. Жөн гана туура бөлүктү кесип жатканыңызды текшериңиз, анын кириш учу бар (аял коннектору менен) жана чыгуу учу (эркек туташтыргычы менен), сиз кирүүчү чекти сактап калышыңыз керек. Коддо #аныктамаларды өзгөртүү үчүн

  • Үстүн кесип бүткөндөн кийин липада калган LED санына NUMBER_OF_LEDS,
  • Баскычтобуңуздагы баскычтардын санына NUMBER_OF_KEYS жана
  • Эң төмөнкү ачкычыңыздын MIDI кадам номерине MIN_KEY. Сиз муну клавиатуранын колдонуучусунан таба аласыз; же Linux үчүн KMidiMon же Windows же Mac үчүн Pocket MIDI сыяктуу MIDI нота номерин көрсөтүүчү куралды колдонуңуз; же аппарат клавиатураңыздагы бардык баскычтарга жооп бергиче башка баалуулуктарды колдонуп көрүңүз

4 -кадам: Arduino коду

Arduino коду MIDI китепканасын (v4.3.1) Forty Seven Effects жана Adafruit NeoPixel китепканасын (v1.3.4) Adafruit колдонот. Бул китепканаларды Arduino IDE аркылуу орнотуңуз. Андан кийин кодду түзүп, аны калкансыз Arduinoго жүктөңүз (оптокуплер жүктөөгө тоскоол болгон RX пинине туташкан). USB кабели аркылуу Arduino кубаттаңыз (мен USB дубал сөөлүн колдоном).

Эгерде сиз кааласаңыз кодду өзгөрткүңүз келсе, бул жерде анын иштешине кыскача сереп: Ар бир циклде MIDI киргизүү окулат. Эгерде Note On же Note Off окуясы алынган болсо, MyHandleNoteOn же MyHandleNoteOff функциялары чакырылат. Алар экөө тең ачкыч номеринин ылдамдыгын (б.а. канчалык катуу басканыңызды) сактай турган updateVelocityArray функциясын чакырышат. Эгерде ылдамдык мурда сакталгандан жогору болсо, тиешелүү LEDдин түсү "учурдагы түскө" коюлат. MIDI окуялары иштетилгенден кийин updateLedArray функциясы чакырылат. Бул "учурдагы түстү" жаңыртат (кызыл, жашыл жана көк түстөр сызыктуу түрдө көз карандысыз түрдө өзгөрөт, төмөнкү же жогорку чекке жеткенге чейин, бул учурда сызыктуу өзгөрүүнүн ылдамдыгы туш келди санга коюлган), басылган ноталардын ылдамдыгын акырындык менен төмөндөтөт жана анын түсүн өзгөртүүгө туура келген ар бир LEDдин түс маанилерин жаңыртат (жаңы нотанын соккусуна же ылдамдыгынын азайышына байланыштуу). ShowLedArray функциясы түстөрдү "пикселдер" деп аталган Adafruit_NeoPixel структурасына өткөрүп берет жана чыныгы диоддор пикселдин структурасындагы түстөрдү көрсөтөт.

5 -кадам: Мүмкүн болгон жакшыртуулар…

Долбоор эч качан бүтпөйт. Аны жакшыртуу үчүн дайыма бир нерсе кылса болот:

  • Protoshield анча -мынча бөлүктөрдү камтыйт, бул чындыгында калдык; Ошол эле эффектке Arduino Nano жана 15x7 тешиктүү ПХБ жана кээ бир ургаачы пин баштары менен жетишсе болот.
  • MIDI сигналдарынын айрымдары жоголуп кетет. Бул NoteOn болсо, тиешелүү LED күйбөйт; эгер бул NoteOff болсо, анда ал өчпөйт (ошондуктан мен ылдамдыкты төмөндөтүүнү киргиздим, бул светодиоддор түбөлүккө калбасын камсыз кылат). Мен дагы себебин табууга аракет кылып жатам. Балким, бул убакыт маселеси жана MIDI.read () тез -тез чакырылышы керек.
  • Кээ бир MIDI сигналдары туура эмес окулган, б.а. туура эмес светодиоддор күйөт. Жогорудагы пунктка байланыштуу болушу мүмкүн. Бир аз иликтөө керек.
  • Бул схема колдонуучунун көп аракети жок жагымдуу визуалдык эффект берүү үчүн иштелип чыккан (клавиатураны ойнотуудан башка). Бирок, мен потенциометрди кошо элестете алам (Arduino аналогдук кирүүлөрүнүн бирин колдонуп), анын жардамы менен түстөрдүн максималдуу ылдамдыгын өзгөртө аласыз (учурда #define'd MAX_COLOR_CHANGE_SPEED = 20). Же эки NoteOn окуясынын ортосундагы орточо убакытты өлчөп, ошого жараша MAX_COLOR_CHANGE_SPEED өзгөртүңүз - жай ырларда түс жайыраак өзгөрүшү керек.

6 -кадам: Бүттү

USB кабели аркылуу Arduino кубаттаңыз (мен USB дубал сөөлүн колдоном). MIDI клавиатураңызды MIDI уячасына туташтырып, баштаңыз. Бир аз жеңил музыка ойноп жатканымды көрүңүз (пун, кандай жаман болсо да, арналган).

Сунушталууда: