Підлоговий midi контролер своїми руками. Динамічна MIDI клавіатура на PIC16F84

В черговий раз граючи на гітарі і керуючи звуком через Peavey ReValver та інші Amplitube, задумався про придбання MIDI-контролера. Фірмові пристрої, на зразок Guitar Rig Kontrol 3, коштують близько 13 000 рублів, і мають тільки підлоговим виконанням. Тобто оперативно змінювати положення кількох регуляторів вельми проблематично.

Різні контролери DJ спрямованості виглядали цікавіше за рахунок великої кількості фейдеров і енкодерів. Вирішено було поєднати приємне з корисним і зробити MIDI-контролер самому.

Початкові вимоги: 2-7 фейдеров, стільки ж роторних потенціометрів / енкодерів, близько 10 кнопок, підключення по USB.

Далі став вибирати компоненти. Arduino вибрав через наявність, в принципі можна використовувати ту ж ATmega32u4, STM, або інший контролер. Фейдери і кнопки знайшов в місцевому радіомагазині. Енкодер і потенціометри вже були колись куплені. Тумблери знайшов у гаражі. Корпус вирішив виготовити з верхньої кришки DVD плеєра.

комплектуючі:

  • Arduino UNO R3 1 шт.
  • Фейдери сп3-25а 5 шт.
  • Рот. потенціометри 3 шт.
  • Енкодер 1 шт.
  • Кнопки pbs-26b 16 шт.
  • Кришка від DVD 1 шт.
  • Тумблери 2шт.

Спочатку зігнув корпус і пропиляв в ньому бормашиною отвори під фейдери:

Потім просвердлив отвори для перемикачів і рот. потенціометрів, розмітив положення кнопок. Так як свердла на 19 (та й відповідного патрона для дриля) у мене не було, то отвори для кнопок свердлив на 13, а потім збільшував рядків.

Основа готова, тепер можна думати, як підключати все це добро до Arduino. Під час вивчення даного питання натрапив на чудовий проект HIDUINO. Це прошивка для ATmega16u2 на борту Arduino, завдяки якій пристрій визначається як USB-HID MIDI device. Нам залишається тільки відправляти дані MIDI по UART зі швидкістю 31250 бод. Щоб не захаращувати вихідні дефайнамі з кодами MIDI подій, я скористався цією бібліотекою.

Так як я використав Arduino, то вирішив зробити Шилд, до якого вже і будуть підключатися вся периферія.
Схема Шілд:

Як видно зі схеми кнопки підключив по матричної схемою. Задіяні вбудовані підтягують резистори ATmega328, тому логіка інверсна.

ініціалізація кнопок

