Терменвокс ардуино с дальномером

Урок 4. Световой терменвокс на Arduino

Для этого урока нам понадобится:

  1. Arduino uno: http://ali.ski/gC_mOa
  2. Макетная плата: http://ali.ski/rq8wz8
  3. Контактные провода: http://ali.ski/Exjr3
  4. Диоды и резисторы: http://fas.st/KK7DwjyF
  5. Пьезоизлучатель: http://ali.ski/9mNnRi
  6. Фоторезистор: http://ali.ski/5GDvP7

Для начала узнаем что такое терменвокс:

Терменво́кс ( theremin или thereminvox ) — электромузыкальный инструмент, созданный в 1920 году российским изобретателем Львом Сергеевичем Терменом в Петрограде.

Классическим считается терменвокс, сконструированный наподобие первых терменвоксов, созданных самим Львом Терменом. При игре на таких инструментах управление звуком происходит в результате свободного перемещения рук исполнителя в электромагнитном поле вблизи двух металлических антенн. Исполнитель играет стоя. Изменение высоты звука достигается путём приближения руки к правой антенне; громкость звука управляется приближением другой руки к левой антенне.

Но у нас световой терменвокс.

В этом уроке мы подключим к ардуино фоторезистор и пьезоизлучатель – таким образом мы соберем простейший имитатор музыкального инструмента терменвокса. Только при игре на нашем терменвоксе “музыкант” будет подносить руки не к антенне, а к фоторезистору.

Фоторезистор: Сопротивление фоторезисторов уменьшается под воздействием света и увеличивается в темноте. Фоторезисторы просты в использовании, но достаточно медленно реагируют на изменение уровня освещенности и имеют весьма низку. точность. Как правило, сопротивление фоторезисторов может варьироваться от 50 Ом при дневном освещении до более чем 10 МОм в темноте.

Следовательно изменяя освещенность над фоторезистором, у нас будет появляться разная мелодия.

После подключения всех необходимых элементов Скетч ниже нужно скопировать и залить в ардуино

Демонстрация работы данного терменвокса можно увидеть в видео ниже.

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

Видео:

Источник

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Простой терменвокс на Arduino своими руками

Терменвокс – единственный музыкальный инструмент, на котором вы можете играть, не касаясь его. Терменвокс был одним из самых первых электронных инструментов. Он был изобретен в России примерно в 1919 году Львом Терменом. Первый терменвокс состоял из корпуса в форме коробки с двумя антеннами: одна представляет собой прямую вертикальную штангу, которая регулирует высоту звука, другая – горизонтальная петля в форме, напоминающей трость, регулирует громкость. Высота и громкость ноты меняются с изменением расстояния рук до антенн, которые генерируют электромагнитное поле.

Хотя оригинальные терменвоксы стоят не дешево, можно сделать свое подобное устройство на цифровой основе с похожим принципом действия. И для этого мы используем плату Arduino, динамик и светочувствительный резистор (LDR).

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

Для воспроизведения звука использовалась библиотека Mozzi (sensorium.github.io/Mozzi), которая в основном представляет собой аудиотеку MIDI для платформы Arduino. Просто скачайте и распакуйте ее в папку библиотек library, и это все, что вам нужно будет сделать относительно нее.

В данном случае мы использовали динамик на 8 Ом, подключенный к аудио-усилителю PAM8403, что здесь очень важно, потому что вывод Arduino не может выводить громкие звуки из-за низкого прямого тока. Впрочем, если у вас нет усилителя или вам не нужны громкие звуки, тогда не волнуйтесь, просто подключите динамик напрямую с конденсатором последовательно или сделайте свой собственный усилитель с транзистором NPN.

Вот схема без усилителя:

А вот полная схема с усилителем:

Теперь просто подключите выход динамика к выводу D9 вашего Arduino.

Один конец LDR подключите к выводу A0 с сопротивлением 10 кОм последовательно с землей, другой конец LDR к линии питания 5 В. Теперь можно загружать код в Arduino.

Эта установка модулирует звук в соответствии с интенсивностью света, поэтому мы использовали лампу в качестве источника света, чтобы изменить интенсивность света с целью получения разных звуков.

Источник

Терменвокс ардуино с дальномером

