Оглавление:

Arduino Soundlab: 3 шага
Arduino Soundlab: 3 шага

Видео: Arduino Soundlab: 3 шага

Видео: Arduino Soundlab: 3 шага
Видео: Arduino soundlab 2024, Ноябрь
Anonim
Image
Image
Строительство
Строительство

Невероятно, какой широкий спектр удивительных звуков можно сгенерировать с помощью техники 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 также позволило бы создавать гораздо более интересную музыку. Наконец, можно было бы сгенерировать более сложные звуки, если бы кто-нибудь знал, как генерировать звуки перкуссии с вычислительной эффективностью, это было бы здорово …

Рекомендуемые: