Как стать автором
Обновить

Комментарии 23

Мне вот интересно, как в Москве в метро сделан вывод текста курсивом? Или это какая-то фича свиговых регистров, которая приводит к такому эффекту?
К сожалению, точно не подскажу, но помнится, там динамическая индикация (судя по «дрожанию» символов, при повороте головы).
И, если я правильно понимаю, у них используют больше вертикальный вывод (у меня — полностью строка).
Например, есть символы «АБВГДЕЖ», и мультиплексирование 1:16, а символы занимают 8 столбцов, то будет выводиться сначала первый столбец от А, В, Д, Ж (в соответствующих местах), затем вторые, третьи, и так далее… потом — соседние символы.
В моём случае мультиплексирование 1:8 — довольно ярко.
В Омских автобусах похожие световые панели делают на 1:24 (вроди бы — точнее не могу сказать, но либо на 3, либо на 4 индикатора выводят).
Как я лично понимаю, это эффект, возникающий при динамической индикации «по вертикали», то есть когда одновременно выводится вся строка, затем следующая и т.д.
Да. Именно так и генерирую строку.
Кстати, подобный эффект можно наблюдать на OLED экранах (в том числе, на Samsung'ах).
Очень похоже на ТВ развёртку.
Думал делать вертикальную развёртку, но там будет слишком большой коэффициент мультепликсирования — низкая яркость и большие броски тока.
При вертикальной развертке имеет смысл разделить столбцы на группы по 8-12 столбцов, и для каждой группы делать отдельную развёртку.
Согласен. Но на тот момент не захотелось городить огород… Получилось вот так.
В прицнипе, работает хорошо. А в случае столбцовой развёртки, можно бы было выводить по SPI (сразу столбец, а не всего 6 бит, как в моём знакогенераторе), но как уж сделал…
Точно-точно, я тоже разглядывал этот «курсив» — это из-за того, что выводят надпись «построчно».

Кстати, в своем проекте я тоже собирался выводить «построчно», но так получилось, что под конкретные светодиодные матрицы (8х8) для разводки платы, их пришлось повернуть на 90 градусов… таким образом получилось, что мои строки трансформировались в столбцы. И «построчный» вывод трансформировался в вывод по столбцам (выводится каждый 8-й столбец за один проход).

Моя матрица 4х(8х8) биколор

P.S. тоже сначала «ногодрыгал», но когда попробовал SPI — обнаружил, что работает раз в 10 быстрее (оценивал по осциллограммам «на глаз») — получилось «до кучи» еще и регулировку яркости реализовать без особого мерцания.
У меня SPI, к сожалению, уже не получится. Если только генерировать строку во временный буфер, и уже от туда выводить посредством «DMA» через SPI. Возможно, послыка будет идти быстрее, но в конечном времени больше потратится на обсчёт.
А биколор — это круче монохромки, согласен. Мне попались только красные, но и их хватит.

В моём проекте знакогенератор самодельный, использую знакоместо 6*8 (6 столбцов, 8 строк) на символ, потому для вывода через SPI придётся придумывать какой-то скользящий буфер.
А для вывода последнего символа — или ногодрыг, или заранее вычислять смещение. А это куча операций сдвига, что тоже довольно затратно по тактам, причём проблема возникает на месте цикла. Реализовать данную процедуру на ассемблере оказалось бы чуть проще, чем на классическом Си.
Кстати, идея.
Регистры ведь кратны 8 битам, ну и пусть неиспользуемые в конце висят в воздухе…
Регистры кратны 8-ми битам, но их количество совпадает с количеством индикаторов. Так проще выводить данные на них.
К тому же, более красиво выглядит плавная бегущая строка, а не перескакивающая по символам. Движение идёт по 1px, а не 1 знакоместу.
Там не так сложно со смещениями и сдвигами.

Вот тут рассказывал про свои наработки. В конце видео есть.
б/у монитор с какой-нибудь барахолки + Raspberry Pi + строк 100 кода на Python для сбора и вывода метрик. 100 баксов и один вечер работы.
Или критически важно именно светодиодку прицепить?
Рассматривался и такой вариант, но:
1. На тот момент достать RPi в Омске было сродни подвигу. Заказывать из заграниц… тоже не хотелось.
[оффтоп] RPi должен бы стоить $35, но недавно был куплен за 2800 деревянных (что скорее $85, чем $35, хотя не принципиально для многих) [/оффтоп]
2. Было интересно, смогу ли сам сделать это.
3. Устройство желательно сделать мобильным и с питанием по PoE. Потому и изворачиваюсь.
4. Это же интересно! =)
5. К тому же, самообразование — я бы так просто не полез писать динамическую индикацию, работу с сетью, обмен данными между чипами…
А тут — реальный шанс найти кучу интересных грабель и сделать что-то полезное для офиса.
Ну Вы просто так начали статью, мол, это для работы, нужно мониторить всякое, телефонию там, другое важное — вот я и подумал как бы так сделать максимально просто, дёшево и быстро. А если just for fun — то конечно, отчего же нет. Удачи Вам с проектом.
Для самого простого мониторинга у меня сейчас стоит «мигалка сетевая». Она описана мельком в первой части. И скрипт соответствующий — если авария «Отправить 1», если нет аварии — «Отправить 0». Там COM-порт с сетевым интерфейсом (Арлан 9000), который подключен к 48-й меге… да, это было собрано почти на коленке. Просто теперь поднимаю уровень поделки до приемлемого. За одно освободится чужое устройство.
А так — вполне согласен, лучше бы было сделать всё на готовом. Да хотя бы использовать тот же Nagios с SMS оповещением… допустим.
Надеюсь, она будет не в виде бегущей строки. Ибо в виде бегущей строки нормально воспринимается только реклама, а важную информацию передавать лучше всего сменяющимися кадрами когда строка не мельтешит, если выводимые данные не умещаются в строку целиком.

Возможно вообще было бы лучше добавить мнемонические индикаторы с изображением серверов/объектов контроля — горит зеленым — нормально, горит красным — плохо, горит желтым(или мигает) — в информационной строке выведена информация касающаяся соответствующего объекта.
В случае длинной строки, которая не поместится на экран, будет бегущая строка. Если текст окажется довольно коротким — строка не будет бежать.
А вообще, режимы будут выбираться динамически при передаче строки.
Например, часы, будут в режиме статической индикации.
А по поводу рекламы — вполне согласен.

По индикаторам — согласен, их тоже делаю. Будут на WS2801. Управление пикселами — элементарное. Как раз такие и будут показывать «общий» статус.
На макетке обкатан только режим бегущей строки. Описан режим без движения текста, но его пока не проверил.
Есть ещё режим вывода графики, но он пока что остался без тестирования.
Лучше пусть движутся строки — сверху вниз или снизу вверх, но не бегущая строка.
Бегущая строка решение конечно простое, но очень неприятное для глаз — надо найти начало этой постоянно бегущей строки, считать её дождаться хвоста и только потом понять что там написано.
В принципе, тоже вариант. Это можно реализовать, но не уверен, что это будет использоваться у меня.
Но спасибо, идею учту.
Хорошая лицензия, годная.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории