[Из песочницы] Еще раз о рисовании на экране осциллографа
Изображение на экране аналогового осциллографа вызывает ощущение магии и волшебства, словно заглядываешь через маленькое окошко в таинственный зеленый мир. Особенно сильно это ощущается, если на экране рисуются не привычные синусоида или «пила», а фигуры Лиссажу или что-то еще более экзотическое. Существует немалое количество публикаций, посвященных этой теме. В частности, ее коснулась статья на Хабре: Рисуем на экране осциллографа, в которой рассказывается про устройство на базе Arduino, рисующее очень эффектное видео.
Однако для рисования сложных изображений необходим осциллограф с двумя входами: X и Y. Что же делать, если на руках есть только осциллограф с входом Y (как, например, в моем старом добром С1–94), а увидеть своими глазами картинку на экране, тем не менее, хочется?
Оказалось, что конструкция для рисования цифр на экране осциллографа была описана уже в начале 80-х, в статье В. Косинова в журнале Радио №11 за 1981. И самое главное — ей не нужен вход по оси X!
Конструкция использует растровый метод рисования. Луч перемещается по горизонтали генератором развертки и за один проход рисует одну строку растра. Каждой строке соответствует свой уровень напряжения на входе Y. Для гашения луч выводится за пределы экрана подачей на вход достаточно высокого напряжения. Переход на новую строку происходит после подачи импульса на вход внешней синхронизации.
Пример графика сигнала, рисующего четырёхстрочное растровое изображение символов «с о» представлен на рисунке.
Голубой прямоугольник обозначает кадры, отображаемые на экране осциллографа, а слева размещено итоговое изображение.
Устройство довольно сложное и содержит 23 микросхемы. Позже, в журнале Радио №7 за 2000 год, была опубликована статья А. Мариевича, в которой, благодаря ставшей доступной на тот момент новой элементарной базе, устройство удалось упростить. Но и в нем количество микросхем слишком велико, чтобы реализовать конструкцию за пару-тройку часов свободного времени вечером рабочего дня, — 8 штук, плюс необходимость программировать ПЗУ.
Сейчас идея дальнейшего упрощения напрашивается сама собой — с формированием требуемого сигнала на входе осциллографа прекрасно справится микроконтроллер. Первая версия устройства была выполнена на PIC12F629, дополненном простейшим ЦАП на резисторах. Код на ассемблере успешно справился с рисованием цифр, но получился довольно «тяжелым». В результате проект не получил дальнейшего развития и на некоторое время оказался заброшен.
Интерес возродился после знакомства с Arduino и приобретения платы Arduino Leonardo. Благодаря простоте программирования в короткий срок получился проект, содержащий набор функций для отображения на экране осциллографа произвольной строки из 7 латинских букв или цифр, а также для рисования на экране 8×35 пикселей графических примитивов: точек и прямоугольников. Аналоговый сигнал формируется при помощи того же простейшего ЦАП на девяти резисторах, собранного на макетной плате.
Работу функций демонстрирует видео:
А чтобы придать проекту прикладной смысл, позволяющий смело встретить вопрос: «Как это применить в сельском хозяйстве?», в код был добавлен счетчик времени, две кнопки: «Старт/Стоп», «Сброс», и осциллограф приобрел дополнительную функцию секундомера:
Электрические схемы и исходники проекта доступны на GitHub.