for (byte i \u003d 0; i< COLS; i++){ //--Конфигурируем строки мтрчн клвтр как выходы pinMode(colPins[i], OUTPUT); //--подаём на них лог. 1 digitalWrite(colPins[i], HIGH); } for(byte i = 0; i < ROWS; i++){ //--Конфигурируем столбцы мтрчн клвтр как входы--------- pinMode(rowPins[i], INPUT); //--включаем встроенные в мк подтягивающие резисторы-- digitalWrite(rowPins[i], HIGH); }

зчитування показників

for (byte i \u003d 0; i< COLS; i++) //-Цикл чтения матричной клавиатуры----- { digitalWrite(colPins[i], LOW); //--На считываемый столбец выставляем 0--- for(byte j = 0; j < ROWS; j++) //--Построчно считываем каждый столбец-- { //--И при нажатой кнопке передаём ноту-- dval=digitalRead(rowPins[j]); if (dval == LOW && buttonState[i][j] == HIGH) MIDI.sendNoteOn(kpdNote[j][i],127,1); if (dval == HIGH && buttonState[i][j] == LOW) MIDI.sendNoteOff(kpdNote[j][i],127,1); buttonState[i][j] = dval; } digitalWrite(colPins[i], HIGH); }




Забув розмістити на печатці діоди, довелося підпоювати до кнопок.

Потенціометри підключені через мультиплексор 4052b до вводів АЦП.

Зчитування положень потенціометрів

for (byte chn \u003d 0; chn< 4; chn++) //-Цикл чтения значений потенциометров { set_mp_chn(chn); //--Задаём параметры мультиплексора val=analogRead(0) / 8; //--Считываем значение с канала X if (abs(val-PrVal) > 5) // - Якщо поточне значення отл. від минулого (// - більше ніж на 5, то посилаємо нове значення MIDI.sendControlChange (chn, val, 1); PrVal \u003d val;) val \u003d analogRead (1) / 8; // - Прочитуємо значення з каналу Y аналогічно X if (abs (val-PrVal)\u003e 5) (MIDI.sendControlChange (chn + 4, val, 1); PrVal \u003d val;))


Енкодер повісив на апаратне переривання.

зчитування енкодера

void enc () // Обробка енкодера (currenttime \u003d millis (); if (abs (ltime-currenttime)\u003e 50) // антидребезга (b \u003d digitalRead (4); if (b \u003d\u003d HIGH && eval<=122) eval=eval+5; else if (b == LOW && eval>\u003d 5) eval \u003d eval-5; MIDI.sendControlChange (9, eval, 1); ltime \u003d millis (); ))


Друковану плату розвів в Sprint layout, Потім виготовив старих добрих ЛУТ "ом з використанням самоклеющейся плівки і хлорного заліза. Якість пайки страждає від жахливого припою.

Готовий Шилд:



Для заливки прошивки в ATmega32u4 я короткочасно замикав 2 Піна ICSP, потім використовував Flip. Надалі підключив до цих пінам кнопку.

Прошивка працює, залишилося прикрутити стінки і лицьову панель. Так як я розмічав все за місцем, то на малювання панелі часу пішло більше, ніж на все інше. Виглядало це так:

  • 1. В якості фону картинки виставлялася міліметрівка
  • 2. розмічати отвори
  • 3. Отримане виводилося на друк
  • 4. Вирізувалися всі отвори
  • 5. відкручувати і знімалися всі елементи
  • 6. Встановлювалася панель, встановлювалися на місця все кнопки / потенціометри
  • 7. Відзначалися невідповідності шаблону і корпусу
  • 8. Перехід до пункту 2, поки всі отвори не співпадуть
Панель виготовлена \u200b\u200bз міліметрового ПЕТ, покритого плівкою з принтом і ламінуванням, отвори вирізалися лазером по cdr файлу. У іркутських рекламників все це обійшлося мені всього в 240 рублів.

Бічні стінки випиляв з фанери.

Вид пристрою на поточний момент:

Вартість комплектуючих:

  • Arduino UNO R3 320 р.
  • Фейдери сп3-25а 5х9 \u003d 45 р.
  • Рот. потенціометри + ручки 85 р.
  • Енкодер 15 р.
  • Кнопки pbs-26b 16х19 \u003d 304 р.
  • Панель 240 р.
  • Мультиплексор 16 р.
  • Фанера, текстоліт, тумблера, корпус від DVD - у моєму випадку безкоштовно.
Разом: 1 025 руб.

Контролер справляється з покладеними на нього завданнями і рулить звуком практично в будь-якій програмі аудіо обробки.

У планах покрити фанеру морилкою і вирізати з оргскла нижню кришку. Так само додати порт розширення для підключення підлогового контролера.

Код для Arduino і печатка на гітхабе.

В основному стаття розрахована на гітараст і іже з ними, так як мало кому необхідний ножний контролер, включив доп клаву, забіндити клавіші і вперед. Хоча може ось для діджеїв таке управління цілком доречно. Але краще за все воно підходить для Guitar Rig і TH1. Загалом сьогодні ми будемо збирати щось схоже на:

І так, для початку необхідно зібрати необхідні запчастини. Ось їх невеликий список:

Корпус. Перше і найголовніше що потрібно, складно знайти підходяще. Я прикупив для цієї справи чохол для кия.
- USB клавіатура, бажано не дуже давня, бо можливо розпаювання не підійде.
- Клавіші (ті, що я підібрав): PBS-16B (фути), SPA-101B4 (допи), PBS-15B push ON (ВКЛ). Всі без фіксації. Придбати можна в Чіп і Діпе.
- Провід. Багато одножильних. Я думаю для цього найкраще підійде кручена пара. 2х метрів за очі. Тільки розмотувати незручно.
- Ну і паяльник думаю майже у кожного знайдеться, хто вирішив збирати цей девайс.
- Інструменти для різання отворів в корпусі. Хто чим здатний, можна хоч саморезом, а потім правити ножем, але знову ж таки думаю у всіх знайдеться дриль.

Ну що ж, приступимо. Перше що необхідно зробити це намітити і просвердлити отвори в корпусі:

Тепер приступимо до більш шкідливою частини виготовлення нашого футсвіча. Паяємо дроти відповідно до схеми, не забуваємо на входу з клави вішати розпізнавальні листки з номерами входів:

Має вийти щось типу цього:

Зараз почнеться дуже ювелірний процес по пайку до контролера від УСБ клавіатури. Зауважу, якщо вам пощастило купити / знайти / відняти клавіатуру з таким контролером, як на прикріпленою вище схемою, то без паяльної станції не обійтися. Прикріпити до корпусу плату можна майже будь-якими підручними засобами, рідкі цвяхи, саморізи, суперклей, силікон, та й взагалі якщо штовхати сильно не будите, то і так тримається, але залежить від корпусу, кручена пара щільно притискає плату.

Робимо косметичні поліпшення, хто захоче, припаяти діод на корпус від NUB LOCK "а ... Чи зробить отвір під провід і перепротянет USB кабель. Ну а там, на що вже фантазії вистачить. Кінцевий результат:

Фаза 2. Налаштування програмного забезпечення. Сподіваюся це для кожного виготовив цей девайс не стане проблемою. Для Guitar Rig робиться все простіше нікуди, включаємо NUM Lock, включаємо клуню, відкриваємо OPTIONS - CONTROLLER, натискаємо MENU, шукаємо необхідну дію, Кіка на клавішу Learn і вибираємо відповідну кнопку на нашому контролері. Потім натискаємо на Add Controller і проводимо знову ті ж операції. І так поки не наберемо все що необхідно або не закінчаться клавіші. Так само можна призначити клавішу на майже будь-яка дія в 3ей клуні, натискаємо правою кнопкою миші на об'єкт і жамкаем знову на Learn.

А ось тепер якщо є інтерес налаштувати все це дітище на Midi команди, то доведеться ще трохи розважитися.
Значить нам необхідно ПО, яке бінді клавіші на міді команди. І така программуля є, правда аналогів не зустрічав, благо лікувати від жадібності не потрібно. Називається Virtual Midi Controller, налаштовується дію по клавіші у вкладці C IN, установка - Setup - Далі - Далі. Ось посилання .


Разом з нею ставитися і віртуальний MIDI кабель, так що зайвих рухів тіла робити не доведеться. Для зовсім ледачих викладаю попередню банку для футсвіча: банк - їм слід замінити файл в корені папки з програмою, за замовчуванням C: \\ Program Files \\ Virtual Midi Controller \\, попередньо вийшовши з VMC. Для зручності в SETUP поставити галку Run In Background і в основному вікні VMC ткнути на букву К, після чого приймати команди прога буде і в згорнутому режимі. Тепер для виходу з проги потрібно ліквідувати її в треї. І ось починаючи з цієї хвилини ви зможете управляти і Nuendo і Sonar з футсвіча. Ну і природно TH1 теж через міді вистачає нашу клаву.

Будуть питання, звертайтесь ...

Наступний задумані проекти:
- Екранування гітари.
- Комбик своїми руками.

Успіхів Вам у муздеятельності ...

MIDI-контролер - пристрій, що перетворює певний фізичний процес в набір цифрових команд формату MIDI. Фізичним процесом може бути все, що завгодно - від натискання пальцем на клавішу до повороту ручки гучності. Отриманий потік команд передається за допомогою протоколу MIDI інших пристроїв - комп'ютера, апаратним семплерах, синтезаторів або зовнішнім секвенсорі і розшифровується там певним чином. Найбільш поширеним типом MIDI-контролера є MIDI-клавіатура - електронний аналог клавіатури фортепіано. Також існує безліч інших типів контролерів, серед яких - електронні ударні установки.

На сучасному ринку представлена \u200b\u200bвеличезна кількість різноманітних MIDI-контролерів електронних установок, що розрізняються по всіляких критеріям, таким як ціна, якість, технічні характеристики і т.д. Так само існує кілька закінчених призначених для користувача пристроїв, які реалізовані як комерційні проекти (eDrum, megaDrum). Але, не дивлячись на все це, бажання створити подібний пристрій своїми руками як і раніше живе в умах сучасних кулібіних.

Так і я кілька років тому з невеликим запізненням загорівся створенням подібного пристрою, так як брав участь в музичній групі важкого напрямки. Ми грали важкий рок, а точніше щось типу brutaldeath, goregrind, grindcore. Я грав на електрогітарі. Трохи раніше ми прикупили барабанну установку Sonor і шуміли вечорами в гаражі. Пізніше з гаража нас попросили, і постало питання про приміщення. Нічого путнього не знайшовши, ми вирішили репетирувати вдома, що відразу призвело до конфлікту з сусідами. Тут і постало питання про електронні барабанах.

Паралельно грі на живих інструментах я займався написанням електронної музики і використовував VST інструменти і плагіни, зокрема для створення ударних партій я віддавав перевагу Addictive drums і ezDrums, які мають можливість працювати з MIDI-інтерфейсом. Навіть не погуглити цю тему, я з головою поринув у розробку власного MIDI-контролера на доступному мікроконтролері ATMega32 в DIP-корпусі, який мав на борту 8 АЦП каналів. Городити схему не хотілося, і я вирішив обмежитися 8-ма входами. Так як апаратного usb у ATMega32 немає, я використовував стандартне підключення до комп'ютера через virtual usb. Повозившись кілька днів з програмуванням мені вдалося запустити пристрій. Яке ж було моє здивування, коли в інтернеті я виявив готовий пристрій зі схемою і прошивкою (MegaDrum). Але все що не робиться - все на краще.


повноцінний USB

За фахом я програміст, але за родом діяльності я програміст-електронник, кандидат технічних наук, і як казав мій колишній науковий керівник - і швець, і жнець, і на трубі дудец. Як це часто водиться, я зациклився на AVR-ках, не тому що мав до них почуття, а тому що по роботі вони повністю влаштовували своїми технічними характеристиками. Але прийшов той час, коли їх стало не вистачати. І тоді на зміну прийшов stm32, крім усього іншого, має на борту повноцінний usb інтерфейс. Тут то і прийшла думка зробити повноцінний MIDI-контролер. До того ж досвід роботи з MIDI-інтерфейсом у мене вже був.

З чого почати? stm32 в DIP корпусах у нас не водилися (якщо вони взагалі є в природі), тому ідея паяти на монтажній платі одразу відпала. Якраз тоді стали з'являтися дешеві налагоджувальні плати на базі мікроконтролерів stm32, такі як DISCOVERY. І ось я щасливий володар отладочной плати STM32F407DISCOVERY, що має в своєму складі відразу і програматор ST-Link. Процесор STM32F407 має 16-каналів АЦП, правда 4 канали зайняті під периферію, якою просто нафарширована отладочная плата. Але для моїх цілей 12 каналів було досить.


Витративши деякий час на вивчення середовища програмування Keil, архітектури мікропроцесора STM32F407 а так же стандартних бібліотек периферії для роботи з USB я накидав програму опитування всіх каналів АЦП з використанням каналу прямого доступу до пам'яті, а так само композитного USB пристрою, який включає в себе MIDI Audio Device і HID для зміни налаштувань пристрою.

Як датчики для барабанів я використовував пьезозвонок ЗП-1, який можна було купити в магазині за недорого.


Схему обв'язки взяв від MegaDrum.


Керуючу програму написав на Delphi відразу з запасом в 16 каналів. В принципі кількість каналів пристрою можна збільшувати до безкінечності, шляхом доповнення схеми аналоговими мультиплексорами, як це і зроблено в Megadrum, але для наших цілей достатньо і 16 каналів, так як ми не такі просунуті музиканти. А для початківця барабанщика такої кількості барабанів буде просто за очі.


Пристрій тестувався як в Windows, так і в Linux з використанням трекера Renoise. Особливих проблем у роботі виявлено не було.
Але на цьому результаті я вирішив не зупинятися. STM32F407 досить наворочений процесор, тому відносно не дешевий. Дешевше було зробити пристрій на STM32F103. На допомогу прийшов ebay. Я купив отладочную плату з STM32F103RBT6 на борту.


Правда в її складі немає вбудованого програматора. Мені пощастило, так як у мене залишився від попередньої роботи програматор ST-Link.


Довелося повністю переписати прошивку, так як принципи роботи у 407 і 103 процесорів хоч і не кардинально, але розрізняються.
Далі я натрапив в інтернеті на отладочную плату, яка коштувала взагалі копійки, і вирішив, що таким чином можна звести вартість комплектуючих до мінімуму.

Мені давно хотілося розбудити в собі композитора і почати творити свою власну електронну музику. Однак я був (м'яко кажучи) збентежений високими цінами на MIDI контролери. Але Поганявши по просторах інтернету у мене з'явилася задумка створити власний контролер, використовуючи для цього Arduino Uno і токопропроводящіе фарби!

Давайте почнемо)

Крок 1: Підбір деталей

Ви можете злегка відійти від викладеного матеріалу і зібраний вами MIDI контролер все одно буде працювати (під «злегка відійти» маю на увазі, що можете встановити резистора з трохи іншим номіналом або залишити один з висновків відключеним).

З електроніки нам знадобиться:

  • 1 Arduino Uno з usb кабелем;

  • 1 баночка токопроводящей фарби;

  • 1 монтажна плата розмірами 5 × 7 см;

  • 3 кнопки;

  • резистори з опором 2.2 кОм;

  • 1 світлодіод;

  • резистори з опором 10кОм;

  • 1 LDR сенсор;

  • резистори з опором 4.7кОм;

  • 1 перемичка;

  • 12 шт 2.7 MОм резисторів;

  • 30 прямих штирів;

  • 12 зігнутих штирів;

  • 12 перехідників;

  • 12 скріпок.

Крім електроніки, також будуть потрібні наступні інструменти:

  • Паяльник і припой;
  • Кусачки;
  • Підставка для пайки деталей (третя рука);
  • мультиметр;
  • Кілька проводів і / або тонкий металевий дріт.

Крок 2: Припаюємо штирі

Створення плати почнемо з припаювання штирів. розмістимо зігнуті штирі в центрі першого ряду на платі. Вони в подальшому будуть служити «чутливими» висновками, до яких буде приєднуватися клавіатура.

Після установки штирів, зверніть увагу - короткі висновки стирчать з плати. Натискати на них, щоб все зайшло урівень. Тепер припаюємо їх і відразу перевіряємо місця з'єднань на предмет короткого замикання.

Примітка: Чи не припаював штирі занадто довго, інакше вони розігріються і розплавлять пластик.

Для наступного етапу, розташуємо прямі гребінки в слотах Arduino. Установімповерх штирів, що вставлені в Arduino, плату. Дана дія зажадало додатки невеликого зусилля, оскільки штирі не ідеально отцентровани щодо отворів плати.

Після того, як успішно встановили плату на штирях, переконайтеся, що висновки знаходяться врівень з верхнім краєм плати. Після чого їх можна запаяти.

Крок 3: напоює перемички

Тепер видалимо плату з Arduino і перевернемо її на зворотну сторону. Напаяти перемички, на які в подальшому будуть кріпиться компоненти. Є два способи зробити це:

  • Заповнити всі необхідні отвори припоєм, а після з'єднати їх один з одним.
  • Використовувати тонкий дріт.

Раджу використовувати другий метод, оскільки він простіше і швидше. Якщо ви виберете цей метод, розташуйте дріт на платі, як на зображенні.

  • Червона точка означає - припаюємо провід в отвір.
  • Жовта точка - з'єднуємо тонкий дріт зі штирем на іншій стороні плати (як на третьому зображенні).

Як ви можете бачити, трохи зіпсував нижній лівий кут, коли завдав занадто багато припою, тому будьте уважні!

Порада: Якщо у вас немає тонкого дроту, використовуйте обрізки висновків використовуваних резисторів.

Крок 4: Припаюємо сенсорно-ємнісні резистори

Встановлюємо компоненти, а саме 2.7 MОм резистори, Які будуть виконувати сенсорно-ємнісні функції.

Примітка: Якщо ви хочете дізнатися більше про теоретичні основи і практичне застосування сенсорно-ємнісних датчиків, раджу ознайомиться з наступними посиланнями:

розташуємо один 2.7 MОм резисторзнизу самого правого зігнутого штиря і протолкнём ніжки через отвори (як на першому зображенні). Тепер перевернемо плату і протолкнём один висновок резистора назад в наступне отвір (як показано на другому зображенні). Припаяти нижню ногу резистора до отвору, а верхню ногу резистора до висновку штиря. Після чого прикріпимо 7 cm провідна цей штир (як видно з третього зображення).

Повторимо процес з усіма резисторами і проводами, припаявши їх на місця. Нижня ніжки резисторів повинні сформувати одне довге з'єднання.

ПорадаВибирайте чергується кольору для проводів - це дозволить простіше виробляти з'єднання в наступних кроках.

Крок 5: Припаюємо кнопки

Почнемо з розміщення кнопок і резисторів на платі, як на першому і другому зображеннях. У моєму випадку використовував 2.2 кОм резистори, Але можна використовувати будь-який резистор зі значенням між 2кОм і 10кОм.

Перевернемо плату і припаяти все на свої місця. Зображення 3 пояснює, які різні сполуки вам потрібно буде зробити:

  • синя точка - позначає ніжку кнопки, що необхідно припаяти на плату;
  • розовaя точка - позначає ніжку резистора, яку необхідно припаяти на плату;
  • червона лінія означає - вам слід злити дві точки в одне з'єднання;
  • чорна лінія позначає дріт, що буде йти від однієї ніжки кнопки через отвір в платі, що потім з'єднається з штирем на іншій стороні.

Якщо все спаяно правильно, дві найбільші ліві кнопки дозволять змінювати октави, В той час як сама права кнопка дозволить включатиLDR сенсор.

Крок 6: Припаюємо LDR і LED

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

Порада: Будь-який резистор в інтервалі між 330Ом і 5кОм буде хорошим рішенням для 5mmLED.

Тепер розташуємо LED, LDR і резистори ( 4.7 K дляLDR) В потрібних місцях. Перевернемо плату і припаяти все. Третє зображення пояснить, які різні сполуки слід виконати:

  • коричневі точки - висновки LDR, що слід припаяти на плату;
  • рожева точка - ніжка резистора, що слід припаяти на плату;
  • помаранчеві точки - висновки LED, що необхідно припаяти на плату;
  • червона смуга - вам потрібно спаяти дві точки в одне з'єднання;
  • чорна смуга - дріт, що буде йти від виведення резистора через отвір плати, що потім буде з'єднуватися зі штирем.

Примітка: Перед припаюванням LED, переконайтеся в тому, що полярність світлодіода вірна. Позитивний висновок LED слід з'єднати з резистором, а негативний висновок з землею.

Крок 7: Тестуємо всі з'єднання

Зараз хороший час протестувати вдало пропаяни з'єднання кнопок, LDR і LED. Це остання можливість виправити помилки, раджу вам завантажити прикріплений код і запустити програму. і завантажте Arduino_Test_Fixture_Code на плату Arduino.

Якщо все вдало і тест завершений, можете рухатися до наступного кроку. Якщо немає, ще раз перевірте пропаяні з'єднання на платі. Мультиметр краще тримати під рукою, кажу це на свій власний гіркого досвіду.

Крок 8: Завершення роботи з платою

Почнемо з монтажу проводів в отвори, як видно з першого зображення. У цьому кроці зручно використовувати два дроти різних кольорів.

Перевернемо плату і відріжемо дроти потрібної довжини. Припаяти їх до штирів, що заходять в роз'єми Arduino. Перш ніж почати використовувати MIDI контролер, спочатку потрібно протестувати його сполуки за допомогою тестового скетчу. Завантажте скетч, відкрийте послідовний порт і доторкніться до «чутливим» штирів на платі. Якщо ви побачите текст 'Note x is active' для кожного штиря, під час торкання, все висновки працюють коректно.

Крок 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, тому що нова програма знаходиться в режимі ( MIDImode). Відкрийте музичну програму, що здатна записувати MIDI і перевірте, щоб Arduino з ім'ям MIDI/ MOCOforLUFAвідображалася над MIDI настройками, як ви можете бачити на 1-му зображенні.

Крок 10: Виробляємо останнім приготування

особливість DualMocoв тому, що у неї є другий режим - usb-послідовний порт, Що дозволяє завантажувати скетчі з Arduino IDE, точно також, як при звичайній прошивці. Щоб перевести Arduino в другій режим, з'єднайте два ISCP виведення разом, як показано на 1 і 2 зображенні. Ви можете або використовувати шматочок дроту або маленьку перемичку, як показано на зображеннях. Тепер вимкніть USB кабель на кілька секунд від Arduino і повторно під'єднайте його, Arduino повинен виявиться в Arduino IDE.

Примітка: Коли ви захочете увімкнеться з режимуusb-послідовний порт вMIDI режим, видаліть перемичку зISCP висновків, як показано на третьому зображенні і повторно під'єднайтеArduino до ПК.

Прийшов час завантажити діючий скетч в Arduino, Arduino_Final_Code. Скачайте його, переведіть Arduino в usbпослідовний порт режим і завантажте код. Якщо необхідно точна настройка порогової величини, поекспериментуйте зі значеннями THRESHOLD і RES . Після того, як все запрацює, як і очікувалося, поміняйте поточний рядок 17, з:

boolean midiMode \u003d false; // if midiMode \u003d false, the Arduino will act as a usb-to-serial device

boolean midiMode \u003d true; // if midiMode \u003d true, the Arduino will act as a native MIDI device.

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

  1. Завантажимо фінальний код в Arduino.
  2. Винесемо USB кабель з Arduino.
  3. Перемкнемо Arduino в МIDI режим видаливши перемичку з висновків ISCP.
  4. Встановимо USB кабель в Arduino.

Якщо все пройшло успішно, відкрийте музичну програму і почніть торкатися до штирькам. Магічні звуки повинні зазвучати ....

Крок 11: Припаюємо скріпки на джампепи

Після того, як плата для Arduino повністю завершена, настав час сфокусуватися на клавіатурі і способі її підключення до плати. Існують мільйони варіантів зробити це, але я вибрав скріпки, які будуть закріплені на пофарбованої папері (їх легко закріпити і можна використовувати повторно).

Процес припайки скріпок до проводів досить простий:

  1. Відрізаємо штекер з одного боку проводу;
  2. Зачищаємо провід від ізоляції на 5 мм;
  3. Припаюємо зачищений провід до скріпці;
  4. Повторюємо для всіх 12 скріпок.

Примітка: Скріпки не повинні бути покриті ніяким покриттям (фарбою або пластиком).

Крок 12: Зафарбовуємо шаблон

Хоча і можна грати на Arduino MIDI клавіатурі тільки торкаючись до скріпок, набагато цікавіше, зробити свій власний трафарет і використовувати його. Розфарбував роздрукований шаблон. Шаблон знаходиться в архіві з проектами.

Розфарбовування шаблону досить просте заняття, тільки переконайтеся в тому, що залишаєте простір між лініями і використовуєте відповідні фарби, інакше нічого працювати не буде. Після того, як фарба висохне, закріпіть скріпки на «клавішах» і можете приступати творити музику.

Дякуємо за увагу!)