Компютри Windows интернет

Направи си сам USB музикална клавиатура за atmega. Как да направите удобен синтезатор със собствените си ръце. Миди клавиатурна схема MKC64 v1.54

Олег Якубов

След като публикувах страницата си в сайта, получих няколко писма с молба да напиша или изпратя схема на midi клавиатура, която съм сглобил. И реших да подготвя статия за midi клавиатурата.

Избрах схемата на клавиатурата MIDI от радиосписание № 3, 4 за 1997 г. Ако някой наистина иска да направи добър инструмент, препоръчвам да отиде до библиотеката и да вземе списания от там, но за тези, които не искат да тичат наоколо и губя време, сканирах цялата тази статия (мисля, че не е в ущърб на автора). Много съм доволен от MIDI клавиатурата. Като цяло нямаше проблеми с монтажа, с изключение на някои правописни грешки в диаграмата (вероятно направени от редакторите при излагането на статията). Направих корекции преди сканиране, това може да се види чрез внимателно изучаване на диаграмата. Моля, обърнете внимание: когато мигате ROM, не правете грешки при въвеждане на кодове, в противен случай инструментът или изобщо няма да свири, или няма да работи правилно. Бих искал да изкажа специални благодарности на самия автор на тази статия за разпечатването на кодовете за проверка на ROM таблицата, тъй като е трудно да се въведат всички знаци без грешки, а при въвеждането аз самият направих грешки на две места и благодаря към контролните суми бързо намерих грешки. Също така в таблицата, която сканирах, подчертах тези места, където авторът посочва в случай на замяна на два знака. Това е в случай, че клавиатурата не започва с нотата Фа, а с нотата До. Монтирах всички части и компоненти на устройството на платка и запоих връзките между щифтовете на микросхемите с тънък проводник във флуоропластична плитка, само между клавиатурата и платката запоих с плосък кабел. Единственото нещо, което направих, беше да увелича капацитета на кондензатора C1, тъй като процесорът не стартира. Midi клавиатурата работи много стабилно и досега не съм имал проблеми!!! Ако тази схема изглежда много сложна за някого, опитайте се да сглобите друга схема, също публикувана в радиосписание № 11, 1993 г. Но в тази схема няма такива възможности като във веригата, за която току-що писах. Затова препоръчвам да имате малко търпение и да съставите диаграма от радиосписание № 3, 4 за 1997 г. Сканираната статия е по-долу. Ако някой все още има проблеми с монтажа, моля, свържете се с мен, може би мога да препоръчам нещо. Единственият недостатък на тази схема според мен е неудобството при бързия избор на инструмент, както и малката възможност за ефекта „PITCH“. Обикновено клавиатурите имат този ефект под формата на колело от лявата страна на клавиатурата.

Желая ви приятна сглобка!!!

MIDI КЛАВИАТУРА ЗА МУЛТИМЕДИЙНИ КОМПЮТРИ И MIDI СИНТЕЗАТОРИ

С. Кононов, Тула

MIDI клавиатурата, разработена от автора на тази статия, принадлежи към електронни музикални инструменти с повишена сложност и е адресирана предимно към читатели, които имат определени познания и опит в конструирането на такова оборудване. Следователно описанието на дизайна е дадено в кратко резюме. Редакторите смятат, че съдържанието на тази публикация ще привлече вниманието на тези, които като цяло се интересуват от електронна музика и може би ще започнат да проектират модерно оборудване. За тях ще бъде полезно да се запознаят със статиите на А. Студнев „Какво е MIDI?“ и “MIDI клавиатура”, публикувани в януарския и ноемврийския брой на “Радио” за 1993 г., както и статията на К. Биструшкин “Мултимедията ще дойде във всеки дом” (“Радио”, 1996, № 3).

Препоръчителната MIDI клавиатура е „тъп“ клавишен инструмент, чиято основна цел е да работи заедно с персонални компютри, оборудвани с Creative, Sound Blaster, Gravis, YAMA-HA и други музикални карти, които имат midi вход. Освен това ви позволява да работите с външни синтезатори, тон генератори и всяко оборудване, което също има midi вход.При разработването на сервизните функции на MIDI клавиатура моделите за „имитация“ са продукти на италианската фирма „MASTER STAR“ . Първо проектирах универсално MIDI дистанционно управление за акордеон и акордеон, което беше представено на изложението MUSIKMESSE-95 (Франкфурт на Майн). Тогава възниква идеята това структурно сложно устройство да се превърне в по-проста MIDI клавиатура, достъпна за повторение от читателите на списание Radio. Инструментът има солидна услуга. По-специално, той позволява на всеки клавиш да контролира два MIDi канала, като присвоява на всеки от тях собствени програми (тембри) и ги запаметява заедно с нивото на звука на всеки канал в паметта на устройството. По този начин можете произволно да комбинирате и наслоявате произволно два звука-извадки от наличните в тон генератора, свързан към клавиатурата. В "готините" устройства този режим се нарича "COMBY".Клавиатурата също ви позволява да променяте височината на инструмента с една октава нагоре или надолу, да зададете до 127 програми, да контролирате голям брой MIDI канали (от 1 до 16 ), контролирайте звуковите ефекти PITCH BEND, VOLUME, MODULATION, SUSTAIN и много други. Темпото на изпълняваното произведение е от 20 до 240 удара в минута. Границата на разделяне на клавиатурата на две ръководства е произволна.Инструментът, веригата, се състои от три функционално завършени части: процесорен блок (A1), контролен панел (A2) и клавиатурен блок (A3). Наборът от микросхеми, използвани в тях, е подобен на компонентите на устройства като Spectrum и Caller ID, така че тези, които обичат да проектират EMR, няма да имат затруднения при намирането на елементната база.Процесорният блок е подобен по дизайн на веригата на процесора за идентификация на обаждащия се . Главният осцилатор на процесора Z80 (DD2) е сглобен с помощта на логически елементи DD1.1 - DD1.3 и кварцов резонатор ZQ1. Естествената честота на кварцовия резонатор трябва да бъде 4 MHz, в противен случай скоростта на предаване на MIDI информация от висок ред на регистър C на чипа DD6 през буферния елемент DD1.4 ще се промени.Единица е сглобена на транзистори VT1, VT2, които осигурява сигнал за нулиране на входа RES (RESET - щифт 26) DD2 чипове при включване / изключване на източника на захранване, когато напрежението му не надвишава +4,5 V. Това повишава надеждността на съхраняване на информация в енергонезависимата памет на чипа DD5 в момента на включване или изключване на захранването. Батерията GB1, заедно с кондензатор C3, резистор R8 и диод VD2, поддържа захранване на микросхема DD4 за дългосрочно съхранение на информация в нея, когато общото захранване на инструмента е изключено.Микросхемите DD7 и DD8 на контролния панел осигуряват запитване на бутони SB1-SB19 на контролния панел, динамична индикация на четириразряден седемелементен дисплей, образуван от индикатори HG1, HG2, и цифровизация на единствената аналогова част на устройството - регулатор на звука R40 "Volume". За дисплея използвах много удобни, по мое мнение, ярки двойни индикатори VQE14 (старо име KIPTS09I), инсталирани в телевизори Horizon от 4-то и 5-то поколение. Включването на индикатора HQ2 е подобно на включването на индикатора HG1, показано на диаграмата.

