Оглавление:
Видео: Arduino Soundlab: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Невероятно, какой широкий спектр удивительных звуков можно сгенерировать с помощью техники FM-синтеза, даже используя простую Arduino. В предыдущем руководстве это было проиллюстрировано на синтезаторе с 12 предварительно запрограммированными звуками, но зритель предположил, что было бы намного круче иметь полный контроль над параметрами звука с помощью потенциометров, и это так!
В этой звуковой лаборатории тонами можно управлять с помощью 8 параметров: 4 для огибающей ADSR громкости и 4 для частотной модуляции, определяющей текстуру.
Добавление 8 потенциометров не произошло за счет количества клавиш: три набора по 8 клавиш считываются через несколько микросекунд один за другим, всего 24 клавиши, что соответствует двум полным октавам. Фактически, два контакта Arduino не используются, и возможно расширение до 40 ключей.
Посмотрите видео, как издавать дикие звуки, вот краткий обзор:
* A = атака: время для достижения максимальной громкости звука (диапазон 8 мс-2 с)
* D = затухание: время понижения громкости звука до стабильного уровня громкости (диапазон 8 мс-2 с).
* S = сустейн: стабильный уровень громкости (диапазон 0-100%)
* R = релиз: время затухания звука (диапазон 8 мс-2 с)
* f_m: отношение частоты модуляции к несущей частоте (диапазон 0,06-16), значения ниже 1 приводят к полутонам, более высокие значения - к обертонам
* beta1: амплитуда модуляции FM в начале ноты (диапазон 0,06–16), небольшие значения приводят к незначительным изменениям текстуры звука. большие значения приводят к сумасшедшим звукам
* beta2: амплитуда модуляции FM в конце ноты (диапазон 0,06–16). Присвойте beta2 значение, отличное от beta1, чтобы текстура звука менялась во времени.
* tau: скорость, с которой амплитуда FM изменяется от бета1 до бета 2 (диапазон 8 мс – 2 с). Маленькие значения дают короткий хлопок в начале ноты, большие значения - долгую и медленную эволюцию.
Шаг 1: Строительство
Ясно, что это все еще прототип, я надеюсь, что однажды я или кто-то другой построим этот большой, прочный и красивый с большими клавишами и настоящими циферблатами для потенциометров в потрясающем корпусе….
Необходимые компоненты:
1 Arduino Nano (он не будет работать с Uno, у которого всего 6 аналоговых входов)
24 кнопки
8 потенциометров в диапазоне от 1кОм до 100кОм
1 потенциометр 10кОм для регулировки громкости
1 конденсатор - электролитический 10 мкФ
1 разъем для наушников 3,5 мм
1 микросхема усилителя звука LM386
2 электролитический конденсатор по 1000 мкФ
1 керамический конденсатор емкостью 1 мкФ
1 микровыключатель
1 динамик 8 Ом 2 Вт
1 макетная плата 10x15 см
Убедитесь, что вы понимаете прилагаемые схемы. 24 кнопки соединяются в 3 группы по 8, для считывания на D0-D7 и для активации на D8, D10 и D11. На концевых отводах потенциометров имеется + 5В и заземление, а центральные отводы подаются на аналоговые входы A0-A7. D9 имеет аудиовыход и подключается по переменному току к потенциометру 10 кОм для регулировки громкости. Звук можно напрямую слушать в наушниках или усилить с помощью микросхемы аудиоусилителя LM386.
Все это умещается на макетной плате 10x15 см, но кнопки расположены слишком близко, чтобы играть хорошо, поэтому было бы лучше сконструировать клавиатуру большего размера.
Схема может питаться через USB-соединение на Arduino Nano или от внешнего источника питания 5 В. Аккумуляторный блок 2xAA, за которым следует повышающий преобразователь, является идеальным решением для питания.
Шаг 2: Программное обеспечение
Загрузите прикрепленный эскиз в Arduino Nano, и все должно работать.
Код прост и легко модифицируется, в нем нет машинного кода и прерываний, но есть несколько прямых взаимодействий с регистрами, для взаимодействия с таймером, для ускорения считывания кнопок и для управления поведением АЦП. для показания потенциометра
Шаг 3. Будущие улучшения
Идеи от сообщества всегда приветствуются!
Больше всего меня беспокоят кнопки: они крошечные и сильно щелкают при нажатии. Было бы здорово иметь более крупные кнопки, на которые было бы удобнее нажимать. Кроме того, кнопки, чувствительные к силе или скорости, позволят контролировать громкость нот. Может быть, трехпозиционные кнопки или сенсорные кнопки могут работать?
Другими приятными вещами было бы сохранение настроек звука в EEPROM. Сохранение коротких мелодий в EEPROM также позволило бы создавать гораздо более интересную музыку. Наконец, можно было бы сгенерировать более сложные звуки, если бы кто-нибудь знал, как генерировать звуки перкуссии с вычислительной эффективностью, это было бы здорово …
Рекомендуемые:
Распознавание лиц на Raspberry Pi 4B за 3 шага: 3 шага
Обнаружение лиц на Raspberry Pi 4B за 3 шага: в этом руководстве мы собираемся выполнить обнаружение лиц на Raspberry Pi 4 с помощью Shunya O / S, используя библиотеку Shunyaface. Shunyaface - это библиотека распознавания / обнаружения лиц. Проект направлен на достижение максимальной скорости обнаружения и распознавания с помощью
Как установить плагины в WordPress за 3 шага: 3 шага
Как установить плагины в WordPress за 3 шага: в этом уроке я покажу вам основные шаги по установке плагина wordpress на ваш сайт. В основном вы можете установить плагины двумя разными способами. Первый способ - через ftp или через cpanel. Но я не буду перечислять это, потому что он действительно комп
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: 3 шага
Прямая трансляция HD-видео 4G / 5G с дрона DJI с малой задержкой [3 шага]: следующее руководство поможет вам получать прямые видеопотоки HD-качества практически с любого дрона DJI. С помощью мобильного приложения FlytOS и веб-приложения FlytNow вы можете начать потоковую передачу видео с дрона
Протез руки, напечатанный на 3D-принтере за 4 шага !: 4 шага
Протез руки, напечатанный на 3D-принтере за 4 шага !: Этот проект - протез руки, напечатанный мной, я хочу получить больше знаний о протезировании и 3D-печати. Хотя это не лучший проект, это отличный способ получить практический опыт и научиться создавать
Интерфейс сенсора ADXL335 на Raspberry Pi 4B в 4 шага: 4 шага
Интерфейс датчика ADXL335 на Raspberry Pi 4B за 4 шага: в этом руководстве мы собираемся связать датчик ADXL335 (акселерометр) на Raspberry Pi 4 с Shunya O / S