Как сделать пианино ардуино

Делаем бумажное пианино на основе Ардуино

Создадим пианино с помощью Arduino, нарисованной клавиатуры с использованием свинцового карандаша, бумаги и динамика.

В итоге мы получим вот такое незамысловатое пианино на Ардуине:

Комплектующие

Проект довольно не сложный и требует минимум деталей для исполнения.

  • Провода «папа-папа» × 1
  • Макетная плата (на выбор) × 1
  • Arduino Mega 2560 и Genuino Mega 2560 × 1
  • Резистор 1 Mом × 1
  • Спиккр 0.25 Вт, 8 Ом × 1
  • Карандаш
  • Бумага формата А4
  • Скрепка

Проект

Как уже было сказано выше — это простой проект и любой начинающий радиоэлектронщик с помощью рисованной клавиатуры с использованием свинцового карандаша, бумаги и динамика сможет сделать такое пианино.

Емкостная чувствительность

Емкостное сенсорное восприятие — это способ сенсорного восприятия человека, для которого требуется мало силы или почти её отсутствие для активации. Его можно использовать для ощущения человеческого прикосновения более чем через 2 см пластика, дерева, керамики или другого изоляционного материала (но не через все виды металла), что позволяет полностью визуально скрывать датчик.

Почему емкостное прикосновение?

  • Для каждого сенсорного датчика требуется только один провод, подключенный к нему.
  • Может быть скрыт под любым неметаллическим материалом.
  • Можно легко использовать вместо кнопки.
  • Может обнаружить руку с нескольких сантиметров, если потребуется.
  • Очень недорогой вариант.
Читайте также:  Ноты greats balls on fire lee

Как работает емкостный датчик?

Пластина датчика и ваше тело образуют конденсатор. Мы знаем, что конденсатор хранит заряд. Чем больше его емкость, тем больший заряд он может хранить.

Емкость этого емкостного сенсорного датчика зависит от того, как близко ваша рука к пластине.

Что делает Arduino?

В основном Arduino измеряет сколько времени конденсатору (т.е. сенсорный датчик) нужно на заряд, давая оценку емкости.

Емкость может быть очень малой, однако Ардуино измеряет ее с точностью.

Одним из способов использования емкостного прикосновения в проекте является использование библиотеки CapSense. Для библиотеки CapSense ардуино использует один разъем для отправки и любое количество принимаемых контактов. Получающий вход соединен со штырем отправки через резистор средней или большой величины.

Вот некоторые рекомендации для резисторов, но обязательно экспериментируйте:

  • Используйте резистор на 1 МОм (возможно и больше) для абсолютного касания для активации.
  • С резистором 10 МОм датчик начнет реагировать на 10-15 см.

Схема соединения

Теперь переходим к нашей принципиальной схеме нашего пианино на Ардуино. Выглядит это примерно так:

Код для Ардуино

Вы можете ниже скачать или скопировать код для пианино, который нужно загрузить в микроконтроллер.

Перед этим нужно скачать библиотеку CapSense library:

Итоговый результат

В итоге вы сможете сыграть вот такие знакомые многим мелодии:

На этом пока всё, дорогие друзья. Добавляйте наш сайт в закладки, впереди еще много интересного.

Источник

Делаем мини-пианино с помощью Arduino

В этом уроке сделаем пианино с помощью Arduino и сыграем свою первую мелодию на этом мини-пианино.

Arduino — платформа с открытым исходным кодом, используемая для создания проектов в электронике.

Arduino состоит из программируемой платы (часто называемой микроконтроллером) и части программного обеспечения или интегрированной среды разработки Arduino IDE, которая работает на вашем компьютере, используется для написания и загрузки компьютерного кода на плату.

Шаг 1. Компоненты

Платформа Arduino стала довольно популярной среди людей только начинающих в электронике, и не зря. В отличие от большинства предыдущих программируемых печатных плат, Arduino не нуждается в отдельном аппаратном обеспечении для загрузки нового кода на плату — вы можете просто использовать USB-кабель.

Кроме того, в Arduino IDE используется упрощенная версия C ++, что упрощает обучение программе. Наконец, Arduino предоставляет стандартный форм-фактор, который разбивает функции микроконтроллера на более доступные пакеты.

Необходимые компоненты для нашего урока по списку:

  1. Arduino UNO — 1 шт.
  2. Провода-переходники папа-папа
  3. Клавиатура — 14 Ом
  4. Динамики — 1 A
  5. ПК или ноутбук

Как подключать всю схему мы рассмотрим на втором шаге.

Шаг 2. Соединяем компоненты

Подключите Клавиатуру строки к 3 2 8 0 контактам Arduino и столбцы к 7 6 5 4 выводам Arduino.