Блокът на клавиатурата се формира от музикална клавиатура с пет октави (61 клавиша), започваща с нотата „F“, чипове D09, DD10 и конектори X1-X3 за свързване на два външни MIDI приемника и педал „SUSTAIN“ към инструмента. Всеки клавиш на клавиатурата е оборудван с чифт нормално отворени контакти, които са комбинирани в матрица 8x8 с диодна (VD14-VD74) изолация. В диаграмата символът SA1 показва най-левия клавиш, а символът SA61 показва най-десния клавиш. Запитването на матрицата се осигурява от чипове DD9 и DD10. Ако музикалната клавиатура, използвана за конструирания инструмент, започва с нотата „C“, тогава настройката на матрицата трябва да бъде изместена със седем клавиша. За да направите това, в ROM трябва да увеличите кода в клетките с адреси 025FH и 0268H със седем единици ( вижте таблицата за програмиране на KR573RF5 ROM ) , т.е вместо код “05” напишете “OSN”. Захранването на клавиатурата е стабилизатор на напрежението на микросхемата KR142EN5V, чийто вход се захранва от външен източник с постоянно напрежение от 9 V. Такъв източник може да бъде всяко малко по размер мрежово захранване, включително вносно, осигуряващо натоварване ток най-малко 500 mA. Кондензаторите C6-C9 на изхода на стабилизатора са блокиращи за захранващите вериги на микросхемите.Частите и компонентите на устройството са монтирани на четири печатни платки, които са свързани помежду си с плоски кабели и са разположени под предния панел на корпуса на клавиатурата. Бутоните на превключвателите SB1-SB19, индикаторите HG1, HG2 и валът на променлив резистор R40, преминали през отворите в панела, формират контролния панел на MIDI клавиатурата.Педалът SUSTAIN може да бъде с всякакъв дизайн с двойка нормално отворени Контакти. Свързва се към инструмента чрез конектор X3 Jack (1/4 JACK), разположен на задния панел на инструмента. Външният вид на MIDI клавиатурата и оформлението на контролния панел на дисплея (индикатори HG1, GH2), контрол на силата на звука (резистор R40 "VOLUME") и бутони (SB1 - SB19) са показани на фиг. Използвайки ги, музикантът може да извършва всички необходими MIDI операции за избор на тембри, номера на канали, преразпределяне на гласове и т.н., както и да управлява външен ритъм компютър или секвенсер. Бутоните с цифри, разположени отдясно на дисплея, въвеждат съответните номера на програмата, MIDI канал, темпо, а функционалните бутони отляво на дисплея контролират различни параметри на клавиатурата. С последователно натискане на бутона "PROG" (програма), на дисплея се извеждат параметрите на клавиатурата: - вид на песента и номер на звуковата програма на тази песен. Буквите от лявата страна на дисплея показват: A - ляво (долно) ръководство, B - дясно (горно) ръководство, C - допълнително midi устройство. Буквата е последвана от трицифрения номер (000-127) на аудио програмата, присвоена на тази песен;

- контрол на темпото за ритъм генератор; в същото време на дисплея се показва буквата T и трицифрено число, характеризиращо честотата на ударите (надолу) в минута, а запетаите на дисплея създават ефекта на „светлини за движение“ за визуален контрол на скоростта на генератора на темпото Диапазонът на регулиране на темпото е от 20 до 240; - канален режим и номер на собствената програма на инструмента: в този случай буквата P от лявата страна на дисплея означава, че цялата клавиатура "седи" на песен *A* Буквата U - информацията от клавиатурата се предава едновременно на песен "B" (режим "COMBY"), буквата L е лявото ръководство, т.е. песен "A" (дясното ръководство е "B") , Зад буквата дисплеят показва двуцифрен номер (00-99) на собствената програма, съхранена в DD5 RAM паметта.Собствената програма на инструмента характеризира номера на звукови програми и MIDI канали за песни, както и следната информация : PITCH - скорост на тонална настройка, MODULATION - ниво на дълбочина на модулация, VOLUME - ниво на звука, SPUT - граница на ръчно разделяне, режим на MODE канал (P. U, L), Ost A - +/- октава за левия ръчен, Ost B - +/- октава за дясно ръководство. Бутоните "-1" и +1 намаляват (увеличават) цифровите данни на дисплея. Бутонът "MIDI" се използва за присвояване на MIDI канал към всяка песен и последователното му натискане избира песен. Дисплеят показва песента Ac (Bc, CC) и номера (1-16) на MIDI канала. С помощта на бутона "START" стартирате или спирате (с второ натискане) външен ритъм компютър или секвенсер - "Strt" или "Stop" се появява на дисплея съответно за няколко секунди. Бутонът "БЯЛ" има две функционални предназначения. Ако всички избрани параметри на клавиатурата са задоволителни и те трябва да бъдат запомнени под текущия номер на вашата собствена програма, натиснете този бутон два пъти. Когато се натисне за първи път, дисплеят ще маркира четири тирета, приканвайки устройството към режим на програмиране. При второ натискане всички режими и параметри се съхраняват в паметта на собствените програми на устройството, а дисплеят показва текущия номер на собствената програма. Второто предназначение на бутона "WRITE" е да работи с устройството в режим на програмиране на функции. Този режим се активира с първо натискане на бутона "WRITE". На дисплея се появяват четири тирета, символизиращи покана за режим на програмиране. Дигитализираните бутони започват да изпълняват функциите на програмисти на следните режими: - PITCH - скорост на тонална настройка. Дисплеят показва "PITCH BEND" и число (1-4). Индикацията “Pb” съответства на минимума, “Pb4” - максималната скорост на промяна на този параметър; - МОДУЛАЦИЯ - дълбочина на модулация 25, 50, 75 и 100%. Означава се съответно с буквите LF (ДЪЛГА ЧЕСТОТА) и цифрите 1. 2, 3 и 4; - VELOCFTY - скорост на натискане на клавишите - фиксирана за цялата клавиатура. Показва се на дисплея като трицифрено число (000-127); - VOLUME - ниво на звука (O-15). Дисплеят показва две числа: отляво - за лявата част на клавиатурата (писта A) в режим на разделяне на ръководствата, отдясно - за дясната част (писта B): - SPLIT - границата на разделяне на клавиатурата в две ръководства. Дисплеят показва "SP" (SPLIT) и двуцифрения номер на последния клавиш от лявата страна на клавиатурата; - MODE - режим на програмиране на канала (P, U, L). На дисплея светва “Pr” - буквата, съответстваща на режима на канала (P, U, L); - ТРАНСПОРТ - транспониране, т.е. промяна на височината на клавиатурата с 12 полутона надолу или със същия брой полутона нагоре. Режимът на транспониране надолу се обозначава от дисплея като двуцифрено число 01-12 със знак „-“, режимът на транспониране надолу се обозначава без знак. Числото 00 показва липса на транспониране; - Ost A - +/- октава за ляв мануал. Това означава, че скалата на клавиатурата на песен А може да бъде изместена с октава надолу или с октава нагоре. Дисплеят показва “Ao”-1”, “Ao-0”, “Ao-1”, което означава съответно изместване с октава надолу, без изместване и изместване с октава нагоре: - Ost B - +/- октава за правилното ръководство. Дисплеят съответно показва „In -1, „In 0” и „In 1”; - PAUSE - размерът на паузата между MIDI изпращанията. Дисплеят показва „PA” и двуцифрено число 01-50, показващо размера на паузата в произволни единици.

