BIG Arduino Piano! Используйте широтно-импульсную модуляцию для танцев, например, Том Хэнкс
Это БОЛЬШОЕ пианино поможет осуществить ум и тело! Все, что вам нужно, это несколько кнопок, динамик и некоторые танцевальные туфли.
BOM:
- Arduino Uno
- CUI 8 Ом динамик
- Кнопки x8
- x8 резисторы 10k
- x1 резистор 220 Ом
- Перемычка
- макетировать
- Пенопласт или картон
Зачем?
На днях я смотрел фильм « Большой», и я понял, что хочу танцевать так же, как Том Хэнкс. Без гадалки или джинов поблизости, чтобы помочь сделать эту клавиатуру большой, я знал, что мне нужно подумать. С какой-то качественной пенопластовой доской и другими разнообразными принадлежностями для искусства я добрался до прототипирования и разработал простой в использовании рецепт для гигантского пианино с активированным нажатием кнопки!
Я хотел, чтобы этот проект был прост, поэтому я полагал, что у большинства зрителей больше кнопок, чем силовые чувствительные резисторы, поэтому я приклеил дополнительные кнопки к нижней части клавиш. В идеальном мире добавление FSR к ключам вместо этого сделало бы для более мягкого касания, но я оставлю эту модификацию вам, ребята.

Познакомьтесь с нашими компонентами
Как?
Плата пенопласта не нужна, так как этот проект можно просто собрать на макете. Видео охватывает основы измерения, резки и крепления кнопок, поэтому я просто опишу технические детали здесь. Если у вас нет необходимого количества компонентов, вы можете следовать только одной кнопке, некоторым резисторам и динамику.
Если раньше вы использовали Arduino, вы, скорее всего, использовали кнопку и понимали важность выпадающего резистора. Выпадающий резистор "удерживает логический сигнал около нуля вольт, когда никакое другое активное устройство не подключено", (Arduino Playground). Это помогает обеспечить надежные и точные показания с наших кнопок.
В принципе, у нас есть восемь кнопок, подключенных к контактам 2-9 соответственно. Для каждой кнопки требуется мощность 5 В, 10-кратный выпадающий резистор и сигнальная линия для входных контактов. В рамках нашей программы мы назначаем каждой из этих кнопок конкретную частоту квадратной волны для воспроизведения при нажатии кнопки (логика HIGH). Это конкретные частоты, которые помогают создавать музыкальный масштаб.

Основной взгляд на наши входы и выходы
Существует множество различных типов электрических волн, включая синусоидальные волны, пилообразные волны, волны треугольника и (для нашего использования с Arduino) квадратные волны. Для создания звука с этих кнопок наш динамик должен управляться выводом Arduino, который может обрабатывать широтно-импульсную модуляцию (PWM). Булавки Arduino, которые могут генерировать широтно-импульсную модуляцию, генерируют квадратные волны различной частоты.
На самом деле нам не нужно менять ширину импульса наших сигналов. Все наши сигналы громкоговорителей будут составлять 50%. Но мы будем использовать вывод PWM от Arduino, поскольку функция PWM обеспечивает простой способ настройки частоты.
Наши восемь кнопок представляют восемь заметок на музыкальной клавиатуре / пианино, полномасштабную октавную шкалу, в частности, масштаб C. Эти примечания включают C5, D5, E5, F5, G5, A5, B5 и C6.
Вы, наверное, заметили, что есть две разные записи C, C5 и C6. Примечание C6 - это просто вдвое больше частоты C5, интервал, известный как октава, и по-прежнему считается записью C. В то время как частота C5 составляет 523 Гц, C6 составляет 1047 Гц. Хотя это не совсем «точно», это как можно ближе к правильному сигналу, который может произвести Arduino.
Видите ли, в то время как пианино и музыкальные инструменты могут казаться пугающими, они на самом деле являются одними и теми же нотами, повторяющимися снова и снова в разных «октавах». Например, примечание G7 будет утроить частоту G5.

Сравнение осцилляции октавы
Достаточно с уроком музыки! Положительный вывод громкоговорителя должен иметь резистор 220 Ом последовательно с контактом 10, который способен производить PWM. Другой свинец должен быть привязан к земле. Поскольку мы используем квадратные волны, сигнал имеет гармонические частоты в дополнение к основной частоте. В идеале мы использовали бы синусоидальную волну для лучшего качества звука, но квадратная волна достаточно хороша для наших целей.
Рассматривая наш код, мы используем простые операторы для создания определенных частот в библиотеке «pitches.h» каждый раз, когда определенная кнопка читает логику HIGH. Вы заметите, что, например, примечание F5 составляет 698 Гц, а F6 примерно вдвое больше, 1397 Гц.
Просто повторите эти шаги со всеми кнопками, которыми вы владеете, и у вас будет самая большая в мире клавиатура!
if (buttonCState == HIGH) { tone(10, NOTE_C5); } if (buttonDState == HIGH) { tone(10, NOTE_D5); } if (buttonEState == HIGH) { tone(10, NOTE_E5); } if (buttonFState == HIGH) { tone(10, NOTE_F5); }
#define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397
Теперь давайте танцевать!
Попробуйте этот проект сами! Получить спецификацию.
Другие инновации MIT-i:
- Кошка-Аппут! (сервопривод, управляемый Arduino для производителей)
- Лазерная Tripwire-сигнализация на Launchpad! (система безопасности пусковой панели)
- Пульт дистанционного управления Arduino UNIVERSAL! (ИК-приемник для всего вашего дома)
- Кастрюля-кастрюля! (контролируемая запахом система управления запахом)
- Контроллер светофора! (урок заявления о задержке Arduino)
- Танцующий тостер-призрачный тостер! (урок по соленоидам и индуктивным нагрузкам)
- Игрушка для обнаружения предметов малины Pi! (урок RPIO GPIO)
- Замбромби! (робот-избегающий объект)
- Аналоговый сигнал праздничного сезона! (система защиты подарков)
- Санта-Кэм! (камера с активированным отпуском)
- IoT Beaglebone Beagle Treat Dispenser-Feeder! (плохое оправдание автоматизации)
- Punxsutawney 5000! (интересный способ избежать холода)
BIG Piano Code