i2: Прерыватель для SSTC
Примерно месяц тому назад я приступил к разработке нового концептуального прерывателя для SSTC. Разработка весьма близка к завершению. Эта статья является руководством по эксплуатации и тех. заданием в одном лице.
Описание
Прерыватель i2 предназначен для управления SSTC, и, пока, не предназначен для DRSSTC.
Трансформатор Тесла является источником повышенной опасности и, поэтому, прерыватель должен быть разработан так, чтобы не допустить ситуации, представляющей угрозы для жизни людей, а если такая ситуация произошла – минимизировать ее последствия.
Вторая цель, которая ставилась при разработке – минимизировать стоимость и увеличить повторяемость прерывателя.
Основная особенность этого прерывателя – то, что он поддерживает соединение цепочкой. Тоесть, до 16 трансформаторов Тесла может воспроизводить мелодию и, таким образом, создавать полифонию.
Автор провел исследования, в результате которого выяснилось, что воспроизведение нескольких тонов одновременно на одном трансформаторе тесла приводит к неприятным на слух искажениям, поэтому монофоническое воспроизведение в этом случае является оправданным.
Вторая важная особенность – возможность воспроизводить MIDI автономно от компьютера из внутренней памяти.
Небольшое обзорное видео
Да-да, знаю, что из меня актер наипоршивейший, но, тем не менее, снял видушник.
Лицевая панель.
Прерыватель снабжен тремя разъемами – MIDI in, MIDI out, и USB (не показан на панели). Так-же присутствуют четыре светодиода индикации текущего режима и три кнопки. Расшифровка всех режимов присутствует на лицевой панели. Кратко опишем каждый из них:
-
Off – прерыватель отключен от источника питания.
-
Idle – питание присутствует, однако не выбран режим. Прерыватель автоматически переходит в этот режим при подключении USB-провода и остается в нем до отключения USB. Это связано с тем, что при одновременно подключенных USB и теслы образуется земляная петля.
ВНИМАНИЕ! Крайне не рекомендуется одновременно подключать к прерывателю Трансформатор Тесла и провод USB!
-
MIDI slave 31kHz – прерыватель играет роль подчиненного устройства в MIDI – цепочке.
Прерыватель принимает сигнал, совместимый со стандартом MIDI. При получении MIDI ноты, номер канала которой соответствует номеру канала прерывателя и частота которой не превышает максимально допустимую для прерывателя, она будет проиграна на тесле.
-
MIDI slave 38kHz – то-же, что и 3, только используется нестандартная скорость связи 38400кБит/с, что позволит подключить прерыватель к компьютеру с помощью простого переходника COM->MIDI или USB->MIDI.
-
MIDI Master 31kHz – при нажатии на кнопку FIRE, прерыватель будет проигрывать MIDI – файл из внутренней памяти на всех подключенных Теслах.
Если кнопку FIRE отпустить – воспроизведение остановится (так называемый принцип “кнопки мертвеца” – если человек попадет под влияние катушки, он с большей вероятностью отпустит кнопку и тесла прекратит работать).
Если все-же необходимо, чтобы прерыватель воспроизводил MIDI при отпущенной кнопке, то одновременно с кнопкой FIRE следует нажать кнопку “PREV MODE”, после этого обе кнопки можно отпускать. В таком режиме, прерыватель будет воспроизводить MIDI до тех пор, пока не будет нажата любая кнопка.
-
MIDI Passthrough – прерыватель не будет никак реагировать на входящий MIDI – поток, а будет передавать его дальше по цепочке.
-
Set MIDI channel – установка канала MIDI прерывателя. Стандарт MIDI поддерживает 16 каналов. MIDI нота будет воспроизводится прерывателем только если ее номер канала будет совпадать с номером канала прерывателя.
После выбора режима Set MIDI channel, нужно нажать кнопку FIRE и ввести код, предназначенный для исключения случайного переназначения канала. Код вводится так: Нужно нажать ту кнопку которую будут показывать мигающие светодиоды (к примеру, если мигает крайний правый светодиод, нужно нажать кнопку NEXT MODE). Отмена ввода кода и возврат к выбору режима производится кнопкой FIRE.
После ввода пяти символов кода, светодиоды перестанут мигать и покажут номер канала прерывателя в двоичном виде. Его можно изменить, нажимая кнопки NEXT MODE и PREV MODE. После ввода номера канала необходимо нажать кнопку FIRE. Прерыватель три раза мигнет светодиодами, после чего перейдет в режим Idle.
-
Run selfcheck – выполняется цикл самопроверки прерывателя. На время самопроверки все светодиоды погаснут. Когда самопроверка будет окончена, светодиоды покажут код режима самопроверки. Если самопроверка будет провалена – прерыватель начнет моргать правым крайним светодиодом до отключения питания.
-
User mode 1-8 – Пользовательские режимы. Их параметры задаются с компьютера. Пользовательские режимы предназначены для эмулирования обыкновенных прерывателей на микросхемах NE555. Поддерживается 3 режима модуляции – с одним модулятором, с двумя и с тремя.
В режимах с двумя и тремя модуляторами можно включить режим одиночного воспроизведения – при нажатии на кнопку FIRE будет проиграна только одна пачка импульсов. При повторном нажатии кнопки FIRE – еще одна.
В остальном кнопка FIRE работает аналогично режиму MIDI Master 31kHz
Технические параметры
Источником питания для прерывателя является либо USB, либо трансформатор Тесла – в зависимости от того, что подключено в данный момент.
Основные электрические параметры
Параметр | Минимум | Типично | Максимум |
Диапазон входных напряжений, В | 4.5 | 5 | 12 |
Максимальный потребляемый ток, мА | 26 | 40 | |
Выходное напряжение для Теслы | Vcc-0.3 | Vcc |
Параметры модуляторов пользовательских режимов
Параметр | Минимум | Типично | Максимум |
Частота первого модулятора[1], Гц | 10 | 10000 | |
Скважность первого модулятора[1], % | 5.66 | 100 | |
Период второго модулятора [2], мс | 5 | 1000 | |
Период третьего модулятора[2], мс | 5 | 5000 |
[1] Период и ширина импульса первого модулятора изменяется с дискретностью 5.66 мкс.
[2] Период и ширина импульса второго и третьего модуляторов изменяется с дискретностью 1мс.
Программа i2 control panel
Предназначена для настройки прерывателя. Ее интерфейс сделан интуитивно понятным, поэтому не буду объяснять что и как. Картинки “кликабельны”
Аппаратная часть
Как я уже говорил, одна из целей, которая ставилась при разработке – минимизация стоимости.
В качестве контроллера используется atmega16.
В качестве памяти используется любая микросхема dataflash ( любая, название которой начинается с at45 ). Если память не будет впаяна, прерыватель будет работать, но режим MIDI Master 31kHz не будет включаться.
В качестве интерфейса для связи с компьютером используется программный USB – это избавит от покупки довольно дорогих мостов типа ft232r и подобных.
Таблица поддерживаемых нот ( зеленое – номер midi-ноты, желтое – частота ноты)
Комментарии приветствуются.
привет Сергей
слушай а Круто у тебя получается !!
этот прерыватель на меленькой sstc будет
если да то круто !!
я ф шоке
архизапиздатый прерыватель !!!
это не передать словами !!!
Классная вещь!!!
Если не сложно, объясните из за чего музыка получается? По какому закону нужно менять сигнал прерывателя? Что за частоты в табличке?
Музыка из-за разогрева воздуха. Закон — количество импульсов в секунду = 1/частоту. В табличке — частоты нот (не сложно догадаться, прочитав надпись перед табличкой).
Частоты в Гц?
Ага.
Если я правильно понял, то для того, чтобы получить ноту с частотой 880 Гц нужно с прерывателя выдать прямоугольник длительностью 1/880?
А что если хочу сыграть 2 ноты последовательно, скажем с частотами 523.25 и 784 Выдаю первый импульс, а потом сколь задержку делать перед вторым?
Не хотелось бы отнимать Ваше драгоценное время столь глупыми вопросами. Может быть кинете ссыль на хорошую статью с описанием. Был бы очень благодарен.
С описанием чего?
С описанием структуры MIDI- мелодии. Как с помощью последовательность импульсов синтезировать звучание. Я сам принцип хочу узнать.
Описание MIDI есть в википедии. https://ru.wikipedia.org/wiki/MIDI
Это я уже читал и в моём понимании с электрической точки зрения MIDI — последовательность прямоугольных импульсов одинаковой амплитуды, но разной длительности. Я прав?
Нет, MIDI — это передача по протоколу UART.
1. В каком диапазоне частот может издавать звук тесла? Можно ли воспроизвести все перечисленные выше ноты?
2. Возможно ли принципиально реализовать воспроизведение звуку не в формате MIDI? (если да, то в каком ещё?)
1. Зависит от теслы.
2. Принципиально возможно. В любом.
Тогда почему Вы используете именно MIDI?
Самый распространенный стандарт.
«1. Зависит от теслы.»
Вы имеете ввиду от частоты переключения транзисторов?
«Нет, MIDI — это передача по протоколу UART.»
Но ведь UART представляет собой последовательность прямугольников одинаковой амплитуды и одинаковой частоты, определяемой битрейтом. Как же менять частоту звучания нот?
Уарт — это цифровой протокол. Прочитайте про протоколы передачи данных.
Я этим сейчас и занимался.
Суть протокола: передача сигнала происходит по одному сигнальному проводу в последовательном асинхронном виде. Первым передаётся бит готовности к чтению, затем информационные биты. Что-то не так?
Ладно, давайте по порядку начнём.
Ваша SSTC наверно работает следующим образом:
1) при подаче импульса с прерывателя разрешено переключение драйверов, а значит и транзисторов; появляется разряд в тесле;
2) как только импульс прерывателя убирается транзисторы закрываются, разряд прекращается.
Я прав?
да
Ну тогда рассмотрим следующую схему: подаём байт по UART (не будем учитывать 1-й и последний служебные биты), например 10010110. Длительность каждого бита фиксирована, частота следования байтов также фиксирована. Получается за время одного байта будет 3 разряда, причём последний удвоенной длительности. Что это за нота?
нет, прочитайте, наконец, описание протокола MIDI
https://www.gaw.ru/html.cgi/txt/interface/midi/start.htm
Спасибо, прочтение статью сняло много вопросов.
Но всё же эту инфу нужно учитывать при программировании контроллера.
Мой вопрос в другом. Контроллер в вашей схеме является «дешифратором» (во всяком случае та часть, которая выдаёт сигналы управления драйверами). Изменение какого параметра сигнала с выхода прерывателя приводит к синтезированию звучания?
Доброго времени суток. Очень хочется узнать почему такое дивное устройство не может работать с ДРкой
Это дивное устройство не позволяет выдавать импульсы заданной длительности. Оно выдает только импульсы с 50% заполнением.
Простите а что делает таймер и что регулирует R26 или я смотрю не на ту схему
Да, этот таймер был для подключения DRки, но я его так и не испытал. А раз не испытывал, то и не могу говорить, что оно работает.
Понятно.