Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание портативного ёмкостного сенсорного пианино на Arduino: пошаговое руководство

Компоненты и материалы

Корпус ProtoStax для Arduino 1
Adafruit 12-канальный ёмкостной сенсорный шилд MPR121 1
Пьезо-зуммер Adafruit PS1240 1
Arduino UNO 1
Медлентая фольга с проводимым клеем 1
Набор монтажных проводов 22 AWG 1

О проекте

В этом проекте описывается создание портативного сенсорного пианино с:

12 полутонов в октаве (C, C#, D, D#, E, F, F#, G, G#, A, A#, B) идеально под 12 входов MPR121. Библиотека Adafruit_MPR121 упрощает опрос сенсоров. Звук генерируется через встроенную библиотеку tone(). Можно запрограммировать «секретные комбинации» клавиш для воспроизведения мелодий любой октавности.

Корпус ProtoStax — стеклянный акрил, подходит для Uno/Leonardo и Mega/Due, позволяет добавлять стенки и крышку по мере готовности. Верхняя крышка служит клавиатурой — на неё клеится медная фольга.

Шаг 1: Монтаж Arduino на базовую плату корпуса

Установите Arduino на базовую плату ProtoStax в конфигурации «Platform» (открытый доступ). Добавьте ножки и крепеж. Анимированная инструкция в проекте.

Шаг 2: Подготовка шилда MPR121

Припаяйте 12 проводов 22 AWG к входам шилда (между большими отверстиями для крокодилов — маленькие для проводов). Припаяйте пьезо-зуммер: один вывод в pin 12, второй в GND. Изолируйте свободные концы проводов. Используйте 6 цветов для 12 проводов (цветовое кодирование).

Шаг 3: Подготовка корпуса

  1. Установите шилд на Arduino в корпусе.
  2. Вставьте верхние распорки и боковые стенки.
  3. В стандартной крышке ProtoStax прорежьте 12 отверстий (лазерная резка или дрилл 1/8" с малярным скотчем).
  4. Пропустите провода в отверстия: провод 0 — в левое, далее по порядку.
  5. Установите верхние распорки, закрутите винты.
  6. Выдвиньте провода, оставив металлические концы наружу.
  7. Вырежьте клавиши из медной фольги по шаблону и аккуратно наклейте на крышку, соединяя фольгу с соответствующим проводом.
Создание портативного ёмкостного сенсорного пианино на Arduino: пошаговое руководство

Шаг 4: Демонстрационный код

Установите библиотеку Adafruit_MPR121. Загрузите пример-скетч — пианино готово!

Секретные комбинации:

Основные части кода:

  1. Опрос MPR121 через Adafruit_MPR121: cap.touched() возвращает битмаску нажатых клавиш.
  2. Реакция на касание: tone(TONE_PIN, scale[i]) при нажатии, noTone() при отпускании (с sustain-эффектом — удерживайте одну клавишу, играйте другой).
  3. Воспроизведение мелодий по секретным битовым маскам через функцию playTune().

Пример структуры мелодии:

typedef struct Note { int frequency; float duration; } Note;

Note melody2[] = {
  {NOTE_C, NOTE_WHOLE}, {NOTE_CS, NOTE_WHOLE}, {NOTE_D, NOTE_WHOLE}, {NOTE_DS, NOTE_WHOLE},
  {NOTE_E, NOTE_WHOLE}, {NOTE_F, NOTE_WHOLE}, {NOTE_FS, NOTE_WHOLE}, {NOTE_G, NOTE_WHOLE},
  {NOTE_GS, NOTE_WHOLE}, {NOTE_A, NOTE_WHOLE}, {NOTE_AS, NOTE_WHOLE}, {NOTE_B, NOTE_WHOLE},
  {NOTE_AS, NOTE_WHOLE}, {NOTE_A, NOTE_WHOLE}, {NOTE_GS, NOTE_WHOLE}, {NOTE_G, NOTE_WHOLE},
  {NOTE_FS, NOTE_WHOLE}, {NOTE_F, NOTE_WHOLE}, {NOTE_E, NOTE_WHOLE}, {NOTE_DS, NOTE_WHOLE},
  {NOTE_D, NOTE_WHOLE}, {NOTE_CS, NOTE_WHOLE}, {NOTE_C, NOTE_WHOLE}
};

Используйте константы из pitches.h и noteDurations.h (NOTE_C, NOTE_WHOLE, DOTTED(NOTE_QUARTER) и т.д.) для переноса нот из нотных листов.

Шаг 5: Дальнейшее развитие

  1. Создавайте свои мелодии и секретные комбинации.
  2. Добавьте второй пьезо-зуммер для 2-голоса (библиотека NewTone использует Timer1, стандартный tone — Timer2).
  3. Добавьте кнопки для смены октавы (расширение диапазона).

Идеи и вопросы — в комментариях! Приятного творчества!

Код

Демо-скетч: GitHub ProtoStax_CapacitiveTouch_Piano_Demo

Печатные детали и корпуса

Шаблон клавиш и отверстий для крышки (печать на A4/Letter): Создание портативного ёмкостного сенсорного пианино на Arduino: пошаговое руководство

Схемы

Создание портативного ёмкостного сенсорного пианино на Arduino: пошаговое руководство

Производственный процесс

  1. Фортепиано: от древних корней к современному мастерству
  2. Переносной туалет: история, дизайн и экологическое влияние
  3. Ройаль: слияние акустической традиции и автоматизированной точности
  4. Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
  5. FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
  6. DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
  7. Создание пользовательских LED-часов с будильником — видно с 12 метров
  8. Arduino Breakout на сенсорном TFT 2.4″: классическая аркада своими руками
  9. Превратите MIDI-клавиатуру в интерактивного репетитора по фортепиано с Arduino, LED-лентой и MuseScore
  10. Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266