С помощью Arduino и датчика HC-SR04 измеряем расстояние до препятствия. Используем последовательный порт (UART). Применяем функции delayMicroseconds(), pulseIn(). Делаем электронный музыкальный инструмент.

Ультразвуковой дальномер HC-SR04 — датчик использующий принцип эхолокации. В живой природе эхолокацию используют летучие мыши для ориентации в темноте и поиска пищи (насекомых). Если вы слышали эхо, вам проще будет понять эхолокацию. Если крикнуть в горах или пустом большом зале, звук вернётся к вам через некоторое время. Ультразвуковая эхолокация использует одно из свойств звуковых волн — это постоянство скорости распространения в воздухе:

V=340,29 м/сек

Ультразвуковой дальномер имеет в своём составе излучатель (transmitter) и приёмник (receiver) ультразвуковых волн см. рис. 1.

Рис. 1. Ультразвуковой дальномер HC-SR04, вид со стороны излучателя (T) и приёмника (R).

Рис. 2. Ультразвуковой дальномер HC-SR04, вид со стороны микросхем.

Излучатель посылает ультразвуковую волну в нужном направлении. Звук доходит до препятствия, отражается от него и возвращается обратно. Время, необходимое для преодоления звуком расстояния от излучателя до препятствия и обратно к приёмнику равно:

T = 2 * S / V

Ультразвуковой датчик расстояния может сообщить нам это время. Датчик возвращает импульс длительностью пропорциональной пройденному ультразвуком расстоянию. А микроконтроллер измеряет длительность этого импульса и по формуле может вычислить из полученного времени расстояние до препятствия:

2*S = T * V = T * 340,29

Так как функция pulseIn(), принимающая от датчика импульс, возвращает нам время в мксек, то нам нужно это время преобразовать в сек., то есть поделить на 1000000, а метры перевести в миллиметры (умножить на 1000) в результате получаем:

S = t * 0,17 = t / 5,88 (мм)

где t, длительность импульса в мксек

Временная диаграмма, поясняющая работу датчика HC-SR04, представлена на рис. 3.

Рис. 3. Временная диаграмма работы датчика HC-SR04

Запуск датчика на измерение дистанции до препятствия осуществляют подачей на его вход Trigger TTL импульса длительностью 10 мкс. По отрицательному фронту запускающего импульса, излучатель датчика (Transmitter) генерирует 8 звуковых импульсов на частоте 40 кГц (в ультразвуковом диапазоне частот). Через время T, звук, отразившись от препятствия, возвращается. Отражённый звук принимает приёмник (Receiver, микрофон) датчика. Получив отражённый сигнал, датчик генерирует на выходе Echo единичный импульс длительностью T (от 150 мкс до 25 мс).

Измерив длительность импульса на выходе датчика с помощью Ардуино, легко вычислить расстояние до препятствия.

Си библиотека Ардуино содержит все средства для работы с ультразвуковым дальномером. Функция

delayMicroseconds(10)

поможет сформировать запускающий импульс длительностью 10 мкс.

pulseIn(echo, HIGH)

возвращает длительность положительного импульса на входе echo в мкс.

Измерение расстояния до препятствия

Рис. 4. Принципиальная электрическая схема подключения ДАТЧИКА HC-SR04 к Arduino NANO (UNO).

Прог. 1. Измерение расстояния с помощью ультразвукового дальномера HC-SR04.

Лист. 1. Отображение измеряемого дальномером расстояния чаез монитор последовательного порта Arduino IDE.

Терменвокс

Терменвокс (theremin или thereminvox) — электромузыкальный инструмент, созданный в 1920 году советским изобретателем Львом Сергеевичем Терменом в Петрограде.

Мы создали электронный музыкальный инструмент, на котором, так же, как и на терменвоксе, музыкант извлекает звуки бесконтактным способом. Так же, как и в терменвоксе, в нашем инструменте высота тона зависит от расстояния руки исполнителя до датчика. Есть в нашем инструменте отличие от терменвокса, в терменвоксе в качестве датчика используется антенна, а в нашем инструменте ультразвуковой датчик расстояния.

Рис. 5. Электронный музыкальный инструмент терменвокс с датчиком HC-SR04

Прог. 2. Электронный музыкальный инструмент терменвокс с датчиком HC-SR04

