Проект "ТРЫНДЕЛКА"

MIDI-гитара своими руками

Главная
Протокол MIDI
Принцип действия
Звукосниматель
Лады и струны
Питание
Аналоговая часть
Контроллер PIC16x74
COM-порт
MIDI-порт
Управление и индикация
Алгоритм детектирования нот

Фотоальбом
MIDI-файлы

Об авторе

Аналоговая часть

Аналоговая часть схемы имеет 6 каналов, каждый из которых занимается детектированием амплитуды колебаний соответствующей струны. В качестве усилителя используется операционник К1401УД2А (4 канала в одном корпусе). Изначально задумывалось включать ОУ как обычный дифференциальный усилитель (по паспорту усиление порядка 50 000 раз). Двухполупериодный выпрямитель построен на базе К140ДА1 (2 канала в одном корпусе). Сигнал с выхода схемы подается на вход встроенного АЦП микроконтроллера.

analog.gif (8355 bytes)

а) Однополярное питание

analog2.gif (3672 bytes)

б) Биполярное питание

analog3.gif (6358 bytes)

в) Усоувершенствованная схема детектирования сигнала

Изначально схема была с однополярным питанием (а), при этом зря пропадали два канала операционника. После перехода к биполярному питанию, организованному с помощью одного из свободных каналов, схема упростилась (б).

Использованная схема сглаживания выходного сигнала  выпрямителя (а, б) обладала существенным недостатком, затрудняющим декодирование нот: конденсатор медленно разряжался. В результате при "запуске" струны на АЦП (период оцифровки около 8 мс) приходил довольно четкий фронт, а при ее заглушении - относительно медленный спад с крутизной 1-2 единицы точности преобразования на период. Учитывая, что подобные колебания на входе АЦП (несколько делений на период) возникают и в процессе нормального звучания струны, для детектирования конца ноты приходилось анализировать достаточно длинный кусок осциллограммы (5-7 отсчетов) на предмет монотонного спада. Ввиду того, что исполнитель при всем при этом может еще и манипульровать с порожками (играть одной левой рукой), алгоритм анализа сильно усложнялся. Взять резисторы в цепи разряда сильно меньшего номинала нельзя, так как это приведет к росту потребления в совокупной нагрузке выпрямителя, а питание схемы - аккумуляторное.

В результате долгих раздумий мне пришла идея - постоянную цепь разряда ликвидировать и управлять емкостью на выходе выпрямителя (она становится уже не сглаживающей, а накопительной) по принципу "налил-вылил", как японская садовая игрушка-фонтанчик. Схема показана на рисунке (в). При накоплении выпрямленного значения емкость не имеет цепи разряда и фактически заряжается до максимума выпрямленного сигнала за период сканирования. Перед выполнением АЦ-преобразования накопленный заряд сливается на внутренний конденсатор-защелку АЦП, номинал которой в 100 раз меньше номинала накопительного конденсатора. После преобразования вывод микроконтроллера, используемый как вход АЦП, перекоммутируется и становится цифровым выходом, на который выдается нулевое напряжение. Это приводит к разряду накопительной емкости. Через какое-то время вывод микросхемы снова переводится в третье состояние и в следующем цикле опроса звукоснимателей используется как вход АЦП данного канала.

Данное усовершенствование позволило сильно упростить алгоритм анализа входных сигналов. Фактически, теперь стало возможным работать просто по амплитуде входного сигнала со звукоснимателя, организуя гистерезис. Раньше требовалось анализировать скорость нарастания и спада огибающей.

nelin.gif (3211 bytes)

г) Условно работающая схема с нелинейным усилением (без МС выпрямителей)

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

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

Условность работы схемы состоит в следующем: при требующихся больших коэффициентах усиления начинает играть роль напряжение смещения, имеющееся между входами операционника внутри него самого. Оно очень мало, но если оно положительное или практически нулевое, то переменник в цепи ОС позволяет настроить рабочую точку для выходного диода: чем больше усиление, тем выше постоянное напряжение на выходе ОУ. А вот если смещение отрицательное, то с увеличением коэффициента усиления выходное напряжение наоборот все сильнее "жмется" к нулю, и чувствительность канала к манипуляциям со струнами оказывается слишком низкой (выходной диод закрыт и открывается, только если очень сильно дернуть за струну). Надо подумать, как грамотно подтянуть входное напряжение в отсутствие сигнала к "плюс нулю".

<<< Назад   |   Вперед >>>

Хостинг от uCoz