Бумажное пианино ардуино: пошаговая инструкция

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

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

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

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

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

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

Проект

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

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

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

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

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

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

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

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

Что делает Arduino?

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

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

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

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

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

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

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

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

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

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

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

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

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

Ардуино для начинающих – ТОП-3 проекта, схемы, фото, видео

  1. Датчик движения
  2. Управление устройствами со смартфона
  3. Мини-пианино — схемы и видео

Сегодня рассмотрим ТОП-3 интересных Ардуино проекта для начинающих. Сначала подробно рассмотрим инструкцию по сборке датчика движения. Второй проект — управление устройствами с помощью смартфона через Bluetooth — детально поговорим о подборе комплектующих и схеме подключения. Третий проект на Ардуино для начинающих — мини-пианино. Прилагаем не только пошаговую инструкцию по сборке, но и алгоритм программирования, фото и видео. Научимся играть на собранном пианино песенку «С днем Рождения».

Датчик движения с Ардуино — проект для начинающих

Для начала рассмотрим, как можно сделать датчик движения с помощью ультразвукового датчика (HC-SR04), который будет включать каждый раз светодиод. Это устройство легко смогут повторить новички, но при этом он будет интересен и более опытным инженерам.

Необходимые детали

Чтобы создать датчик движения с Arduino, HC-SR04 и светодиодом (LED) нам понадобятся следующие комплектующие:

  • Плата Arduino (мы использовали Arduino Uno).
  • Светодиод (LED, цвет не имеет значения).
  • Резистор/сопротивление 220 Ом.
  • Макетная плата.
  • USB-кабель Arduino.
  • Батарейка 9В с зажимом (опционально).
  • 6 проводов.

Позиционирование деталей

Сначала подключите ультразвуковой датчик и светодиод на макетной плате. Подключите короткий кабель светодиода (катод) к контакту GND (земля) датчика. Затем установите резистор в том же ряду, что и более длинный провод светодиода (анод), чтобы они были соединены.

Подключение частей

Теперь нужно подключить несколько проводов на задней панели датчика. Есть четыре контакта — VCC, TRIG, ECHO и GND. После вставки проводов необходимо выполнить следующие подключения:

  1. Датчик — Arduino.
  2. VCC — 5V (питание).
  3. TRIG — 5 с пометкой.
  4. ECHO — 4 с пометкой.
  5. GND — GND (земля).
  6. Конец резистора на цифровой вывод по вашему выбору, просто не забудьте изменить его позже в коде.

Пометки обозначают, что контакт может быть подключен к любым двум цифровым выводам Arduino, просто убедитесь, что вы изменили их в коде позже.

Загрузка кода

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

const int ledPin = 6; // Цифровой выход светодиода
const int trigPin = 5; // Цифровой выход для подключения TRIG
const int echoPin = 4; // Цифровой выход для подключения ECHO
const int ledOnTime = 1000; // Время, в течение которого светодиод остается включенным, после обнаружения движения (в миллисекундах, 1000 мс = 1 с)
const int trigDistance = 20; // Расстояние (и меньшее значение) при котором срабатывает датчик (в сантиметрах)

int duration;
int distance;