За съжаление, някои музикални карти в мултимедийните компютри се „подхлъзват“ при смяна на аудио програмата, т.е. спират да получават MIDI съобщения, докато се зарежда новата аудио програма, което води до загуба на получената информация. Например картата YAMAHA SW20 сменя звуците за 0,5...1 s, а GRAV1S ULTRASOUND зарежда звукови програми от твърдия диск, което отнема още повече време. За ясна работа на звуковата карта YAMAHA SW20 размерът на паузата съответства на 16. За евтини карти като SOUNDBLASTER и за музикални инструменти с MIDI вход, PAUSE=1. "Параметрите на изброените функции могат да се променят с помощта на бутоните "-1" и "+1". Когато натиснете отново бутона "WRITE", звуковата програма на песен A (0-127) и звуковата програма на песен B (0-127) се въвеждат в паметта на собствените програми на устройството. , песен C звукова програма (0-127), MIDI номер на канал A (1-16), MIDI номер на канал B (1-16), MIDI канал номер C (1-16), сила на звука на песен A (0-15), сила на звука на песен B (0-15), октава A (-1, 0, 1), октава B (-1, 0.1), работа режим на ръководство (P, U, L), нива, модулация (1 -4), скорост PITCH BEND (1-4) Независимо от серийното номериране на собствените програми на описания инструмент, границата на секцията SPLIT (1- 61), промяна на височината на звука TRANSPORT (-12, 0, +12), скорост на натискане на VELOCITY (0-127), темпо на изпълнената композиция (2&-240). Копчето "VOLUME" и "PITCH-", "P1TCH" +", "MOD" бутоните на дистанционното управление на MlDI клавиатурата са оперативни контролни контроли. от тях регулират силата на звука на външното устройство. Ако клавиатурата обслужва два MIDI канала (режими U, L), тогава регулаторът обслужва и тези канали, но на свой ред. Коя част от клавиатурата (ръчно) е била докосната от ръката на човек в последния момент, параметрите за контрол на силата на звука ще бъдат предадени през този MIDI канал. Това може да стане по-ясно, като влезете в режима за програмиране на функции - натиснете бутона “WRITE” и използвайте бутона “4”, за да включите функцията VOLUME. Когато копчето на резистора R40 се завърти плавно по посока на часовниковата стрелка, дисплеят трябва да показва 16 градации на нива от 0 до 15. Ако работим от лявата страна на клавиатурата, регулаторът ще повлияе само на силата на звука на канал „А“ и нивото на звука ще се покаже от лявата страна на дисплея. Когато работите от дясната страна на клавиатурата, управлението ще повлияе Бутоните "PITCH-" и "PITCH+" осигуряват удобна симулация на работата на колелото за управление PITCH BEND с плавно изместване на тона надолу/нагоре и назад. режим на програмиране на функции, можете да ускорите или забавите работата на симулатора PITCH BEND. избиране на една от четирите скорости на огъване на височината. Бутонът "MOD" е контролен елемент за четири нива на модулация (25, 50, 75 и 100%). Натискането и задържането му в тази позиция активира MIDI тон модулация. Когато бутонът бъде освободен, модулацията е деактивирана. Собствениците на компютри, оборудвани със звукови карти с MIDI интерфейс, също ще се нуждаят от адаптер (MIDI адаптер), който е необходим за галванична изолация между MIDI входа на инструмента и TTL midi входа на компютърната звукова карта. Диаграмата му е показана на фиг. 2.

Изолацията се осигурява от оптрон AOT127A (U1). Адаптерът се захранва през конектора на звуковата карта (щифтове 1.8 и 9 - +5 V, пинове 4 и 5 - общи). Входовете "MIDI THRU- и "MIDI OUT" са предназначени за свързване на синтезатори, тонгенератори и други външни MIDI приемници, които не са вградени в компютъра. Когато настройвате MIDI клавиатура, трябва да се обърне специално внимание на настройката на R38- R40 възел за аналогово-цифрово преобразуване на нивото на контрол на силата на звука. Направете това на дебъгван и напълно функциониращ инструмент в този ред. Включете инструмента, натиснете бутона "WRITE" на дистанционното управление и след това използвайте "4" бутон, за да включите функцията VOLUME.Когато копчето на резистора R40 се завърти плавно по посока на часовниковата стрелка, дисплеят трябва да показва всичките шестнадесет градации на нивата - от 0 до 15. Ако обхватът на регулиране е предубеден или тесен, постигнете нормална работа на аналогово-към- цифрово преобразуване чрез избор на резистор R38.