Подключите провода Динамика к клеммам 11 и Земля (GND).

Шаг 3. Как настроить оборудование

Кнопки Клавиатуры (наше пианино) были подключены с помощью перемычек. Основной эскиз (скетч) определяет, какие частоты музыкальных нот связаны с каждой клавишей пианино.

Для этого проекта мы использовали C4, D4, E4, F4, G4, A4, B4, C5, D5, E5, F5, G5, A5 и B5, причем C4 был переключателем ‘0’, D4 — переключателем ‘1’ и так далее. Измените значения частот или добавьте дополнительные переключатели, чтобы полностью настроить собственный проект. Динамик просто подключен одним концом к контакту 11 Arduino, а другой — к земле.

Функция «тон» («tone») в коде будет искать этот вывод для воспроизведения вызываемой ноты.

Шаг 4. Рабочий код

Вставьте код ниже в Arduino IDE и затем загрузите его в микроконтроллер. Нажмите кнопку сброса, если что-то пойдет не так. Вам также необходимо загрузить и установить библиотеку Arduino Keypad, которая доступна на официальном сайте микроконтроллера по этой ссылке.

Шаг 5. Как работает код?

Эскиз (скетч) начинается с импорта библиотек Keypad.h и pitches.h, поэтому мы сможем ссылаться на различные элементы из них позже в коде. Далее, код настраивается путем определения количества ROWS и COLUMNS, определяющих, какие контакты входы и выходы, а также устанавливаем контакт Динамика как 11-й вывод Arduino.

Затем мы определяем значение каждой ноты в форме Матрицы и назначаем, какой вывод нам нужно связать со строками и столбцами:

  • в этом проекте мы использовали 3, 2, 8, 0 выводы как ROWS — строк,
  • 7, 6, 5, 4 в качестве COLUMNS — столбцов.

Основной цикл. Мы сохраняем каждое значение ноты в переменную customkey, а также печатаем значение в серийном мониторе Arduino IDE. Далее мы сравниваем каждую пользовательскую ноту и отправляем вывод SPEAKER NOTE (нота динамика) и DURATION (длительность) на функцию «тона».

На предыдущем шаге мы скачали библиотеку Arduino Keypad. Разархивируйте её в папку Arduino в Arduino IDE и далее пройдите:

Files → Example → Keypad → Custom Keypad

Шаг 6. Играем песню «С Днем Рождения»

Динамик должен быть подключен только к любым штыревым (PWM) разъемам ARDUINO, иначе настройка не будет работать.

Как играть песню «С Днем Рождения» на клавиатуре:

4 4 5 4 B 6 4 4 5 4 7 B
4 4 C 8 B 6 5
9 9 9 B 7 B

Желаем музыкальных успехов! До новых уроков, пока.

Источник

Пианино на Arduino с записью и воспроизведением звука

В этой статье мы рассмотрим создание на основе платы Arduino простого пианино, которое будет включать в себя 8 кнопок и зуммер. Для воспроизведения звука с помощью Arduino будет использоваться функция tone(). Чтобы сделать проект более интересным мы добавили в него функцию записи мелодии, которую вы сыграли. Записанную мелодию можно затем прослушать в любое время.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Зуммер (Buzzer) (купить на AliExpress).
  4. Конденсатор точной настройки (Trimmer) 10k.
  5. Переключатель SPDT типа.
  6. Кнопки – 8 шт.
  7. Резисторы 10 кОм, 560 Ом, 1,5 кОм, 2,6 кОм, 3,9 кОм, 5,6 кОм, 6,8 кОм, 8,2 кОм, 10 кОм (купить на AliExpress).
  8. Макетная плата.
  9. Соединительные провода.

Работа схемы

Схема пианино на основе платы Arduino, сделанная для сборки на макетной плате представлена на следующем рисунке.

Схема достаточно простая и ее без особых затруднений можно собрать на макетной плате. После сборки схемы на макетной плате у нее должна получиться примерно следующая конструкция:

Номиналы резисторов в схеме слева направо: 10 кОм, 560 Ом, 1,5 кОм, 2,6 кОм, 3,9 кОм, 5,6 кОм, 6,8 кОм, 8,2 кОм, 10 кОм. Если у вас нет переключателя SPDT типа, то вы можете использовать обычный переключатель.

Принципиальная схема пианино на основе платы Arduino представлена на следующем рисунке.

Одной из основных вещей, которые необходимо понять в этой схеме, является то, как мы соединили 8 кнопок к одному аналоговому контакту A0 платы Arduino. Обычно для подключения 8 кнопок используют 8 контактов платы Arduino, но в данном проекте мы не можем так сделать – у нас не хватит контактов поскольку необходимо подключать к плате Arduino еще и ЖК дисплей.