void setup() <
pinMode(ledPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
>

void loop() <
digitalWrite(trigPin, LOW);
digitalWrite(trigPin, HIGH);
delay(1);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;

if (distance 0) // Send data only when you receive dаta:
<
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print(“n”); //New line
if(data == ‘1’) // Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == ‘0’) // Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
>
>

Принцип работы

Модуль HC 05/06 работает по последовательному каналу связи. Андроид-приложение последовательно отправляет данные на модуль Bluetooth, когда вы нажимаете определенную клавишу. Bluetooth на другом конце получает данные и отправить на Arduino через TX-соединение модуля Bluetooth (RX-соединение Arduino).

Код загруженный в Arduino проверяет полученные данные и сравнивает их. Если получена «1» — светодиод включается и выключается при получении «0». Откройте монитор последовательного порта и наблюдайте полученные данные.

Приложение для Андроид-устройств

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

После того, как мы подключились через Bluetooth, нужно скачать и установить приложение, которое будет управлять нашим светодиодом на расстоянии. Подсоединяем смартфон к модулю Bluetooth HC 05/06:

  • Включаем модуль HC 05/0.
  • Ищем устройство
  • Соединяемся с HC 05/06 введя дефолтный пароль «1234» или «0000» (четыре нуля).

После этого мы устанавливаем приложение на наш смартфон. Открываем его. Выбираем устройство — модуль Bluetooth из списка (HC 05/06). После успешного подключения нажимаем кнопку ON для включения светодиода и кнопку OFF, чтобы выключить его. Потом уже можно нажать кнопку «Отключить», чтобы отключиться от модуля Bluetooth.

  • Возможно, вам также будет интересна инструкция по созданию сигнализатора поклевки своими руками

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

Видео с пошаговой сборкой устройства для управления со смартфона:

Делаем мини-пианино с помощью Ардуино — схемы и видео

Сделаем пианино с помощью Arduino и сыграем на нем свою первую мелодию.

Ардуино — платформа с открытым исходным кодом, используемая для создания проектов в электронике. Она состоит из программируемой платы (часто называемой микроконтроллером) и части программного обеспечения или интегрированной среды разработки Arduino IDE для ПК, которая используется для написания и загрузки компьютерного кода на плату.

Компоненты

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

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

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

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

Соединяем компоненты

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

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

Настройка

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

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

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

Рабочий код

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

Эскиз (скетч) начинается с импорта библиотек «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 и далее пройдите:

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

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

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

Фруктовое пианино на Arduino

Ребятушки всем Привет. Если перефразировать знаменитую пословицу, то получиться следующее. «Что нам стоит пианино построить». На прошлом weekend-e были с сыном на выставке робототехники и увидели там фруктовое пианино от MakeyMakey. Интересная штуковина хочу сказать вам.

И вот в памяти всплыл принцип работы этого пианино. Плата от MakeyMakey стоит неприличные 50$, а на полке лежит свеженький Arduino Pro Micro от Дядюшки Ляо. В голове созрел план. Для особо ленивых видео в конце статьи.

Немного теории для начала.

Тело человека является электропроводящим. Фрукты также будут проводить электричество, как и все остальное, что является органическим. Мы можем использовать этот факт для создания забавного небольшого фруктового пианино. Нет необходимости в пайке, и все это занимает менее часа. Какой звук издает банан? Давайте разберемся.

В то время как люди и фрукты проводят электричество, они довольно плохо делают это. Оба обычно имеют электрическое сопротивление в диапазоне 1 мОм, в зависимости от того, насколько влажная ваша кожа или кожура фрукта. Эта конструкция использует ваше тело и фрукты как часть цепи, пропуская ток по «проводу» человек-фрукт, но высокое сопротивление означает, что токи задействованы незначительно. Пианист не будет испытывать шок или вообще ничего чувствовать. Он просто слегка дотронется до разных кусочков фруктов, чтобы сыграть песню, почти как по волшебству.

Это не мой оригинальный дизайн. Идея управления цифровым устройством, используя человеческое тело как часть схемы, была известна уже давно, и MakeyMakey популяризировал его с помощью симпатичного маленького комплекта. Если вам нравится принцип «достал из коробки и все работает «, обязательно посмотрите Makey Makey! Но если вам как и мне жалко отдавать 50$, вы можете создать подобное устройство самостоятельно, используя только Arduino и несколько соединительных проводов, несколько резисторов, компьютер с виртуальным пианино и набором фруктов.

Как это работает?

Основная концепция проста. Каждая клавиша пианино представляет собой схему делителя напряжения, включающую два резистора: один резистор с сопротивлением 1 мОм и один фрукт. Прикосновение к фрукту, изменит сопротивление в цепи, что приведет к изменению напряжения на стыке между двумя резисторами. Arduino может измерять это изменяющееся напряжение с помощью аналогового входа и использовать его для управления клавишей пианино.

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

Если рука не касается фрукта, тогда вся схема тело-руки-тело становится открытой цепью с бесконечным сопротивлением. В этом случае схема упрощается до + 5В, подключенных через резистор 1 мОм к аналоговому входу. Поскольку аналоговый вход сам по себе потребляет практически нулевой ток, в цепи не будет течь ток и не будет падать напряжение на резисторе 1 мОм (помните закон Ома V = iR, поэтому, когда i = 0, тогда V = 0). Напряжение, измеренное на аналоговом входе, все равно будет + 5 В, а функция Arduino analogRead(A0) вернет 1023, максимально возможное значение для его 10-битного разрешения.

Когда рука касается фрукта, схема «фрукт-рука-тело» образует органический резистор с сопротивлением около 1 мегаом. Ток будет течь от +5 В через реальный резистор 1 мОм, затем через резистор 1 мегаом с плодовым корпусом и падать на землю. Общее сопротивление между + 5 В и GND составляет 2 мОма, а при наличии двух резисторов равного значения напряжение в точке на полпути между ними будет вдвое меньше общего падения напряжения. Это означает, что аналоговый вход Arduino будет иметь напряжение 2,5 В, а функция analogRead(A0) вернет значение около 512.

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

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

Важный момент. Перед тем как перейти к коду программы. Мы будем эмулировать нажатие клавиш на клавиатуре при помощи стандартной библиотеки Keyboard.h К сожалению Arduino может эмулировать работу HID USB устройств начиная с микроконтроллеров 16u4 и выше на борту. Поэтому Arduino Nano, Uno и им подобные к сожалению в пролете.

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

Arduino.ru

Пианино на Arduino

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

Здравствуйте. Подскажите, в чем проблема в коде.

Когда вставляю else, noTone, орет как бешенный

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

Пробовал и так писать. Орет не те ноты

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

А вот так прекрасно работает, но без остановки

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

Murik_bro666 , чего Вы хотите?

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

Пианино на ардуино. Есть 5 кнопок и динамик

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

Ну я немного сомневаюсь, что пианино – это 5 кнопок и динамик, ну да ладно.

Приведенный код к этому имеет какое отношение?

Напишите подробно, как по-Вашему должно работать “пианино”.

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

ИМХО надо if ы заменить одним switch case ом

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

Одно непонятно – на кой в этом проекте Ардуино?

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

Если я правильно понял в последнем скетче не хватает чего то типа такого в конце.

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

Одно непонятно – на кой в этом проекте Ардуино?

Компьютер при нажатии на кнопки отправляет по com порту на Ардуино код воспроизводимых нот. Ардуино принимает этот код и воспроизводит звук на динамик командой tone. Также компьютер может отправить на Ардуино целую нотную партию для воспроизведения.

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

Компьютер при нажатии на кнопки отправляет по com порту на Ардуино код воспроизводимых нот. Ардуино принимает этот код и воспроизводит звук на динамик командой tone. Также компьютер может отправить на Ардуино целую нотную партию для воспроизведения.

Да я понял, кто там что делает. А что, компьютер с воспроизведением ноты хуже ардуино справился бы? 🙂 Если уж и так “Всю работу делает приложение на Пк”!

Источники:

http://tehnoobzor.com/schemes/next-sh/2836-arduino-dlya-nachinayuschih-top-3-proekta-shemy-foto-video.html

http://qsy.by/fruktovoe-pianino-na-arduino/

http://arduino.ru/forum/programmirovanie/pianino-na-arduino

http://m.habr.com/ru/post/368101/

Ссылка на основную публикацию