Эта статья является прямым продолжением предыдущей статьи "Практикум по стробоскопу №2. С использованием FAN-TASTIC по-русски".
Лирическое отступление 2.
Буквально через день экспериментов с FAN-TASTIC пришла мысль: "А нельзя ли вместо светящихся пятен и полос вывести на вентилятор осмысленную информацию - текст или графическое изображение, логотип какой-нибудь?" Технически эта задача существенно более сложная, чем собственно FAN-TASTIC. Собственно от FAN-TASTIC там должна была остаться только конструкция обмоток. Были большие сомнения по поводу КПД и возможности обеспечить достаточное питание схемы от вторичной обмотки. Но, к счастью, все обошлось...
Хронологически, эта конструкция сделана раньше стробоскопа, однако последовательность изложения требует нарастающей сложности, поэтому статья о стробоскопе опубликована раньше - он проще и для понимания и конструктивно.
Я решил несколько отступить от принятого разделения на теорию и практику и совместить их, так сказать сделать "два в одном флаконе". Поэтому сначала будет немного совершенно необходимых теоретических пояснений.
Начнем с растрового принципа формирования изображения.
В словарях есть такие толкования слова "растр" (нем. Raster или лат. Rastrum):
- поверхность с чередующимися прозрачными и непрозрачными элементами (решетка)
для структурного преобразования направленного на нее пучка света, применяется в полиграфии при репродуцировании полутоновых оригиналов на стадии фотографирования или
копирования с целью превращения изображения в мелкоточечное;
- светящиеся строки на экране телевизора;
- прибор для графления нотной бумаги (или формной пластины для нотопечатания), одновременно проводящий
5 параллельных линий.
Для наших целей подойдут первые два толкования.
Рассмотрим виртуальное табло, состоящее из светодиодов, организованных в 7 строк по 33 элемента в строке и образующих матрицу или прямоугольную решетку:
|
Рис.1 Растр из 231 светодиода, организованных в матрицу 33Х7
|
Зажигая определенные светодиоды, можно выводить на это табло рисунки или надписи. Для формирования букв часто используется шрифт, в котором все буквы вписаны в матрицу 5Х7 элементов - такие шрифты использовались в первых дисплеях и знакосинтезирующих принтерах, и до сих пор используются в строчных LCD индикаторах. Для разделения рядом стоящих символов используется одна незажженная колонка светодиодов, поэтому фактически одно знакоместо занимает 6Х7 светодиодов.
Например, я хочу вывести на табло название сайта, выглядеть это будет примерно так:
|
Рис.2 Формирование текста на табло с использованием матрицы 6Х7 светодиодов для каждого знакоместа (символа). |
Похожим образом формируется изображение на экране ЖКИ монитора. Иное дело мониторы на ЭЛТ (электронно-лучевых трубках) или телевизоры. В них нет матрицы светящихся элементов, а есть один луч, который, последовательно пробегая все точки виртуальной матрицы, зажигает точки люминофора, формируя видимое изображение (это называется разверткой изображения). На заре телевидения, когда электроника и электронные приборы находились в зачаточном состоянии, широко использовались механические системы развертки, например диск Нипкова.
Представим, что есть столбец из 7 светодиодов. Если его быстро перемещать в пространстве по горизонтали, и, когда его положение будет совпадать с положением колонок растра, приведенного на рис.1, зажигать определенные светодиоды, получится изображение с рис.2. Нужно только соблюсти два важных условия:
- точное пространственное совмещение нашего столбца светодиодов со столбцами растра в момент зажигания светодиодов;
- все изображение должно развертываться (выводиться) за время не более 1/16 секунды, это ограничение связано с инерционностью зрения, при большем времени не получится слитного изображения. Чем меньше время развертки - тем лучше, изображение будет выглядеть ярче, цельным, не будет мерцания.
На рис.3 показан процесс развертывания изображения столбцом из 7 светодиодов. Развертка производится справа-налево, Насыщенностью цвета я попытался передать разные стадии вывода изображения - чем бледнее цвет, тем раньше выведено изображение.
|
Рис.3 Развертка изображения столбцом из 7 светодиодов слева направо. Чем бледнее изображение, тем раньше оно выведено. |
Если разместить столбец светодиодов на лопасти вентилятора, получится устройство электронно-механической развертки изображения, правда изображение будет размещаться по кругу, соответственно пропорции букв несколько исказятся - они станут уже внизу и шире вверху. Чем больше диаметр вентилятора, тем меньше будут искажения, и тем больше символов можно разместить по окружности.
На этом теоретическая часть окончена, переходим к практике.
Первое, с чего следует начать, это точное пространственное совмещение столбца светодиодов с растром. Для этого нужно при каждом обороте крыльчатки начинать формирование изображение строго в определенном ее положении. Существует несколько возможностей получения сигнала положения:
По приходу (фронту) сигнала датчика должна начинаться развертка изображения, причем развертка производится справа-налево, от 0 в сторону увеличения номеров колонок на рисунках 1-4, именно поэтому 0 размещен у крайней правой колонки. Эта, привычная для арабского языка (арабы пишут справа-налево), последовательность вывода изображения связана с направлением вращения крыльчатки: крыльчатка вращается против часовой стрелки, поэтому строчку нам нужно выводить,
начиная с крайнего правого столбца растра.
Для экспериментов я взял обычный 80-мм вентилятор с выходом таходатчика, решив вывести на него по окружности строку из 25 символов. Поскольку размеры вентилятора невелики, светодиоды тоже нужно было использовать малогабаритные. Для этого я попросил у знакомых неисправные сетевые карточки 3-COM и аккуратно выпаял зеленые SMD светодиоды, которые показывают режим работы карточки.
Исходя из габаритов светодиодов и крыльчатки вентилятора, прикинем, удастся ли разместить 25 символов по окружности:
- светодиоды в проекции на печатную плату имеют форму прямоугольника 1х3,5 мм, составим их столбиком с шагом 1,5 мм (зазор между площадками печатной платы 0,5 мм);
- пусть размер светового пятна будет 1х1 мм (на самом деле он шире, но его можно подогнать под нужный черным лаком, что я и сделал позже);
- тогда минимальная длина окружности, вдоль которой разместятся все точки растра (без зазора!), составит 25*6*1 = 150 мм, здесь 25 - количество знакомест (символов) в строке, 6 - количество столбцов в знакоместе, 1 - ширина светящегося пятна светодиода, мм;
- тогда минимальный радиус, на котором еще можно расположить светодиод, составит 150/(2*3,1415) = 23,8 (мм)
- измеряем диаметр крыльчатки - примерно 74-75 мм, соответственно радиус 37-37,5 мм;
- отступим от края на пару миллиметров, и расположим столбик из 7 светодиодов с шагом 1,5 мм;
- центр самого дальнего от оси крыльчатки светодиода будет расположен на расстоянии 37-2,5 = 34,5 (мм)
- тогда центр самого ближнего к оси крыльчатки светодиода будет расположен на расстоянии 34,5-(1,5*6) = 25,5 мм, здесь 1,5 - шаг размещения светодиодов.
Таким образом, требуемое условие минимального радиуса выполнено (23,8 мм < 25,5 мм), и на крыльчатке 80-мм вентилятора удастся разместить строку из 25 символов.
Аналогичные оценочные расчеты можно выполнить для светодиодов или вентиляторов других размеров.
Каким должно быть устройство схемы:
- схема должна состоять из двух частей, первая - располагаться на крыльчатке и управлять зажиганием светодиодов (далее везде по тексту схема 1), ее питание будет производиться от вторичной обмотки трансформатора, вторая - генерировать импульсы для питания первичной обмотки (далее везде по тексту схема 2);
- чтобы вид изображения не зависел от скорости вращения крыльчатки, нужно ее измерять, при этом на вывод одной колонки отводится времени не более 1/150 измеренного времени одного оборота крыльчатки.
Поскольку я собирался для синхронизации использовать тахосигнал вентилятора, функцию измерения времени оборота крыльчатки пришлось возложить на схему 2, она же должна была генерировать импульсы в первичной обмотке, за счет которых питалась схема 1 на крыльчатке, и которые выполняли функцию привязки выводимого изображения к растру.
Рисуем схему управления светодиодами:
|
Рис.4 Схема управления светодиодами (схема 1) |
Здесь:
- L2 - вторичная обмотка трансформатора;
- VD1, С1 образуют выпрямитель и фильтр, VD1 - любой быстродействующий кремниевый диод, лучше - диод Шоттки, у меня это LL4148;
- R1,R2,VD2 - схема формирования логического уровня сигнала прерывания;
- DA1 - стабилизатор напряжения 5 В 78L05;
- С2 - накопительный конденсатор, от него питается схема в промежутки времени между импульсами;
- R5,C4 - схема сброса микроконтроллера;
- DD1 - микроконтроллер Microchip PIC16F628;
- HL1-HL7 - светодиоды;
- R3-R10 - токоограничивающие резисторы.
Для упрощения программного обеспечения микроконтроллера на этапе экспериментов, вывод любой информации будет производиться как графического изображения, т.е. знакогенератора в прошивке пока нет.
Перейдем к схеме измерения периода вращения крыльчатки и генерации импульсов в первичной обмотке.
При экспериментах выяснилось, что принятое решение об использовании тахосигнала для привязки к положению крыльчатки было ошибочным. В результате неопределенности начального положения крыльчатки, положение выводимой строки менялось на 180 градусов, любая помеха могла привести к перевороту строки. Поэтому было принято решение использовать внешний датчик для определения положения крыльчатки. В качестве такого датчика я использовал оптопару ИК светодиод - ИК фототранзистор с открытым оптическим каналом из неисправного дисковода для 3,5" дискет.
Окончательный вариант схемы 2 выглядит так:
|
Рис.5 Схема измерения периода и генерации импульсов (схема 2) |
Здесь:
- DA1 - стабилизатор напряжения 5 В 7805;
- R1,C3 - схема сброса микроконтроллера;
- DA2,R2,R3 - готовая схема на печатной плате, оптопара с открытым оптическим каналом от 3,5" дисковода;
- DD1 - микроконтроллер Microchip PIC16F628;
- С4 - керамический 0,1 - 1 мкФ;
- BQ1 - кварцевый резонатор на 8 МГц;
- C5,C6 - керамические конденсаторы 24 пФ;
- VT1 - полевой транзистор IRL520N;
- R4 - 7,5 Ом;
- R5 - 75 Ом.
- С1,С2,С7 -электролитические конденсаторы;
- L1 - первичная обмотка трансформатора.
Перейдем к картинкам, сразу все станет нагляднее и понятней:
|
Рис.6 Конструкция вентилятора с размещенной на крыльчатке схемой управления светодиодами.
На левой стороне печатной платы располагается схема питания - диод, конденсаторы, стабилизатор, в центре - микроконтроллер, на правой - светодиоды.
К монтажному отверстию вентилятора прикреплена оптопара с открытым оптическим каналом, сигнал от нее уходит в схему 2. |
|
Рис.7 Датчик положения крыльчатки.
1 - индексная метка (небольшой кусочек плотной бумаги, приклеенный к каркасу вторичной обмотки), 2 - оптопара с открытым оптическим каналом.
|
|
Рис.8 Схема измерения времени оборота и формирования импульсов в первичной обмотке трансформатора.
Печатной платы так и не удостоилась. |
Теперь самое интересное - короткий фильм о работе вентилятора. Первые эксперименты я проводил со статической строкой, мне это показалось скучным, поэтому я сделал вывод изображения в виде бегущей строки.
Скачать фильм:
ATLabLogo.zip
774 кБайт
Можно было бы сжать сильнее, но качество выходит совсем низким. |
Что мы увидим в фильме:
- после включения питания схемы 2, некоторое время все светодиоды горят, образуя широкое светящееся кольцо, при этом справа внизу хорошо видно затемнение от платы с оптопарой, поскольку траектория части светодиодов проходит под ней;
- после того, как произошла основная раскрутка крыльчатки, начинается вывод изображения;
- внизу справа, в месте расположения платы с оптопарой программно формируется "темный" сектор, в нем нет изображения;
- некоторое время после начала вывода изображения условно "правый" край строки (как если бы читали текст обычным образом справа налево) "шевелится", в это время происходит окончательное установление скорости вращения крыльчатки, эта шевеленка - накапливающиеся ошибки вычисления интервала между импульсами, формирующими растр;
- муар и мерцание объясняются вторичным стробоскопическим эффектом - разностью частоты регенерации изображения (скорости вращения крыльчатки) и частоты кадров съемки фотоаппарата;
- Xvid кодер внес искажения цвета, на самом деле цвет должен быть ближе по оттенку к зеленому, а не к желто-зеленому, как получилось после сжатия.
|
Что еще можно сделать:
- поскольку изначально я делал вывод только графической информации, для вывода текста нужно в программе микроконтроллера предусмотреть знакогенератор;
- организовать вывод динамического (изменяющегося) текста или изображения, для этого нужно либо добавить микросхему с предварительно записанной информацией, либо организовать кодирование и передачу информации от схемы 2 к схеме 1, например, через ИК канал или через трансформатор;
- сделать из усовершенствованной конструкции (с передачей данных) двух- или одноканальный индикатор уровня чего-нибудь (например, громкости звука);
- вывести показания часов;
- вывести на вентилятор, как на индикатор, показания температурных датчиков, данные о скорости вращения вентиляторов из реобаса (если он это может), или Motherboard Monitor (MBM).
Я попробовал получить доступ к данным MBM (в MBM предусмотрена возможность получения данных через общедоступную область памяти) - написал небольшую программу для PC, у меня получилось, дело только за малым - в очередной раз переписать программное обеспечение для микроконтроллеров, да и схемы нужно бы частично переделать, а заодно и конструкцию вентилятора усовершенствовать - мысли есть. Не то, чтобы это было очень сложно сделать, однако свободного времени нет, увы...
Несколько другое направление для применения схем, аналогичных рассмотренным - формирование полноцветных изображений с помощью пространственного цветосмешения, пример которого был рассмотрен в предыдущей статье "Практикум по стробоскопу №2. С использованием FAN-TASTIC по-русски". Если на крыльчатке разместить колонки светодиодов красного, зеленого, синего цветов, то можно с помощью микроконтроллера управлять ими, получая все оттенки цвета, и формируя полноцветные текстовые или графические изображения. Правда в этом случае остро встанет вопрос КПД трансформатора. Хотя для начала можно ограничиться меньшим количеством светодиодов (по 1-3 каждого цвета), сделав только цветомузыку...
Успехов!
|