Таким образом, используемые нами 8 резисторов, включенные вместе с кнопками, образуют так называемый делитель напряжения и при нажатии кнопок будет изменяться значение напряжения, подаваемое с выхода данного делителя напряжения на контакт A0 платы Arduino. На следующем рисунке представлена схема аналогичного делителя напряжения на двух резисторах – чтобы вам проще было понять принцип его работы.

В представленной схеме на вход контакта АЦП (англ. ADC) будет подаваться напряжение +5V в случае когда кнопки не нажаты. При нажатии первой кнопки в цепь делителя напряжения будет включен резистор сопротивлением 560 Ом, а при нажатии второй кнопки — резистор сопротивлением 1,5 кОм. Соответственно, будет изменяться и напряжение, подаваемое на вход контакта АЦП (аналого-цифрового преобразователя). Аналогичный принцип используется и в делителе напряжения в проекте нашего пианино – только в нем 8 кнопок и 8 резисторов.

В представленной схеме пианино ЖК дисплей подключен к контактам 8, 9, 10, 11 и 12 платы Arduino. Зуммер подключен к контакту 7, а переключатель – к контакту 6 платы Arduino. Схема запитывается через USB кабель от компьютера, но также для этой цели можно использовать адаптер на 12 В или батарейку на 9 В.

Принципы работы функции Tone() в Arduino

Прежде чем рассматривать функцию Tone() сначала рассмотрим как работает пьезоэлектрический зуммер (Piezo Buzzer). По сути, это кристалл, который преобразует механические колебания в электрические или наоборот. В этом проекте мы используем переменный ток (частоту) под действием которой кристалл вибрирует и, таким образом, производит звук. То есть чтобы заставить пьезоэлектрический зуммер издавать какой-нибудь шум (звук), мы должны заставить его вибрировать, тон этого звука будет зависеть от того как быстро кристалл вибрирует. То есть тоном звука можно управлять с помощью частоты подаваемого на кристалл тока.

А каким образом мы можем получить переменную частоту в плате Arduino? И здесь как раз на помощь приходит функция tone (). Эта функция позволяет генерировать определенную частоту на заданном контакте. Можно регулировать и время генерации частоты если это необходимо. Синтаксис функции tone () выглядит следующим образом:

Синтаксис
tone(pin, frequency)
tone(pin, frequency, duration)
Параметры
pin: контакт, на котором необходимо генерировать частоту (тон)
frequency: частота тона в герцах — unsigned int
duration: продолжительность тона в миллисекундах (опционально) — unsigned long

В качестве pin может выступать любой цифровой контакт платы Arduino. Генерируемая частота зависит от размера таймера в вашей плате Arduino. Для Arduino Uno и других подобных ей плат минимальная частота звука составляет 31 Гц, а максимальная – 65535 Гц. Диапазон воспринимаемых ухом обычного человека частот значительно меньше.

Проигрывание мелодий пианино с помощью Arduino

Мы знаем что мы можем проигрывать различные звуки с помощью функции Tone() платы Arduino. Но каким образом проигрывать с помощью этой функции определенные музыкальные ноты? Для этой цели можно использовать, к примеру, специальную библиотеку под названием “pitches.h”, которую написал Brett Hagman. Эта библиотека содержит всю необходимую информацию о частотах, которые соответствуют каждой музыкальной ноте. В нашем предыдущем аналогичном музыкальном проекте (в нем вы можете более подробно прочитать об использовании данной библиотеки) мы использовали эту библиотеку для проигрывания таких мелодий как Pirates of Caribbean, Crazy Frog, Mario и даже titanic – и это звучало превосходно.

В проекте мы используем всего 8 кнопок, каждая кнопка используется для проигрывания одной определенной ноты, следовательно, всего с помощью нашего пианино мы можем проигрывать 8 нот. Мы выбрали 8 наиболее часто используемых музыкальных нот, но вы можете внести изменения в проект, выбрав другие 8 нот, либо же добавить в проект еще кнопок чтобы получить еще больше нот.

В этом проекте мы будем использовать следующие музыкальные ноты — C4, D4, E4, F4, G4, A4, B4 и C5.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.

В нашей программе мы будем считывать аналоговое значение напряжения с контакта A0 чтобы определить какая кнопка была нажата и затем проигрывать мелодию, соответствующую этой кнопке. Также мы должны записывать какие кнопки нажимал пользователь и как долго он их нажимал чтобы потом можно было воспроизвести сыгранную пользователем музыку.

В программе сначала мы должны объявить 8 используемых нот. Соответствующие частоты для этих нот будут браться из файла pitches.h и затем будет формироваться массив как показано в следующем фрагменте кода. К примеру, из данного массива следует, что ноте C4 будет соответствовать частота 262 и т.д.

Источник

Оцените статью