29

Детское пианино на Arduino UNO

Как обычно, данный проект был подготовлен студией droidbot.store

Сегодня я научу вас, как сделать детское пианино на базе микроконтроллера Arduino UNO. Это не является серьезной поделкой, сборка оного не вызовет у вас никаких сложностей, более того, можно ничего не паять, а собрать на макетной плате. Музицировать на нем не получится, но если нажимать в нужном ритме клавиши, то услышите свою музыку, которую вы запишите.

Необходимо:

Arduino UNO

Бузер

Провода Dupont

Тактовые кнопки 12 мм.

Макетная плата

Конвертируем музыку в код

Основой этого проекта послужить сервис по переводу мелодий в формате MIDI в код, понятный для ардуино:

https://extramaster.net/tools/midiToArduino/

Суть данного сервиса проста, вы грузите музыку, получаете код, который в свою очередь загружаете на Arduino и вуаля, можно слушать любую музыку через бузер. Но есть и минусы, например память у Arduino UNO всего 32 Кб памяти и полностью записать музыку вы точно не сможете. Также нельзя слушать музыку в "многоголосье", то есть строго записываем только один инструмент.

Но нам это скучно, поэтому мы выбираем любую музыку, находим ее в формате MIDI и скачиваем. Далее загружаем на этот сервис и получаем подобный код:

Детское пианино на Arduino UNO Arduino, Пианино, Поделки, Evangelion, Видео, Длиннопост, Робототехника, Самоделки

Подключаем бузер на 11 пин, запускаем на Arduino и слушаем, если все работает, то идем дальше.


Подготавливаем код


Копируем наш код и вставляем сюда:

https://wiki.droidbot.store/doku.php?id=piano_parser

Получаем готовые массивы с записанными в них тональностями звука и вставляем их вместо строчек:

int myPins[] = {261, 311, 349, 311, 349};

int myPing[] = {360.0, 360.0, 270.0, 270.0, 180.0, 360.0};


В этом коде:

Детское пианино на Arduino UNO Arduino, Пианино, Поделки, Evangelion, Видео, Длиннопост, Робототехника, Самоделки

И загружаем его на Arduino.


Сборка


Далее подключаем все по схеме:

Детское пианино на Arduino UNO Arduino, Пианино, Поделки, Evangelion, Видео, Длиннопост, Робототехника, Самоделки

И все! Можно играть, главное соблюдать ритм.

Детское пианино на Arduino UNO Arduino, Пианино, Поделки, Evangelion, Видео, Длиннопост, Робототехника, Самоделки

Ссылка на все исходники:
https://wiki.droidbot.store/doku.php?id=%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82_%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B8%D0%B0%D0%BD%D0%B8%D0%BD%D0%BE

Для затравки дам свою любимую мелодию, заставка Евангелиона:

int myPins[] = {261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 391, 466, 466, 523, 311, 233, 233, 311, 311, 349, 233, 233, 233, 391, 415, 391, 349, 311, 349, 391, 415, 391, 261, 261, 293, 311, 311, 293, 293, 311, 349, 415, 391, 349, 311, 391, 391, 349, 329, 349, 261, 261, 293, 293, 311, 233, 311, 311, 349, 233, 233, 233, 391, 415, 391, 349, 311, 349, 391, 415, 391, 261, 261, 293, 311, 311, 293, 293, 311, 349, 415, 391, 349, 311, 391, 391, 349, 329, 349, 391, 415, 391, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 261, 293, 311, 311, 293, 349, 293, 261, 233, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 311, 349, 391, 415, 391, 349, 311, 349, 391, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 293, 293, 261, 293, 349, 311, 311, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523, 311, 233, 233, 311, 311, 349, 233, 233, 233, 391, 415, 391, 349, 311, 349, 391, 415, 391, 261, 261, 293, 311, 311, 293, 293, 311, 349, 415, 391, 349, 311, 391, 391, 349, 329, 349, 261, 261, 293, 293, 311, 233, 311, 311, 349, 233, 233, 233, 391, 415, 391, 349, 311, 349, 391, 415, 391, 261, 261, 293, 311, 311, 293, 293, 311, 349, 415, 391, 349, 311, 391, 391, 349, 329, 349, 391, 415, 391, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 261, 293, 311, 311, 293, 349, 293, 261, 233, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 311, 349, 391, 415, 391, 349, 311, 349, 391, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 293, 293, 261, 293, 349, 311, 311, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 261, 293, 311, 311, 293, 349, 293, 261, 233, 311, 311, 293, 311, 311, 293, 349, 349, 311, 293, 311, 349, 391, 415, 391, 349, 311, 349, 391, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 293, 293, 261, 293, 349, 311, 311, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523, 261, 311, 349, 311, 349, 349, 466, 415, 391, 349, 391, 391, 466, 523, 349, 311, 466, 466, 391, 466, 466, 523};

int myPing[] = {360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 270.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 270.0, 1710.0, 180.0, 90.0, 360.0, 90.0, 270.0, 180.0, 90.0, 360.0, 180.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 180.0, 240.0, 240.0, 240.0, 360.0, 360.0, 540.0, 180.0, 540.0, 180.0, 540.0, 90.0, 270.0, 180.0, 90.0, 360.0, 180.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 180.0, 240.0, 240.0, 3.0, 237.0, 240.0, 240.0, 720.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 270.0, 180.0, 90.0, 360.0, 90.0, 270.0, 180.0, 90.0, 360.0, 180.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 180.0, 240.0, 240.0, 240.0, 360.0, 360.0, 540.0, 180.0, 540.0, 180.0, 540.0, 90.0, 270.0, 180.0, 90.0, 360.0, 180.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 90.0, 90.0, 240.0, 240.0, 240.0, 360.0, 180.0, 240.0, 240.0, 3.0, 237.0, 240.0, 240.0, 720.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 270.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 240.0, 720.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 360.0, 180.0, 180.0, 90.0, 180.0, 450.0, 360.0, 360.0, 270.0, 270.0, 180.0, 135.0, 135.0, 180.0, 180.0, 270.0, 270.0};

Arduino & Pi

1.5K поста20.8K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу