Музыкальный инструмент "Терменнот", описание которого было опубликовано в [1], похож по принципу игры на нём на терменвокс, но воспроизводит звуки в виде отдельных нот. Опыт его использования показал, что стабильность применённого в нём метода регулировки высоты звука и его громкости недостаточна. Расстояние от рук исполнителя до элементов управления, необходимое для получения звука нужной громкости и высоты тона, ощутимо менялось в зависимости от места установки инструмента, расположения окружающих его предметов, содержащих металлические детали, места подключения к электрической сети. Поэтому автор решил применить для названых регулировок инфракрасные датчики расстояния GP2Y0A21YK0F, применяемые в робототехнике.
Внешний вид нового инструмента показан на рис. 1, где на правой боковой поверхности корпуса виден датчик выбора ноты. Датчик регулировки громкости установлен на левой боковой поверхности корпуса. Использован готовый пластмассовый корпус ВОХ-22 размерами 250x190x79 мм. Инструмент устанавливают на штативе BENRO T-600EX для фото и видеокамер.
Рис. 1. Внешний вид инструмента Терменнот
В 2014 г. команда 6-го "Б" класса МБОУ "Лицей № 87 им. Л. И. Новиковой", в которой участвовала и моя дочь, с описываемым музыкальным инструментом заняла первое место на Нижегородской городской технической олимпиаде школьников.
Как видно на принципиальной схеме рис. 2, основа усовершенствованного музыкального инструмента осталась прежней - микроконтроллер ATmega88-20PU (DD1), тактовая частота которого стабилизирована кварцевым резонатором ZQ1 на 20 МГц. Новое устройство отличает-ся от описанного в [1] только тем, что антенны, колебательные контуры, детекторы, фильтры и регуляторы уровня сигналов в нём заменены инфракрасными датчиками дальности GP2Y0A21YK0F (B1 и B2).
Рис. 2. Принципиальная схема устройства
Принцип исполнения музыкального произведения тоже мало изменился, стала проще предварительная настройка - из органов управления остались лишь выключатель питания и регулятор громкости. Но появилось условие - на расстоянии менее одного метра справа от инструмента не должно быть предметов, способных отражать инфракрасное излучение.
Пока к датчику выбора ноты B1 исполнитель не поднёс руку ближе, чем на 80 см, напряжение на выходе датчика слишком мало и микроконтроллер не формирует звуковой сигнал. С уменьшением расстояния напряжение на выходе датчика растёт и становится достаточным для формирования самой высокой ноты. По мере дальнейшего приближения руки к датчику напряжение продолжает расти, в соответствии с ним звучат всё более низкие ноты. Всего можно получить 48 нот четырёх октав (малой, первой, второй и третьей). По семь основных и пять производных нот каждой октавы. При удалении руки от датчика ноты звучат в обратном порядке. Частота самой низкой ноты - 130,81 Гц, самой высокой - 1975,5 Гц.
Синусоидальный выходной сигнал программа микроконтроллера формирует по принципу прямого цифрового синтеза (DDS), описание которого выходит за рамки статьи. Желающих подробно ознакомиться с DDS отсылаю к статье [2], которая мне очень помогла в разработке "Терменнота 2".
Сформированные программой девятиразрядные двоичные отсчёты синусоиды поступают с частотой 250 кГц на выходы PD0- PD7 и PB1 микроконтроллера по прерываниям от его таймера T1. Перечисленные выходы соединены с входами микросхемы ЦАП КР572ПА1 (DA4), формирующей аналоговый синусоидальный сигнал заданной частоты. Чтобы избавиться от необходимости иметь источник отрицательного напряжения питания, применена нетиповая схема включения ЦАП. Напряжение +9 В для его питания получено от интегрального стабилизатора DA2 с фильтром C10C14L2C16C18. Образцовым для ЦАП служит напряжение +3,3 В с выхода интегрального стабилизатора DA3, прошедшее через фильтр C26C29L3C30C34.
С выхода 15 микросхемы ЦАП звуковой сигнал проходит через фильтр C23R8C27, подавляющий спектральные компоненты сигнала, лежащие в окрестностях частоты его квантования (250 кГц) и её гармоник, затем через регулятор начальной громкости звука поступает на вход микросхемы УМЗЧ TDA2003 (DA5), включённой по типовой схеме. Эта микросхема установлена на небольшой теплоотвод. Нагрузкой УМЗЧ служит широкополосная динамическая головка BA1.
В процессе игры на инструменте исполнитель меняет громкость звука левой рукой, поднося её сверху к датчику B2, установленному чувствительной поверхностью вверх. Управление громкостью происходит по тому же принципу, что и выбор нот. Пока исполнитель не поднёс руку достаточно близко к датчику, постоянное напряжение на его выходе низкое и ему сопоставлена максимальная громкость звучания. Приближая руку к датчику, исполнитель ступенчато уменьшает громкость. При этом постоянное напряжение на выходе датчика, соединённом с входом ADC4 микроконтроллера, который сконфигурирован как вход его АЦП, растёт и ступенями уменьшает громкость. Отводя руку от датчика, исполнитель так же ступенчато увеличивает громкость до максимальной. Всего реализовано пять уровней громкости.
Программа уменьшает громкость сдвигом вправо (в сторону младшего разряда) цифровых кодов, подаваемых на ЦАП. Сдвиг на один разряд равносильно делению значения кода на два. Для уменьшения громкости до самого низкого уровня должны произойти четыре таких сдвига, что соответствует делению на 16.
Для индикации состояния инструмента в нём имеются пять светодиодов. Светодиод HL1 сигнализирует о том, что установлен максимальный уровень громкости. Когда звучание заблокировано, включён светодиод HL2. Свечение светодиода HL3 показывает, что инструмент воспроизводит звуки, а свечение светодиода HL4 сигнализирует о том,
что достигнута самая высокая нота (1975,5 Гц). Светодиод HL5 включён при наличии питающего напряжения 12 В. Типы светодиодов указаны на схеме.
Собран инструмент на макетной плате, печатная плата для него не разрабатывалась. Для его питания пригоден любой стабилизированный источник напряжения 12 В, рассчитанный на максимальный ток нагрузки не менее 1 А. Проверено, что он может быть как линейным, так и импульсным.
Рис. 3. Окно Configuration and Security bits программы PonyProg2000
Программа микроконтроллера написана на языке ассемблера в интегрированной среде разработки AVR STUDIO 4.19.730. Для загрузки кодов из файла Termennot_vol_DMS.hex в микроконтроллер была использована программа PonyProg2000. Её окно Configuration and Security bits должно выглядеть, как показано на рис. 3. Программатор подключают к разъёму XP1.
Программа микроконтроллера имеется здесь.
Литература
1. Суров С. Терменнот, или терменвокс на микроконтроллере. - Радио, 2013, № 12, с. 21-24.
2. Ридико Л. Низкочастотный генератор синусоидального сигнала с шагом сетки 0,01 Гц. - Схемотехника, 2001, № 2, с. 10-13.
Автор: С. Суворов, г. Нижний Новгород