Съдържание:

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 = атака: времето за достигане на тона до максималната си сила на звука (диапазон 8ms-2s)

* D = затихване: време на тон да се понижи до стабилното си ниво на сила на звука (диапазон 8ms-2s)

* S = поддържане: постоянно ниво на сила на звука (диапазон 0-100%)

* R = освобождаване: време за изчезване на тон (диапазон 8ms-2s)

* f_m: съотношението на честотата на модулация към носещата честота (обхват 0.06-16) стойности под 1 водят до нюанси, по-високи стойности в обертонове

* beta1: амплитудата на FM модулация в началото на нотата (диапазон 0,06-16) малките стойности водят до незначителни вариации на звуковата текстура. големите стойности водят до луди звуци

* beta2: амплитуда на FM модулация в края на нотата (диапазон 0,06-16) Дайте на beta2 различна стойност от бета1, за да накарате звуковата текстура да се развива във времето.

* tau: скорост, с която амплитудата на FM се развива от бета1 до бета 2 (диапазон 8ms-2s) Малките стойности дават кратък удар в началото на нотата, големите стойности-дълга и бавна еволюция.

Стъпка 1: Строителство

Строителство
Строителство
Строителство
Строителство
Строителство
Строителство

Ясно е, че това все още е прототип, надявам се някой ден аз или някой друг да изградим този голям, силен и красив с големи ключове и истински циферблати за потенциометрите в страхотно заграждение …

Необходими компоненти:

1 Arduino Nano (няма да работи с Uno, който има само 6 аналогови входа)

24 бутона

8 потенциометра, в диапазона 1kOhm - 100kOhm

1 потенциометър от 10kOhm за контрол на силата на звука

1 кондензатор - 10microfarad електролитен

1 3,5 мм жак за слушалки

1 чип за аудио усилвател LM386

2 1000microfarad електролитен кондензатор

1 керамичен 1 микрофарад кондензатор

1 микропревключвател

1 8Ohm 2Watt високоговорител

1 прототипна дъска 10х15 см

Уверете се, че разбирате приложените схеми. 24-те бутона се свързват в 3 групи по 8, за да се четат на D0-D7 и да се активират на D8, D10 и D11. Съдовете имат +5V и са заземени на крайните кранове, а централните кранове се подават към аналоговите входове A0-A7. D9 има аудио изход и се свързва AC към 10kOhm потенциометър за контрол на силата на звука. Звукът може да се слуша директно със слушалки или да се усилва с чип за аудио усилвател LM386.

Всичко това се побира на 10x15 см прототипна платка, но бутоните са твърде близо, за да свирят добре, така че би било по -добре да се конструира по -голяма клавиатура.

Веригата може да се захранва чрез USB връзка на Arduino Nano или с външно 5V захранване. Кутия с батерии 2xAA, последвана от постепенен преобразувател, е перфектно решение за захранване.

Стъпка 2: Софтуер

Качете приложената скица в Arduino Nano и всичко трябва да работи.

Кодът е ясен и лесен за промяна, няма машинен код и прекъсвания, но има няколко директни взаимодействия с регистрите, за взаимодействие с таймера, за ускоряване на отчитането на бутоните и за контрол на поведението на ADC за отчитане на потенциометъра

Стъпка 3: Бъдещи подобрения

Идеите от общността винаги са добре дошли!

Най -много ме притесняват бутоните: те са малки и щракват силно при натискане. Наистина би било хубаво да има по -големи бутони, които да са по -удобни за натискане. Също така бутоните, чувствителни към сила или скорост, ще позволят да се контролира силата на нотите. Може би 3-посочните бутони или сензорните бутони биха могли да работят?

Други хубави неща биха били съхраняването на настройките на звука в EEPROM, Съхраняването на кратки мелодии в EEPROM също би позволило да се направи много по -интересна музика. И накрая, биха могли да се генерират по -сложни звуци, ако някой знае как да генерира перкусионни звуци по изчислително ефективен начин, това би било страхотно …

Препоръчано: