Ємнісна сенсорна Midi клавіатура

У цьому керівництві вказано, як самостійно виготовити ємнісну сенсорну midi клавіатуру.

Примітка: клавіатура не працює у випадку використання звичайної фарби. Для цього проекту я використовував електропровідну фарбу.

Для цього пристрою вам знадобляться наступні компоненти:

- Arduino Uno R3 (дане керівництво призначене лише для версії R3, я не впевнений, що воно буде працювати для інших моделей)
- 12 резисторів (опір від 1 МОм до 10 МОм)
- провідникові перемички
- 11 зажимів типу "крокодил"
- певна кількість електропровідного матеріалу (електропровідна фарба, алюмінієва фольга тощо)
- програма для обробки midi файлів
- бібліотека для ємнісного датчика
- код і файл програми (представлені нижче)

Крок 1: Калібрування чутливості

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

Після того, як ви завантажите код і зберете схему на базі плати Arduino, відкрийте послідовний монітор (serial monitor) у вашому ADE. Якщо все зроблено правильно, ви побачите ряд значень. Якщо ви доторкнетеся до кінця провідника, то зворотне значення буде вищим у порівнянні зі значенням, якщо до провідника не доторкатися.

Тепер настав час визначити, при якому значенні ваш сенсор дотику буде 'відправляти' midi ноту. Якщо ви вважаєте значення 50, коли ви не доторкаєтеся до провідника, і значення 1000, коли ви доторкаєтеся до провідника, тоді вам потрібно дотримуватись значення близько 700. Коли ви виготовите ємнісну сенсорну клавіатуру, вона буде відправляти midi ноту, коли значення перевищить 700.

Тепер давайте перейдемо до виготовлення самої клавіатури…

Крок 2: Завантаження коду

Завантажте код в Arduino.

Зверніть увагу на значення, яке потрібно запам'ятати. Вам слід вставити це значення в код. Якщо в програмному коді зустрічається значення 500, то його потрібно замінити на ваше значення.

static int lastInput1 = 0;

int newInput1 = total1;

if((lastInput1 < 500) && (newInput1 > 500)) {

  for (int note=48;note<49;note++) {//from note 50 (D3) to note 69 (A4)

    MIDImessage(noteON, note, ON); }};//turn note on

if((lastInput1 > 500) && (newInput1 < 500)) {

  for (int note=48;note<49;note++) {//from note 50 (D3) to note 69 (A4)

    MIDImessage(noteON, note, OFF); };

lastInput1 = newInput1;

Після внесення змін в програмний код його можна завантажити в плату Arduino.

Крок 3: Зміна програмного забезпечення Arduino

На даному етапі вам необхідно змінити програму за замовчуванням UNO-dfu_and_usbserial_combined на програмне забезпечення Arduino для обробки MIDI.

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

Після завантаження файлу та програми FLIP, з'єднайте вашу плату Arduino з комп'ютером. Потім переведіть Arduino Uno R3 (це буде працювати лише на версії Uno!) в режим DFU.

Вставте один провідник у контакт Ground зверху і один провідник у контакт Ground внизу. Далі потрібно доторкнутися нижнім провідником до контакту GND, як показано на фото, і одночасно верхнім провідником до контакту RESET. Після цього плата Arduino перейде в режим DFU.

Далі слід завантажити шістнадцятковий файл MocoLUFA. Відкрийте програму FLIP, виберіть ваш чіп (16u), вкажіть розташування вашого файлу MIDI.hex і завантажте його через USB інтерфейс. Від'єднайте USB кабель від комп'ютера і знову підключіть назад. Плата Arduino повинна визначитися як MIDI/MocoLUFA пристрій.

Запам'ятайте: Якщо необхідно змінити ADE код, тоді вам слід повернути назад оригінальний шістнадцятковий файл для Arduino. Цей файл розташований у папці C:\Program Files (x86)\Arduino\hardware\arduino\firmwares\atmegaxxu2

Крок 4: Створення пристрою

Зберіть схему, як показано на малюнках вище.

Кінці провідників – це ті місця, до яких ви будете доторкатися. Ви можете прикріпити зажими типу "крокодил" до кінців цих провідників для того, щоб їх можна було закріпити, наприклад, до алюмінієвої фольги.

Крок 5: Завершальний крок створення midi клавіатури

На даний момент ваша ємнісна сенсорна клавіатура повинна бути готова. Вона може визначати, коли ви тримаєте провідник і відправляєте midi ноту. Однак нам також потрібна програма для читання MIDI та відтворення звуків. Ви можете використовувати програму DAW (Fl Studio, Ableton, Logic Pro тощо)

Якщо ваша ємнісна сенсорна клавіатура працює, як було задумано, вона з'явиться як звичайний MIDI пристрій у вашій програмі DAW, що показано на малюнку вище. Пристрій буде працювати як звичайна MIDI клавіатура, за винятком того, що вона може відтворити за один раз лише одну ноту!

Насолоджуйтесь!

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

Обозначення Тип Номінал Кількість Примітка
Arduino UNO 1
Резистор 1-10 МОм 12
Металевий затискач "Крокодил" 11
Електропровідний матеріал Фольга тощо 1
З'єднувальні проводи 1
Додати все

Оригінал статті

Прикріплені файли:

Top