Прог. 3. Электронный музыкальный инструмент терменвокс с датчиком HC-SR04

Источник

Оптический терменвокс на Arduino


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

Вот список того, что я использовал:

*Arduino Uno (запущено на Mac OS X 10.7.4 Intel)
*Кабель USB
*Макетная плата
*Копеечные наушники-вкладыши
*Стандартный фотодатчик
*Резистор на 10 кОм
*Немного проволоки
*Паяльник и припой

Шаг первый. Переделываем наушники.


Для того, чтобы посылать сигналы в наушники, я обрезал провода и припаял их к паре проволочных перемычек. Но здесь есть несколько нюансов.
Для начала, когда вы перережете провода и снимете часть изоляции, вы увидите четыре провода, по два с каждой стороны. Каждая пара образует цепь с одним наушником, поэтому мы можем считать, что каждая пара состоит из плюсового провода (обычно окрашены в красный или голубой цвет) и заземляющего провода (обычно меднокрасный). Мы можем использовать или только один наушник (следовательно, только одну пару проводов), или объединить провода для использования обоих наушников, тем самым обеспечивая в два раза больше веселья. Для этого мы припаяем плюсовые провода из каждой пары к одной проволочной перемычке, а заземляющие провода – к другой. При необходимости смотрите фото выше.
Во-вторых, под заметной резиновой изоляцией часто можно встретить слой прозрачной резины, обволакивающий четыре провода по отдельности. Простейший способ избавиться от него – нагревать провод зажигалкой до тех пор, пока резина не сгорит. Обратите внимание: после того, как это будет сделано, будет очень трудно различить цвета. Поэтому рекомендую оставить небольшой кусок провода необожжённым для того, чтобы можно было определить тип провода. Также, я использовал мокрую ткань для того, чтобы стереть остатки сожжённой смолы для улучшения проводимости.
У меня было очень простое оборудование для пайки, поэтому я просто скрутил провода наушников вместе и вокруг проволочной перемычки, а затем капнул чуть-чуть припоя.

Шаг второй. Собираем цепь.


Здесь у нас две простые цепи:
1. Цепь наушников: Используем любой цифровой выходной контакт Arduino и заземлитель для создания цепи с проволочными перемычками наушников.

2. Цепь датчика: Это стандартный делитель напряжения, который позволяет меняющемуся сопротивлению фотодатчика регулировать напряжение, считываемое аналоговым входным контактом Arduino. Для начала, я сделал последовательную цепь, которая идет по порядку: Arduino 5V контакт питания -> фотодатчик -> резистор на 10кОм ->заземление. Я опробовал напряжение в узле между резистором и фотодатчиком, используя аналоговый вход A0.

Иногда у меня были проблемы с качеством соединений. Я думаю, что лучше использовать более качественные проволочные перемычки в следующий раз. Когда что-то шло не так, я просто шевелил некоторые провода и определял качество соединения. Более хорошее закрепление провода в макетной плате или повторный обжиг провода всегда срабатывали.

Шаг третий. Пишем код.

Код состоит в основном из двух команд:
* команда AnalogRead, которая получает значение напряжения из вывода A0. Это эффективно измеряет уровень освещенности на фотодатчике.
* Команда tone, которая посылает сигнал к выводу 9 и заставляет наушники выдавать тон определённой частоты.
Конечно, есть ещё много вещей, которые нужно сделать:
* Установить контакт 9 как вывод.
* Цикл калибровки: пользователь показывает фотодатчику диапазон уровней освещения, обучая программу градуировать частоты.
* Измерить градацию и параметр сдвига на основе данных, полученных при калибровке.
* Автонастройка: округление частоты до ближайшего нужного тона с помощью логарифмов.
Вот сам код:

Шаг четвёртый. Запускаем.

Конечно, есть много возможностей для изменения и улучшения. Некоторые возможности включают в себя:
* Добавление регулятора громкости (реостат или другой фотодатчик)
* Использование лучшего динамика
* Сделать код более эффективным (меньше переменных типа double)
* Воспользовавшись функцией map вместо маппинга калибровки вручную
Не стесняйтесь предлагать свои идеи, и веселиться, раздражая людей своим терменвоксом :)

Источник

Adblock
detector