Изображение на экране аналогового осциллографа вызывает ощущение магии и волшебства, словно заглядываешь через маленькое окошко в таинственный зеленый мир. Особенно сильно это ощущается, если на экране рисуются не привычные синусоида или «пила», а фигуры Лиссажу или что-то еще более экзотическое. Существует немалое количество публикаций, посвященных этой теме. В частности, ее коснулась статья на Хабре: Рисуем на экране осциллографа, в которой рассказывается про устройство на базе Arduino, рисующее очень эффектное видео.
Однако для рисования сложных изображений необходим осциллограф с двумя входами: X и Y. Что же делать, если на руках есть только осциллограф с входом Y (как, например, в моем старом добром С1-94), а увидеть своими глазами картинку на экране, тем не менее, хочется?
Оказалось, что конструкция для рисования цифр на экране осциллографа была описана уже в начале 80-х, в статье В. Косинова в журнале Радио №11 за 1981. И самое главное — ей не нужен вход по оси X!
Конструкция использует растровый метод рисования. Луч перемещается по горизонтали генератором развертки и за один проход рисует одну строку растра. Каждой строке соответствует свой уровень напряжения на входе Y. Для гашения луч выводится за пределы экрана подачей на вход достаточно высокого напряжения. Переход на новую строку происходит после подачи импульса на вход внешней синхронизации.
Пример графика сигнала, рисующего четырёхстрочное растровое изображение символов «с о» представлен на рисунке.
Голубой прямоугольник обозначает кадры, отображаемые на экране осциллографа, а слева размещено итоговое изображение.
Устройство довольно сложное и содержит 23 микросхемы. Позже, в журнале Радио №7 за 2000 год, была опубликована статья А. Мариевича, в которой, благодаря ставшей доступной на тот момент новой элементарной базе, устройство удалось упростить. Но и в нем количество микросхем слишком велико, чтобы реализовать конструкцию за пару-тройку часов свободного времени вечером рабочего дня, — 8 штук, плюс необходимость программировать ПЗУ.
Сейчас идея дальнейшего упрощения напрашивается сама собой — с формированием требуемого сигнала на входе осциллографа прекрасно справится микроконтроллер. Первая версия устройства была выполнена на PIC12F629, дополненном простейшим ЦАП на резисторах. Код на ассемблере успешно справился с рисованием цифр, но получился довольно «тяжелым». В результате проект не получил дальнейшего развития и на некоторое время оказался заброшен.
Интерес возродился после знакомства с Arduino и приобретения платы Arduino Leonardo. Благодаря простоте программирования в короткий срок получился проект, содержащий набор функций для отображения на экране осциллографа произвольной строки из 7 латинских букв или цифр, а также для рисования на экране 8х35 пикселей графических примитивов: точек и прямоугольников. Аналоговый сигнал формируется при помощи того же простейшего ЦАП на девяти резисторах, собранного на макетной плате.
Работу функций демонстрирует видео:
А чтобы придать проекту прикладной смысл, позволяющий смело встретить вопрос: «Как это применить в сельском хозяйстве?», в код был добавлен счетчик времени, две кнопки: «Старт/Стоп», «Сброс», и осциллограф приобрел дополнительную функцию секундомера:
Электрические схемы и исходники проекта доступны на GitHub.
Однако для рисования сложных изображений необходим осциллограф с двумя входами: X и Y. Что же делать, если на руках есть только осциллограф с входом Y (как, например, в моем старом добром С1-94), а увидеть своими глазами картинку на экране, тем не менее, хочется?
Оказалось, что конструкция для рисования цифр на экране осциллографа была описана уже в начале 80-х, в статье В. Косинова в журнале Радио №11 за 1981. И самое главное — ей не нужен вход по оси X!
Конструкция использует растровый метод рисования. Луч перемещается по горизонтали генератором развертки и за один проход рисует одну строку растра. Каждой строке соответствует свой уровень напряжения на входе Y. Для гашения луч выводится за пределы экрана подачей на вход достаточно высокого напряжения. Переход на новую строку происходит после подачи импульса на вход внешней синхронизации.
Пример графика сигнала, рисующего четырёхстрочное растровое изображение символов «с о» представлен на рисунке.
Голубой прямоугольник обозначает кадры, отображаемые на экране осциллографа, а слева размещено итоговое изображение.
Устройство довольно сложное и содержит 23 микросхемы. Позже, в журнале Радио №7 за 2000 год, была опубликована статья А. Мариевича, в которой, благодаря ставшей доступной на тот момент новой элементарной базе, устройство удалось упростить. Но и в нем количество микросхем слишком велико, чтобы реализовать конструкцию за пару-тройку часов свободного времени вечером рабочего дня, — 8 штук, плюс необходимость программировать ПЗУ.
Сейчас идея дальнейшего упрощения напрашивается сама собой — с формированием требуемого сигнала на входе осциллографа прекрасно справится микроконтроллер. Первая версия устройства была выполнена на PIC12F629, дополненном простейшим ЦАП на резисторах. Код на ассемблере успешно справился с рисованием цифр, но получился довольно «тяжелым». В результате проект не получил дальнейшего развития и на некоторое время оказался заброшен.
Интерес возродился после знакомства с Arduino и приобретения платы Arduino Leonardo. Благодаря простоте программирования в короткий срок получился проект, содержащий набор функций для отображения на экране осциллографа произвольной строки из 7 латинских букв или цифр, а также для рисования на экране 8х35 пикселей графических примитивов: точек и прямоугольников. Аналоговый сигнал формируется при помощи того же простейшего ЦАП на девяти резисторах, собранного на макетной плате.
Работу функций демонстрирует видео:
А чтобы придать проекту прикладной смысл, позволяющий смело встретить вопрос: «Как это применить в сельском хозяйстве?», в код был добавлен счетчик времени, две кнопки: «Старт/Стоп», «Сброс», и осциллограф приобрел дополнительную функцию секундомера:
Электрические схемы и исходники проекта доступны на GitHub.
Поделиться с друзьями
Комментарии (11)
kasperos
24.05.2016 14:36>Для гашения луч выводится за пределы экрана подачей на вход достаточно высокого напряжения.
Там нет сигнала «Z» отвечающего за яркость сигнала?
В аналоговом телевизионном сигнале есть (хотя уже скорее было) понятие уровня черного, и чернее черного при котором и происходил обратный ход луча.dlinyj
24.05.2016 14:47Z-входа судя по описанию нет (далеко не у каждого осцила он есть). Плюс обычно там достаточно большое напряжение (порядка 20 вольт) надо подавать, чтобы гасить луч. Тут уже не просто одну ардуину с резисторами надо городить.
bougakov
24.05.2016 19:40+1Это забавно — но вот вы попробуйте картинки с помощью обычного аудиотрека 44 кГц порисовать:
radiolok
Зачет! Одна из очаровательных моделей осциллографов на мой взгляд.
А почему решили ограничиться 16 битами ЦАП? Ардуино и с матрицей 256х256 справится.
dm_p2016
Спасибо!
Ограничения диктовал осциллограф — если существенно увеличить разрешение, то возникают проблемы с синхронизацией и заметным мерцанием изображения.