- PVSM.RU - https://www.pvsm.ru -

Еще раз о рисовании на экране осциллографа

Изображение на экране аналогового осциллографа всегда вызывало у меня ощущение магии и волшебства, словно заглядываешь через маленькое окошко в таинственный зеленый мир. Особенно, если на экране рисуются не привычные синусоида или «пила», а фигуры Лиссажу или что-то еще более экзотическое. Причем количество материалов в интернете говорит о том, что я далеко не одинок в своем интересе к этой теме.

Не обошел её стороной и Хабр: Рисуем на экране осциллографа [1]. В статье рассказывается про устройство на базе Arduino, рисующее очень эффектное видео.

Однако для рисования сложных изображений необходим осциллограф с входами по двум осям (а в особо «продвинутых» случаях требуется и управление яркостью). Что же делать, если на руках есть только осциллограф с входом по одной оси (как, например, в моем старом добром С1-94), а увидеть своими глазами картинку на экране, тем не менее, хочется?

Снова обратившись к поиску в интернете, с удивлением обнаружил, что конструкция для рисования таких изображений появилась уже в начале 80-х. В статье В. Косинова в журнале Радио №11 за 1981 год описано устройство, которое позволяло отображать цифры на экране осциллографа. И самое главное — не нужен вход по оси X! Достаточно входа Y и входа сигнала внешней синхронизации.

Конструкция использует растровый метод рисования. За один проход луч рисует одну строку растра. Каждой строке соответствует свой уровень напряжения на входе осциллографа.

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

Пример графика сигнала, рисующего четырёхстрочный растр символов «с о» представлен на рисунке.

image

Голубой прямоугольник обозначает область, отображаемую на экране осциллографа, а слева размещено итоговое изображение.

Устройство довольно сложное и содержит 23 микросхемы. Позже, в журнале Радио №7 за 2000 год, была опубликована статья А. Мариевича, в которой благодаря ставшей доступной новой элементарной базе устройство удалось упростить. Но и в нем количество микросхем слишком велико, чтобы реализовать конструкцию за пару-тройку часов свободного времени вечером рабочего дня, — 8 штук, плюс необходимость программировать ПЗУ.

В наше время идея дальнейшего упрощения напрашивается сама собой — с формированием требуемого сигнала на входе осциллографа прекрасно справится микроконтроллер! Первая версия устройства была выполнена на PIC12F629, дополненном простейшим ЦАП на резисторах. Код на ассемблере успешно справился с рисованием цифр, но получился громоздким. В результате проект не получил дальнейшего развития и на некоторое время оказался заброшен.

Интерес возродился после знакомства с Arduino и приобретения платы Arduino Leonardo. Благодаря простоте программирования платформы, за один вечер удалось не только повторить реализованный ранее функционал рисования цифр, но и наделить его неким прикладным смыслом, позволяющим смело встретить вопрос: «а как это применить в сельском хозяйстве?». В итоге получился вот такой осциллограф-секундомер.

image

Превращение нулей и единиц на выходе Arduino в аналоговый сигнал достигается использованием все того же ЦАП на резисторах. Пара кнопок используется для управления секундомером.

Скетч проекта и схема находятся здесь [2].

Рад, если кого-то заинтересовала статья и вызвала желание повторить и усовершенствовать описанное устройство.

Автор:

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/pesochnitsa/117255

Ссылки в тексте:

[1] Рисуем на экране осциллографа: https://habrahabr.ru/post/221591/

[2] здесь: https://github.com/dmp2016/OscilloStopWatch

[3] Источник: http://geektimes.ru/sandbox/3456/