Проверете наличността на midi съобщения, както следва. За пин 5 на конектора "MIDI OUT", свържете входната сонда на осцилоскопа, натиснете педала "SYS-TAIN" или свържете (временно) входовете PCO и PC1 на чипа DD6 към общ проводник, след което включете захранването на инструмента.С тази връзка работи програма за цикличен MIDI изход.код 55H.На екрана на осцилоскопа изглежда като последователност от поредица от пет импулса.Продължителността на всеки бит от кодовото съобщение е 32 минути, което съответства на 31250 bps Скорост на предаване на MIDI съобщение.

  • Звук
  • Като малък имах пиано, истинско, съветско, около 300 килограма, обичах да дрънкам на него, а след като завърших музикалното училище, дори свирех нещо. Пианото е готино, автентично, но никак не практично. И за да го направите наистина подходящо за душата, имате нужда и от комплект барабани, комплект аксесоари за електрическа китара, кларинет, ситар и семплови лупове...

    Разбира се, вече не е необходимо да превръщате апартамента си в гаражно студио с шест заплати; всичко, което трябва да направите, е да инсталирате безплатен музикален редактор на вашия компютър. Но всичко това е неудобно.

    Компютърната клавиатура изобщо не е като клавиатурен инструмент, тук всичко е различно. Освен това това изобщо не е подходящо за обучение на дете. Изглежда, че няма друг избор, освен да закупите синтезатор. Но все още имам съмнения.

    Какво е синтезатор? Голямо устройство, с музикална клавиатура, което трябва да заема много място някъде. Което е с вградена акустика, но вече имам приемник с колони. В който е вграден лош компютър, но аз имам добър компютър.

    Оказва се, че за 40 хиляди купувам това, което вече имам с най-добро качество, с изключение на клавиатурата. Това е просто някакъв максимум нерационални разходи.

    Търсейки отделна клавиатура, попаднах на такъв клас устройства като USB MIDI Keyboard.
    Винаги ми се струваше, че MIDI принадлежи към сферата на професионалната музикална дейност.
    Но сега цялата музика се прави на компютър, на всяко удобно място, което означава, че музикантите се нуждаят от мобилни музикални клавиатури, които лесно могат да се поберат в раница.

    В главата ми веднага се оформи план. Ние свързваме MIDI клавиатура към домашен медиен център, базиран на Raspberry Pi 3, където работи софтуерен синтезатор, позволяващ на всеки да изпълни следващия си шедьовър по всяко време. Тези MIDI клавиатури обикновено имат набор от контроли и допълнителни бутони, които са програмирани за различни ефекти или допълнителни музикални инструменти. Изглежда и звучи много готино!

    Има по-големи и по-малки устройства, някои по-скъпи и други по-евтини. Избрах варианта за около 5 бона. Има две октави, нормални клавиши, бутони за барабанисти, копчета за настройка, тоест всичко, за което може да мечтае един начинаещ електронен музикант.

    Не съм експерт в създаването на музика на компютър, така че беше трудно да търся начини да реализирам идеята си. Информацията трябваше да се събира малко по малко. Пъзелът постепенно започна да се оформя и успях да сглобя работещо решение, което споделям с вас. Колкото и да е странно, стандартната дистрибуция на Raspbian/Debian съдържаше всичко необходимо, дори не трябваше да свързвате външни хранилища.

    Fluidsynth се използва като секвенсер (приложение, което възпроизвежда MIDI файлове).
    MIDI клавиатурата се разпознава веднага чрез ALSA и е достъпна за свързване към секвенсера.
    За възпроизвеждане на звуците на различни инструменти се използват отворени бази данни с примери във формат SoundFont2. Първо, нека инсталираме всичко това.

    Sudo -s apt-get актуализация apt-get -y инсталирайте alsa-utils fluid-soundfont-gm fluidsynth
    Свързваме MIDI клавиатура към Raspberry и стартираме секвенсера в сървърен режим:

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    Изпълняваме командата:

    Aconnect -o
    В резултат на това ще видим списък с налични MIDI клиенти:

    Клиент 14: "Midi Through" 0 "Midi Through Port-0" клиент 20: "VMini" 0 "VMini MIDI 1" 1 "VMini MIDI 2" клиент 128: "FLUID Synth (1628)" 0 "Synth input port (1628) ) :0)"
    Тук е важно да запомним клиентските номера на клавиатурата и секвенсера, за да можем след това да ги свържем с командата:

    Aconnect 20:0 128:0
    Сега всички сме готови да свирим на пианото Yamaha (това е инструментът по подразбиране). Прочетете ръководството за fluidsynth, там има много интересни команди, например за смяна на инструмента на барабани или духови, задаване на количеството реверберация или припев.

    Нека направим нашия софтуерен синтезатор удобен. За да не свързваме ръчно клавиатурата към секвенсера всеки път, ще напишем прост демон, който ще прави това автоматично при стартиране.

    Cat > /etc/init.d/fluidsynth<< EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & sleep 60s && aconnect 20:0 128:0 & ) stopDaemon() ( pkill -9 fluidsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case "$1" in start) startDaemon ; ; стоп) стопDaemon ;; рестартиране) рестартиране на Daemon ;; състояние) ;; *) startDaemon esac изход 0 EOF
    Регистрирайте демона за автоматично стартиране:

    Chmod 755 /etc/init.d/fluidsynth update-rc.d стойности по подразбиране на fluidsynth
    Моля, обърнете внимание, че сега при стартиране секвенсерът получава конфигурационен файл (/home/osmc/midi-router), съдържащ команди, които превръщат нашата клавиатура в истински синтезатор.

    Ето това е нещото. Всеки клавиш и копче на клавиатурата изпраща определени събития със собствен номер. Доколкото разбирам, тук няма специални стандарти, така че всеки производител прави каквото иска. Например, искам квадратните клавиши да звучат като барабани, останалите клавиши да звучат като пиано, а копчетата да контролират силата на звука, реверберацията и припева.

    И така, трябва да картографирам кодове на събития от клавиатурата към различни инструменти и кодове от копчета към кодове, които секвенсерът разбира. Във fluidsynth това се прави с помощта на рутер. Именно тези команди се съдържат в конфигурационния файл.

    Ето пример за моя конфигурационен файл с коментари за това какво прави.

    Cat > /home/osmc/midi-router<< EOF # загружаем стандартные инструменты и ударники, найденные где-то на просторах Сети load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # связываем инструмент каждый со своим каналом select 1 2 128 0 select 2 1 0 0 # по умолчанию звук идет на канал 0 # перенаправляем события с квадратных клавиш на канал с ударными router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # события с остальных клавиш перенаправляем на канал с пианино router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # события с ручек мэпим на события, которые понимает секвенсер, # полный их список есть в документации на сайте fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # выключаем громкость на канале 0, # иначе при нажатии на клавишу # разные инструменты будут звучать одновременнно cc 0 7 0 EOF
    За да разберете какви кодове генерира вашето устройство, трябва да използвате тази помощна програма:

    Aseqdump -p 20:0
    Той слуша и извежда събития от MIDI клавиатурата към конзолата. Натиснете бутона или завъртете копчето и ще видите вида на събитието, канала и кода. Можете да програмирате клавиатурата си по начина, по който искате, а не по начина, по който са го измислили инженерите, проектирали конкретен синтезатор. За което много благодаря на разработчиците fluidsynth, alsa, SoundFont2, Raspberry и V-Mini.

    Между другото, тази тема с DIY синтезаторите е отразена в няколко изобретения, препоръчвам ви да я проучите.

    Клавиатурата е предназначена за свързване към външен звуков модул или компютър (ако има подходящ интерфейс) по MIDI протокол - за запис на музика в програма за секвенсър или изпълнение на живо. Броят на клавишите в предложената версия е 48, но може да се увеличи без промяна на схемата до 64. Отличителна черта на предложената клавиатура е нейната чувствителност към силата на удара върху клавиша.

    История на устройството

    Преди известно време във връзка със закупуването на апартамент бях принуден да загубя луксозен инструмент, който ми служеше като MIDI клавиатура - това беше легендарната YAMAHA DX-7. Когато тъгата утихна, изникна въпросът с цялата му строгост и грозота: върху какво да се работи? Точно в този момент, чрез усилията на моя приятел, полусглобена схема за KR1816BE39 (в противен случай този процесор се нарича 8048) падна в ръцете ми. Веригата е лесна за сглобяване и настройка и, най-важното, дойде под ръка в точното време. Сглобих клавиатурата под формата на матрица 8x6, използвайки KR1533ID7 и KR1533KP7. Имаше и муха в мехлема - два недостатъка на тази схема убиват всичките й предимства до смърт: липсата на чувствителност към скоростта на натискане на клавишите (високоговорителите) и колелото PITCH WEEL. Е, веднъж програмирах на Z-80 (и дори направих работещ секвенсер) и реших да се отърся от старите времена. Решително отхвърлих Z-80 като процесор като морално остарял. Освен това не исках да правя много запояване и реших да взема същото устройство на KR1816BE39 като основа, оборудвайки го с друг мултиплексор за прекъсващите (горни) контакти на клавишите. Намерих документация (няма да повярвате - в библиотеката, книгата “Проектиране на цифрови устройства на едночипови микропроцесори”) за асемблера KR1816BE39 и надрасках програма... И тогава се оказа, че ROM програмистът на един приятел има умря и просто нямаше с какво да флашна програмата... От мъка напълно си загубих ума и реших да пренапиша същия алгоритъм за PIC. За половин ден програмистът (LUDIPIPO) беше запоен заедно, след това беше направен прототип от гнездо, KR1533ID7 и чифт KR1533KP7, а цялата инсталация беше извършена от MGTF без никакъв печат. И процесът започна...

    Първо беше пусната нединамична версия на програмата (представям я и за тези, които имат клавиатура с един контакт на клавиш). След това стартира динамичната версия. И тогава дойде идеята да добавя бутони и индикатор. Факт е, че имах WAVEBLASTER (дъщерен синтезатор на вълнова таблица за много стари звукови системи), който лежеше бездействащ дълго време. Като го свързах с моето творение, получих нещо, на което можете да играете (в рамките на вашите способности и талант) без компютър, което понякога е доста удобно. Това определи набора от функции на бутоните - може да бъде полезно при свързване към звукови модули по време на игра „на живо“. Функциите на бутоните се променят лесно, като напишете свои собствени манипулатори и използвате моите процедури за запитване и показване. По някакъв начин клавиатурата, събрана в железен калъф, се оказа по-удобна от YAMAHA PSS (все още клавиши в пълен размер, педал и най-важното - динамика!). В разгара на творческия процес възникна трудното желание да се направи версия на MIDI клавиатурата само за компютър - индикаторът и бутоните не са задължителни, но колелата PITCH WEEL и MODULATION са необходими. Известно време се мъчих с него, но накрая се отказах и включих отново поялника. Електрониката не е трудна за сглобяване, но механиката е малко по-трудна и започнах да бръчкам чело над дизайна на колелото. След известно мислене реших да изоставя второто колело - така или иначе, никога не въртя и двете наведнъж, обикновено първо пиша ноти и тон, след това добавям модулация. Не на последно място беше намаляването наполовина на обема на механичната работа, която обичах толкова много. За по-малко мързеливите, ще обясня по-долу как да направите две колела почти без сложност. За да мога все още да пиша модулация, реших да организирам три режима на работа на колелото: височина за 2 полутона, височина за 1 полутон (удобно) и модулация. Можете да превключите всичко това с един бутон и да посочите режима с чифт светодиоди. За да опростя схемата, премахнах останалите бутони и индикатори; всичко това не е необходимо за работа с модерни програми за секвенсор.

    Колелото, разбира се, трябва да бъде поставено на оста на потенциометъра, това е разбираемо, но към какво трябва да бъде свързано? Първата ми мисъл беше да използвам еднократен изстрел на таймера 555. Но изчисленията показаха, че би било трудно да се постигнат точни и стабилни измервания на продължителността на импулса, докато се опитваме да осигурим приемлива честота на семплиране на колелото, тъй като процесорът е зает главно с измерване на превключването време на контактите на клавиатурата. Единственият останал начин е да се използва аналогово-цифров преобразувател (ADC). Тъй като използвах Pic16F84 без вграден ADC, си спомних моята инженерна подготовка (и моята родна фабрика) и направих ADC от няколко резистора с компаратор (и част от програмата). Оказа се просто, евтино и доста точно.

    Представям и двете схеми - и с бутони и с колелце, както и програми за тях. Ако желаете, двете вериги могат лесно да се комбинират чрез лека промяна на адресите на външните устройства; просто трябва да запомните, че режимът CHORUS (STEREO) използва височина за получаване на разстройване и трябва или да го премахнете, или да се притеснявате за предаване на височина с разстройване през каналите.

    И така - същинската клавиатура

    Схема на устройството

    Първата се появи нединамична версия, нечувствителна към силата на удара върху клавиша - за тестване на функционалността на оформлението.

    Използвах PIC16F84 като процесор по няколко причини: този чип е достъпен, евтин и лесен за програмиране и беше този, който имах под ръка. Внимание: PIC16C84 не е подходящ - има само 36 клетки RAM и програмата няма да работи. Веригата на колелото обаче използва по-малко RAM клетки и нейната програма може да бъде притисната в PIC16C84 чрез намаляване на още няколко клетки, например MIDCH (чрез присвояване на постоянен MIDI канал на всички предавани данни).

    Диаграмата на динамична клавиатура с индикация е показана по-долу:

    Веригата е традиционна в много отношения - трудно е да се преоткрие велосипед без педали и колела J Port B работи за предаване - по-малките 7 бита извеждат ключовия адрес в матрицата или данни за външни устройства (индикатор и DAC на колелото). Най-значимият бит се използва за извеждане на MIDI данни в сериен код - преобразуването и извеждането се извършват софтуерно. Следователно кристалът трябва да е на 4 MHz, освен ако не искате да пренапишете рутинния изход на MIDI байт. Двата най-малко значими бита на порт А работят за приемане - те получават сигнали от мултиплексорите на „освободените“ и „натиснатите“ клавишни контакти, а трите най-значими бита определят адреса на външното устройство (чрез друг декодер KR1533ID7). Във веригата с колелото изоставих декодера на адреса на външното устройство, за да опростя веригата и да освободя високия бит на порта PA4 за въвеждане на данни от компаратора, така че адресите на клавиатурата и бутоните са различни. Когато комбинирате веригите, тази микросхема ще трябва да бъде върната, за да декриптирате адреса, използвайте порт битове PA2 и PA3 и адресирайте 4 устройства: клавиатура, бутони, регистър на данни за динамична индикация и регистър за познаване на динамична индикация. Индикацията за режим на колело ще трябва да бъде пренаписана.

    Веригата с колелото PITCH WEEL / MODULATION изглежда така:

    На всеки ключ е монтиран по един диод за разединяване. Резисторите на входовете на мултиплексорите не трябва да са повече от 8k, в противен случай са възможни проблеми поради монтажния капацитет. Индикатор - произволен с общ анод за 3 цифри, ако клемите на сегментите на всяка цифра се извеждат поотделно, клемите на едноименните сегменти трябва да се комбинират - индикацията е динамична и цифрите светят последователно. Всякакви бутони, без заключване, отскачането на контакта се контролира от софтуер. Светодиодите са инсталирани близо до едноименните бутони и показват активирането на съответните режими; бутоните „+“ и „-“ нямат светодиоди. Транзисторите на индикатора са всякакви нискомощни и високочестотни обратна проводимост. Два регистъра KR1533IR23 се използват за алтернативно фиксиране на адреса и кода на текущата индикаторна цифра (светодиодите също са групирани в две квазицифри). Използвах стандартна клавиатура от съветски електрически органи с 48 клавиша (тя също беше произведена отделно като радиоконструктор „СТАРТ“ и е доста разпространена). За да се намали височината на клавиатурата и дебелината на инструмента, две от шестте контактни групи под всеки клавиш бяха оставени и цялата беше изрязана и залепена отново. Като цяло е достатъчна една превключваща група на ключ, но беше по-удобно да я залепите по този начин. Шините на “освободени” и “натиснати” контакти са с дължина 8 клавиша. Ако желаете, можете да използвате и клавиатура, където вместо превключваща група контакти се използват две двойки затварящи контакти - едната двойка се затваря в началото на движението на клавиша, другата в края (както при инструментите на YAMAHA). В този случай сигналът към PA0 трябва да се подава от обратния изход на мултиплексора (щифт 6). Без промени в схемата можете да използвате клавиатура с 64 клавиша (стандартно - 61, т.е. 5 октави). Ако е необходимо, броят на ключовете може да бъде увеличен до поне 127, за да направите това, трябва да въведете друг декодер KR1533ID7 във веригата.

    Много е важно да настроите добре механиката - горните контакти ТРЯБВА да се затварят при отпускане на клавишите. Ако това не е направено, програмата счита такива клавиши за натиснати и се опитва да ги обработи, така че повторното натискане на тези клавиши не издава звук. Освен това максималният брой ноти, които могат да се свирят едновременно, е 10 (ако някой има повече пръсти на ръцете си, този брой лесно може да се промени), а неотпускането на клавишите намалява този брой. По същите причини броят на клавишите, посочени в процедурата за запитване на клавиатурата, ТРЯБВА да съвпада с броя на реалните клавиши. Отскачането на контакта се потиска от софтуера.

    За резистивна матрица R-2R ADC е препоръчително да изберете резистори с точност от 1–2%, а абсолютните стойности могат да бъдат различни, съотношението е важно. Въпреки това, не трябва да увеличавате значително номиналната стойност; това ще увеличи времето за преобразуване поради входния капацитет на компаратора. Използвах SMD резистори без съвпадение, въпреки че измерванията показаха, че в една монтажна лента резисторите обикновено се съгласуват с точност над 1%. Сигурен съм, че схемата ще работи с неточни резистори, но линейността на характеристиката ще се влоши. Самото колело е направено от дръжка от стар телевизор и има пружина по оста на потенциометъра, която го връща в средно положение. За удобство при настройка на механиката, когато включите захранването с натиснат бутон за режим, се активира програма за отстраняване на грешки, която светва светодиода, когато колелото е в средно положение, което ви позволява да настроите фино нулевата позиция на колелото по оста на потенциометъра. Ако има нужда и желание да се направи отделно колело МОДУЛАЦИЯ, то трябва да бъде свързано към свободен елемент за сравнение (има четири от тях), а матрицата R-2R е обща за двете колела. За да превключите изходите на компараторите, по-добре е да използвате допълнителна микросхема и да използвате PA2 като управляващ сигнал.

    Ако желаете, можете да сглобите динамична версия на клавиатурата без индикация, бутони и колело PITCH WEEL / MODULATION - просто без да сглобявате неизползваната част от веригата. Всички променливи параметри ще бъдат зададени по подразбиране при включване на захранването...

    Всичко това може да се захранва от всичко, консумацията на ток зависи от конкретния индикатор и не надвишава 100 mA. Имам стабилизатор 7805 точно на платката без радиатор (ясно се вижда на снимката). Необходим е малък радиатор, ако към него се подава повече от 9v. Компараторът се захранва от напрежение 9 - 12 v, за предпочитане стабилизирано. Да, използвах съветски микросхеми от стари запаси - има голям брой съвременни аналози, замяната е възможна и дори желателна - съвременните аналози имат по-ниска консумация.

    програма

    Алгоритъмът за обработка на натиснати клавиши идва от този, предложен в сп. “Микропроцесорни средства и системи” № 5, 1986 г. Именно тази публикация (или по-скоро грешка в предложената програма) ме накара да уча асемблер. Всъщност единствената идея, взета от там, беше да се запише номерът на всеки натиснат клавиш в специално разпределена област на RAM (CHAN), така че когато клавиатурата се запитва отново, да не обработва отново вече обработения клавиш. Имам две RAM клетки, разпределени за всеки от натиснатите клавиши (общо не повече от 10): в първата се записва номерът на натиснатия клавиш, във втората - неговата СКОРОСТ (скорост на натискане). Повтарям - има само 20 от тези клетки и началният адрес е даден от името CHAN. Знакът за свободна двойка е зададеният най-значим бит на първата клетка. Най-значимият бит от втората клетка, който е зададен, означава, че NOTE ON за този ключ вече е предадено и не се нуждае от допълнителна обработка.

    Няма да описвам подробно цялата програма; изходният код е пълен с коментари и е доста достъпен за обучен човек. За останалото веднага предоставям готов фърмуер във файла Dinamic.hex и Pitchmod.hex. Ще обясня само някои неочевидни точки. Е, първо, за динамиката: в момента, в който горните контакти на ключ се отворят, неговият номер се записва в първата клетка на първата свободна двойка от областта CHAN, като едновременно с това се нулира знакът за свободна двойка. Във втората клетка се записва първоначалната стойност VELOCITY = 127. Чувствителността на клавиатурата се определя от честотата на прекъсване, тъй като обработката на прекъсването намалява стойностите на VELOCITY за всички клавиши, за които NOTE ON все още не е предадена. Прекъсванията се причиняват от вграден таймер. В момента, в който долните контакти на клавиша са затворени, в съответната клетка CHAN се поставя знакът “прехвърлен” и се предава NOTE ON с текущата СКОРОСТ. За да се подобри кривата на чувствителност, стойностите на VELOCITY намаляват според логаритмичния закон: 1/16 от неговата част, намалена с 1, се изважда от текущата стойност на VELOCITY.По този начин, докато ключът се движи от горния контакт към долния първо, стойността на VELOCITY в съответната CHAN клетка намалява според логаритмичния закон и колкото по-бързо се движи клавишът, толкова по-голяма е VELOCITY в момента, в който долните контакти на клавиша са затворени и се предава NOTE ON. Прекъсванията също контролират динамичния дисплей, това се прави, за да се елиминира трептенето на индикатора.
    Функции на бутоните: TRANSPOSE - всички клавиши се редуцират до любимия ви ла минор: диапазон +/- 15 полутона. PRG присвоява тембър (инструмент) към дадена предварително зададена настройка (UP1-UP5), а VOL присвоява неговата сила на звука. Текущият параметър се показва на индикатора и може да се променя с помощта на бутоните "+" и "-" TWIN показва "двоен" тембър - една от предварително зададените настройки (UP1-UP5) и в същото време предварителна настройка LOWER звук едновременно. STEREO извежда звука от текущата предварително зададена настройка към десния и левия стерео канал с леко „разстройване“ (ефект „припев“). Бутонът SPLIT не е активиран. Педалът SUSTAIN е проектиран по веригата като един от бутоните; капацитетът на неговия проводник не трябва да е много голям. Адресите на манипулаторите на бутоните са събрани в таблица в началото на програмата; когато променяте функциите на бутоните, можете да замените вашите собствени.

    ADC на колелото е наполовина софтуер, работи с алгоритъм за последователно приближение, R-2R матрицата извършва цифрово-аналоговото преобразуване. Първо, 1 в най-значимата цифра се прилага към матрицата R-2R и компараторът определя дали е много или малко. Ако е малко, остава 1 в най-значимия бит, ако е много - 0. Тогава същото се случва с всеки следващ нисък бит (общо 6 стъпки) и получаваме шестбитово число, съответстващо на ъгъл на въртене на колелото. Тази точност ми се струва достатъчна, но можете да добавите още един бит, като увеличите матрицата и програмата за преобразуване.

    Дизайн

    Като истинска клавиатура използвах съветски конструктор „Старт“, сега може би е по-лесно да намерите стара, неработеща Yamaha или Casio, това също ще реши проблема с производството на кутията - ако, разбира се, старият инструмент е сравнително непокътнат...

    Печатна платка не беше разработена - сметнах за нецелесъобразно да отделям време за окабеляване и изработване на платка за производство на едно копие на устройството, а оформлението беше направено на платка с помощта на MGTF джъмпери. Като конектор и кабел към клавиатурата използвахме кабел от флопи устройства от компютър със съответен конектор от всяка страна - това улеснява монтажа/демонтажа на готовото устройство.

    В моя случай тялото беше огънато от тънка стоманена ламарина (което беше под ръка) - с дървени страни (като стари съветски инструменти).

    Е, накратко, това е всичко. Творчески успех!

    Списък на радиоелементите

    Обозначаване Тип Деноминация Количество ЗабележкаМагазинМоят бележник
    Схема No1.
    МикроконтролерPIC16F841 Към бележника
    ЧипKR1533ID71 Към бележника
    ЧипKR1533KP71 Към бележника
    Линеен регулатор

    LM7805

    1 Към бележника
    Диод

    KD522A

    64 Към бележника
    Кондензатор22 pF2 Към бележника
    Кондензатор0,1 µF2 Към бележника
    100 µF2 Към бележника
    Резистор

    220 ома

    2 Към бележника
    Резистор

    6,8 kOhm

    8 Към бележника
    Кварцов резонатор4 MHz1 Към бележника
    Бутон на клавиатурата 64 Към бележника
    Схема No2.
    МикроконтролерPIC16F841 Към бележника
    ЧипKR1533ID72 Към бележника
    ЧипKR1533KP72 Към бележника
    ЧипKR1533IR232 Към бележника
    Линеен регулатор

    LM7805

    1 Към бележника
    Биполярен транзистор

    KT315A

    5 Към бележника
    Диод

    KD522A

    80 Към бележника
    Кондензатор22 pF2 Към бележника
    Кондензатор0,1 µF2 Към бележника
    Електролитен кондензатор100 µF2 Към бележника
    Резистор

    180 ома

    7 Към бележника
    Резистор

    220 ома

    2 Към бележника
    Резистор

    6,8 kOhm

    16 Към бележника
    Резистор

    8 kOhm

    1 Към бележника
    Кварцов резонатор4 MHz1 Към бележника
    3-разряден LED цифров индикатор, с общи аноди. 1 Към бележника
    Светодиодчервен12 Към бележника
    Ключов превключвател 64 Към бележника
    Бутон 16 Към бележника
    Схема No3.
    МикроконтролерPIC16F841 Към бележника
    ЧипKR1533ID71 Към бележника
    ЧипKR1533KP72 Към бележника
    Компаратор

    Отдавна исках да събудя композитора в себе си и да започна да създавам собствена електронна музика. Въпреки това бях (меко казано) обезкуражен от високите цени на MIDI контролерите. Но след като прерових интернет, ми хрумна идеята да създам свой собствен контролер, използвайки Arduino Uno и проводими бои!

    Да започваме)

    Стъпка 1: Избор на части

    Можете леко да се отклоните от представения материал и MIDI контролерът, който сте сглобили, ще продължи да работи (под „отклонете се леко“ имам предвид, че можете да инсталирате резистор с малко по-различна стойност или да оставите един от щифтовете изключен).

    От електрониката се нуждаем от:

    • 1 Arduino Uno с USB кабел;

    • 1 буркан проводяща боя;

    • 1 монтажна планка с размери 5х7 см;

    • 3 бутона;

    • резистори със съпротивление 2,2 kOhm;

    • 1 светодиод;

    • резистори със съпротивление 10 kOhm;

    • 1 LDR сензор;

    • резистори със съпротивление 4,7 kOhm;

    • 1 джъмпер;

    • 12 бр резистори 2,7 MΩ;

    • 30 прави карфици;

    • 12 огънати щифта;

    • 12 адаптера;

    • 12 кламери.

    В допълнение към електрониката ще ви трябват и следните инструменти:

    • Поялник и спойка;
    • ножове за тел;
    • Стойка за запояване на части (трета ръка);
    • Мултиметър;
    • Няколко жици и/или тънка метална тел.

    Стъпка 2: Запоете щифтовете

    Нека започнем да създаваме платката чрез запояване на щифтовете. Нека публикуваме огънати щифтовев центъра на първия ред на дъската. Впоследствие те ще служат като "чувствителни" щифтове, към които ще бъде свързана клавиатурата.

    След като поставите щифтовете, забележете, че късите щифтове стърчат от дъската. Притискаме ги, така че всичко да се изравни. Сега ги запояваме и веднага проверяваме връзките за късо съединение.

    Забележка: Не запоявайте щифтовете твърде дълго, в противен случай те ще се нагреят и ще разтопят пластмасата.

    За следващата стъпка поставете правите гребени в слотовете Ардуино. Нека инсталираме платката върху щифтовете, които са поставени в Arduino. Това действие изисква малко сила, тъй като щифтовете не са идеално подравнени с дупките на дъската.

    След като успешно инсталирате платката върху щифтовете, уверете се, че щифтовете са изравнени с горния ръб на дъската. След което могат да бъдат запоени.

    Стъпка 3: Запоете джъмперите

    Сега нека премахнем платката от Arduino и я обърнем на обратната страна. Нека спойкаме джъмперите, към които по-късно ще бъдат прикрепени компонентите. Има два начина да направите това:

    • Запълнете всички необходими дупки с спойка и след това ги свържете един към друг.
    • Използвайте тънка тел.

    Съветвам ви да използвате втория метод, защото е по-прост и по-бърз. Ако изберете този метод, позиционирайте проводника върху платката, както е показано на изображението.

    • Червената точка означава, че запоете проводника в отвора.
    • Жълта точка - свържете тънката жица към щифта от другата страна на дъската (както на третото изображение).

    Както можете да видите, обърках малко долния ляв ъгъл, когато нанесох твърде много спойка, така че внимавайте!

    Съвет: Ако нямате тънък проводник, използвайте парчета от проводниците на резисторите, които използвате.

    Стъпка 4: Запоете сензорните капацитивни резистори

    Монтираме компонентите, а именно 2.7 MOhmрезистори, който ще изпълнява сензорно-капацитивни функции.

    Забележка: Ако искате да научите повече за теоретичните основи и практическите приложения на капацитивните сензори за докосване, съветвам ви да разгледате следните връзки:

    Да поставим един 2.7 MOhmрезисторот долната част на най-десния огънат щифт и прокарайте краката през дупките (както на първото изображение). Сега нека обърнем платката и бутнем един проводник на резистор обратно в следващия отвор (както е показано на второто изображение). Запоете долния крак на резистора към отвора, а горния крак на резистора към щифтовата клема. След това ще прикрепим 7 см телвърху този щифт (както се вижда от третото изображение).

    Нека повторим процеса с всички резистори и проводници, като ги запоим на място. Долните крака на резисторите трябва да образуват една дълга връзка.

    съвет: Изберете редуващи се цветове за проводниците - това ще улесни свързването в следващите стъпки.

    Стъпка 5: Запоете бутоните

    Нека започнем с поставянето на бутоните и резисторите на платката, както на първото и второто изображение. В моя случай използвах 2.2 kOhm резистори, но можете да използвате всеки резистор със стойност между 2kOhm и 10KOhm.

    Нека обърнем платката и да запоим всичко на място. Изображение 3 обяснява различните връзки, които ще трябва да направите:

    • синя точка - показва крака на бутона, който трябва да бъде запоен към платката;
    • розова точка - показва крака на резистора, който трябва да бъде запоен към платката;
    • червената линия означава, че трябва да запоите две точки в една връзка;
    • черната линия показва проводника, който ще премине от единия крак на бутона през отвора в дъската, който след това ще се свърже с щифта от другата страна.

    Ако всичко е запоено правилно, двата най-леви бутона ще ви позволят да промените октавите, докато най-десният бутон ще активираLDR сензор.

    Стъпка 6: Запоете LDR и LED

    След като бутоните са запоени, продължаваме да инсталираме LDR, LED и съответните резистори. Преди да направите това, би било разумно да експериментирате със стойностите на резисторите, които ще отидат към светодиода. Може би моята оценка е твърде висока, за да включа вашия светодиод. Експериментирайте малко, за да намерите правилната стойност на резистора.

    Съвет: Всеки резистор между 330Ом и 5kOhmби било добро решение за 5ммLED.

    Сега ще подредим LED, LDR и резистори ( 4.7 К заLDR) на правилните места. Да обърнем платката и да запоим всичко. Третото изображение ще обясни различните връзки, които трябва да се направят:

    • кафявите точки са LDR щифтове, които трябва да бъдат запоени към платката;
    • розовата точка е кракът на резистора, който трябва да бъде запоен към платката;
    • оранжевите точки са LED щифтове, които трябва да бъдат запоени върху платката;
    • червена ивица - трябва да запоите две точки в една връзка;
    • черната ивица е проводникът, който ще премине от изхода на резистора през отвора на платката, който след това ще се свърже с щифта.

    Забележка: Преди да запоите светодиода, уверете се, че полярността на светодиода е правилна. Положителният извод на светодиода трябва да бъде свързан към резистор, а отрицателният извод към маса.

    Стъпка 7: Тествайте всички връзки

    Сега е добър момент да тествате дали връзките на бутоните, LDR и LED са споени успешно. Това е последната възможност за коригиране на грешките, съветвам ви да изтеглите приложения код и да стартирате програмата. и изтеглете Arduino_Test_Fixture_Codeкъм платката Arduino.

    Ако всичко е успешно и тестът е завършен, можете да преминете към следващата стъпка. Ако не, проверете отново запоените връзки на платката. По-добре е да държите мултиметър под ръка, казвам това от собствения си горчив опит.

    Стъпка 8: Завършване на дъската

    Нека започнем с инсталирането на проводниците в дупките, както се вижда на първото изображение. Удобно е да използвате два проводника с различни цветове за тази стъпка.

    Нека обърнем дъската и отрежем проводниците до необходимата дължина. Запоете ги към щифтовете, които влизат в конекторите на Arduino. Преди да започнете да използвате MIDI контролер, първо трябва да тествате връзките му с помощта на тестова скица. Качете скицата, отворете серийния порт и докоснете "чувствителните" щифтове на платката. Ако видите текста „Забележка x е активна“ за всеки щифт, когато го докоснете, всички щифтове работят правилно.

    Стъпка 9: Преобразувайте Arduino в MIDI устройство

    След като платката е готова, е време да конвертирате Arduino в MIDI контролер, който ще бъде разпознат от музикални програми като Ableton и Fl Studio или дори други MIDI устройства. Процесът се състои от две стъпки:

    1. Променете текущия фърмуер на Arduino Uno към MIDI съвместими програми;
    2. Качете MIDI скица в Arduino.

    Да започнем от първа точка. Заредено в Arduino по условие фърмуерUSB-сериен порт, което позволява на Arduino да обменя съобщения с компютъра и Arduino IDE. С нова програма DualMoco, ще бъде добавен втори режим, който ще позволи на Arduino да действа като MIDI устройства.

    Ще използваме програмата FLIP и ще следваме инструкциите за промяна на фърмуера на Arduino. Ще намерите работещ файл в архива в папката Firmware - файла DualMoco.hex.

    След като изтеглите новия фърмуер, свържете отново Arduino към компютъра. Ако всичко върви добре, Arduino не трябва да бъде открит от Arduino IDE, защото новата програма е в ( MIDIрежим). Отворете музикална програма, която може да записва MIDI и проверете дали Arduino е наименуван MIDI/ MOCOзаLUFAсе показва над MIDI настройките, както можете да видите на първото изображение.

    Стъпка 10: Извършване на последни приготовления

    Особеност DualMocoе, че има втори режим - USB-сериен порт, което ви позволява да качвате скици от Arduino IDE, точно както при обикновен фърмуер. За да поставите Arduino във втория режим, свържете два ISCP пина заедно, както е показано на изображение 1 и 2. Можете да използвате или парче тел, или малка джъмпера, както е показано на снимките. Сега изключете USB кабела от Arduino за няколко секунди и го свържете отново, Arduino трябва да се покаже в Arduino IDE.

    Забележка: Когато искате да превключите от режимаUSB-сериен портVРежим MIDI, премахнете джъмпера отISCP щифтове, както е показано на третото изображение и свържете отновоАрдуино към компютър.

    Време е да качите текущата скица в Arduino, Arduino_Финал_Код. Изтеглете го, конвертирайте Arduino в USBсериен портрежим и изтеглете кода. Ако трябва да настроите фино прага, експериментирайте със стойностите ПРАГИ RES. След като всичко работи според очакванията, променете текущия ред 17 от:

    булев midiMode = невярно; // ако midiMode = false, Arduino ще действа като usb към серийно устройство

    boolean midiMode = true;// ако midiMode = true, Arduino ще действа като родно MIDI устройство.

    След като са направени последните промени в кода, е време да тествате музикална програма, която може да поддържа MIDI устройства. Първо, нека превключим Arduino в MIDI режим за това:

    1. Нека качим крайния код в Arduino.
    2. Нека премахнем USB кабела от Arduino.
    3. Превключете Arduino в MIDI режим, като премахнете джъмпера от ISCP щифтовете.
    4. Нека инсталираме USB кабела в Arduino.

    Ако всичко е минало добре, отворете музикалната програма и започнете да докосвате щифтовете. Вълшебните звуци трябва да звучат...

    Стъпка 11: Запоете кламери върху джъмперите

    След като платката Arduino е напълно завършена, е време да се съсредоточим върху клавиатурата и как да я свържете към платката. Има милиони начини да направите това, но аз избрах кламери, които биха били закрепени към боядисана хартия (те са лесни за закрепване и могат да се използват повторно).

    Процесът на запояване на кламери към проводници е доста прост:

    1. Отрежете щепсела от едната страна на жицата;
    2. Отстраняваме изолацията на жицата с 5 мм;
    3. Запоете оголения проводник към кламер;
    4. Повторете за всички 12 кламера.

    Забележка: Скобите не трябва да бъдат покрити с никакво покритие (боя или пластмаса).

    Стъпка 12: Рисуване на шаблона

    Въпреки че е възможно да свирите на Arduino MIDI клавиатурата само като докоснете кламерите, много по-забавно е да направите свой собствен шаблон и да го използвате. Оцветете отпечатания шаблон. Шаблонът е в архива на проекта.

    Оцветяването на шаблона е доста просто, просто се уверете, че сте оставили място между редовете и използвате подходящи цветове, в противен случай няма да работи. След като боята изсъхне, прикрепете кламери към „клавишите“ и можете да започнете да правите музика.

    Благодаря за вниманието!)