Цифровое_табло_своими_руками

Цифровое_табло_своими_руками

Табло бегущая строка.

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

Почему это все появилось в открытом доступе? С течением времени электронные компоненты несколько устаревают, появляются более дешевые микросхемки, другие корпуса, новые протоколы и интерфейсы. То, что несколько лет назад было чудом техники и вполне конкурентным продуктом, сегодня уже смотрится чудно, да и производство будет обходиться раза в полтора дороже, чем это возможно в случае переделки разработки по современным стандартам. Все что будет описано ниже, работает довольно неплохо, однако если бы мне поручили сделать подобный девайс, я бы не задумываясь, перерисовал платку под новые компоненты. Однако, в образовательном смысле все приведенные схемки представляют определенный интерес.

Здесь и далее последовательно будут описаны все модули и приемы, используемые в данном девайсе, по принципу от простого к готовому устройству. Статья основана на конкретной разработке, так что небольшое описание ее параметров:

  • Число строк в табло (светодиодов): 16 или 2х8
  • Число столбцов в табло (светодиодов): 1..256 (по надобности)
  • Режимы скролинга текста: все возможные
  • Прочее: Часы, календарик, связь с ПК по ком порту, термометр, и т.п.

Как зажигаются лампочки.

Как уже было сказано, в описываемом варианте табло бегущая строка используются 256*16 светодиодов красного цвета. Первый вопрос, который может встать перед начинающим инженером: как же они все подключены? Это ж сколько надо контактов? Действительно, при простой схеме подключения, когда светодиод подключен к управляющей микросхеме напрямую, число контактов будет запредельным, поэтому в устройствах отображения типа табло и т.п используется матричная схема включения, позволяющая сократить число задействованных управляющих контактов в разы.

Схема включения светодиодов довольно проста: представьте себе что у каждого светодиода в ряду есть общий контакт и в каждой строчке точно так же. Для наглядности можно посмотреть картинку ниже.

Как этим всем управлять? А очень просто: на строчку можно подать "плюс", столбец (нужный) подключить к "минусу", и тогда загорится нужная лампочка.

Правда есть один не тривиальный нюанс: на картинки ниже представленны типичные варианты работы системы табло-бегущая строка.

Если про случаи а и б все предельно ясно, то случай в, довольно нетривиален: что бы зажечь одновременно разные светодиоды в разных строчках и столбцах (например по-диагонале, как показано на картинке) требуется применить такой вот хитрый метод: сначала зажигается светодиод на верхней строчке, какое -то время лампочка горит (в это время управляющий микроконтроллер может делать другие полезные вещи), затем напряжение с первой строчки снимается, и подается на вторую, а микросхемы, отвечающие за то, какие столбцы подключать к минусам, а какие оставлять в воздухе , так же получают новую задачку. Какое-то время горит лампочка на нижней строчке, затем опять подается напряжение на верхнюю и так по циклу. Поскольку смена активных строчек происходит очень быстро(с максимально доступной для процессора скоростью), то глаза не успевают рассмотреть происходящее, и создается видимость, что горит вся табличка равномерно.

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

Думаю про матричную схему включения все понятно, и можно переходить к более интересным вещам.

Схема управления матрицей светодиодов.

Итак, как уже было описано ранее, требуется попеременно подавать напряжение на строчки матрицы светодиодов, и каким-то образом задавать уровни на столбцах.

Управление строчками можно реализовать на любом тразисторе, который способен выдавать требуемый ток (рассчитывается из максимального тока, потребляемого всеми светодиодами в строчке одновременно). Каждый транзистор по надобности открывает или закрывает управляющий МК, см картинку ниже.

Для управления столбцами матрицы светодиодов, можно использовать сдвиговые регистры. Собственно основная их цель, это заменить параллельное управление всеми столбцами матрицы, на последовательное. Число возможных столбцов в табличке можно быть достаточно большим (256-512), и практически никакой МК не способен напрямую управлять таким числом входов напрямую.

Сдвиговые регистры это специальные цифровые микросхемы, работающие синхронно с главным МК таблички, который тактирует их по соответствующему входу. Каждый такт МК может выставлять на вход данных сдвигового регистра (единственный) ноль или единицу, она запишется в первую ячейку памяти сдвигового регистра (всего в каждом их может быт различное число, в нашем случае это 16 ). На следующий такт первый записанный бит переходит во вторую ячейку регистра, а в первую попадает то, что подал МК на вход, т.е. с каждым следующим тактом работы, последовательность бит заходит в регистр все глубже. Сдвиговые регистры так же могут иметь выход — выход это как бы продолжение цепочки, т.е после заполнения последней ячейки регистра, на следующем такте ее информация не пропадет просто так, а будет подана на выход, к которому может быть подключен следующий сдвиговый регистр. Таким образом можно делать сколь угодно длинные цепочки, наполняющиеся по последовательному каналу, и преобразующие его в довольно длинный "параллельный" выход. В нашем случае разрядность сдвигового регистра будет 8, а всего в цепочке таких микросхем будет 32, что в итоге даст возможность выставлять последовательность бит на 256 рядов, светодиодов.

Читайте также:  Математический_маятник_вывод_формулы

На самом деле, в табло-бегущая строка используются не просто сдвиговые регистры, а некоторая модификация, со специальными функциями (LED driver MBI5026 (pdf)), которые требуются только в этой системе, такими как:
1) управление яркостью ряда светодиодов, специальным внешним резистором(по одному на каждую микросхему сдвигового регистра),
2) специальная управляющая линия у каждой микросхемы, соответствующая команде: подать информацию на параллельный выход ( на тактах заполнения, биты просто проходят сквозь цепочку регистров, а на выходах находится старая информация, и по этой команде (плюс на линию) регистры обновляют все своих выходы свежезакаченным содержимым из памяти.

SDI — последовательный вход данных (от микроконтроллера, либо предудущего в цепочки сдвигового регистра)
CLK — тактирование
LE — сигнал перехода содержимго внутреннего последовательного буффера в выдные регистры
OUT0..15 — биты парралельных выходов
OE — выключатель парралельных выходов
SDO — последовательный выход данных на следующую микросхему (прошедшие насквозь через 16 битов регистра)

Цепочку сдвиговых регистров (драйверов рядов LED) можно увидеть на плате слева (длинные микросхемы DIP). Транзисторы, включающие строчки, справа внизу

Итак, после прочтения, читателю должно быть понятно как в табло-бегущая строка происходит управление всеми строчками и столбцами, на всякий случай, чуть ниже есть еще одна поясняющая картинка.

Что такое видеопамять.

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

Во всех цифровых устройствах с экраном, как правило происходит разделение: какие-то части устройства отвечают за расчет того, что нужно отображать, а какие-то управляют самим механизмом отображения. В нашем случае всем этим (расчетом содержимого видеопамяти и закачкой информации в сдвиговые регистры для отображения содержимого строки) занимается один микроконтроллер(потому что задачка-то в целом простая), однако в МК так же как и в PC существует видеопамять (скорее программная конструкция), из которой по таймеру происходит отображение строчек самого табло. Видеопамять должна чем-то быть заполнена, в случае табло-бегущая строка — строкой текста, расположенной где-то в зависимости от вида эффекта(вертикальная или горизонтальная прокрутка) и режима отображения (одна большая строчка, две маленькие независимые строчки).

Шрифты в табло бегущая строка

На поиск и установку шрифтов в первый раз ушло совсем не много времени: очень помогла статья про русификацию старинных EGA адаптеров, в суть я особо не вчитывался, сразу в глаза бросилась табличка соответствия бинарных кодов буковкам и спец символам, вид примерно следующий:

Таким образом, описываются шрифты в системах, где каждый символ занимает 8 на 8 пикселей: так 0х7Е, это верхняя строчка значка или буковки, в бинарном представлении: 01111110, где 1ки означают что точка должна быть белая а 0 черный, ну и далее по строчкам

Русская буква "а" будет представлена в виде

Ну а дальше мы можем отвести кусок внутренней памяти МК, достаточного размера и задать начальную точку, с которой начнем штамповать буковки, собственно это и есть процесс заполнения видеопамяти.


укороченный прототип таблички уже умеет отображать слова

Бегающий текст.

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

Аналогичные процессы пересчета содержимого видеопамяти происходят и в обычном ПК, когда требуется поменять содержимое экрана, однако есть некоторые нюансы: дешевые микроконтроллеры неспособны просчитать всю видеопамять за короткое время, попытки реализовать такой алгоритм привели к довольно большим задержкам процесса обновления экрана. Из-за того что один и тот же процессор отвечает за пересчет видеопамяти и вывод ее построчно на сдвиговые регистры — страдают обе эти операции, а задержка вывода строчек приводит к увеличению времени показа каждой, и глаза начинают видеть неприятные мерцания всей матрицы. Если же времени не хватает совсем, то глаз видит не всю матрицу целиком, а только одну горящую строчку в каждый момент времени, пробегающую сверху вниз.

В ПК такой проблемы не может быть в принципе, т.к за просчет видеопамяти и ее свежее наполнение отвечает ЦП, а за вывод на экран монитора видеокарта. С одной стороны никто не мешает повторить эту же архитектуру и в "бегущей строке", однако это привело бы к удорожанию всей платы контроллера матрицы. Однако, ввиду того, что набор задач, решаемых МК табло довольно ограничен, и сводится к простому выводу текста, эта проблема как правило решается построчным просчетом видеопамяти.

Просчет изменений одной строчки занимает совсем небольшое время, которое как раз можно отвести под ее же вывод на матрицу (дать погореть немного), затем можно переключаться к следующей. Хотя данный алгоритм действий может серьезно варьироваться в зависимости от применяемого МК. Как уже сказал в начале, данная разработка несколько устарела, отчасти потому что в ней был применен КМ AVR mega128, в свое время довольно функциональный, но его вычислительная мощь в 16Мгц, не достаточна для применения других алгоритмов для этой задачки, хотя можно было бы решить и асинхронным просчетом видеопамяти и отображению по разным таймерам.

Читайте также:  Нужен_ли_бассейн_в_бане

Наверное многие заметили, что в табличках бегущая строка, в процессе прокрутки текста появляется некоторый, ели заметный наклон букв (как-будто они написаны курсивом). Этот эффект как раз и появляется из-за того, что видеопамять и отображение это асинхронные процессы, и если видеопамять просчитывается сверху вниз, то верхняя часть уже сдвинулась по алгоритму прокрутки куда хотелось, а снизу отображаются еще данные предыдущего такта просчета.

В целом про эффекты движения текста писать особо нечего, это простенькая программисткая задачка.

Управляющая программа PC

Ссылки

Принципиальныя схема табло бегущая строка PDF, GIF (большие, сохраняйте на диск)

Программирование видеоадаптеров CGA, EGA и VGA. Отсюда я стянул записанную в hex, почти готовую табличку шрифтов ASCII таблички. Для окончательной подгонки на язык C, понадобилось проделать всего лишь несколько контекстных замен.

Шрифты из моей прошивки Некоторое извращение, за основу взят массив из ссылки выше, затем он был "руссифицирован", т.е в основной DOS ASCII табличке добавились русские буквы для полной совместимости с WINDOWS управляющим ПО

Разводку и файл прошивки думаю прилагать смысла нет, т.к повторять описанную выше модификацию бегущей строчки в наши проблематично MBI5026 в DIP корпусе уже сняли с производства, надо переразводить под SOIC, а лучше и под другой процессор типа ARM (получится даже дешевле)

PDF используемых микросхем

Развлекуха

В процессе программирования прототипа появилась возможность немного поиграть с укороченной версией. Если кратко — doom отдыхает: табло игрушка для настоящих мужчин! 🙂

Плагин для winamp

В популярном ранее проигрыватели mp3 winamp есть собственная библиотека функций языка Си (SDK) для написания плагинов. Разобраться в нем дело пары часов. Винамп предоставляет всякие входные данные декодирования mp3 формата, при помощи которого и рисуется подобие спектрального анализатора в самом плеере. Но нам же этого мало, мы хоим все по-настоящему и на стенку сразу :-). Итак, принцип работы понятен интуитивно, связь с ПК через RS232 (вполне хватает для прокачки данных риалтаймом).

Слева от таблички плата с контроллером и БП AT кормящий все это
Из наворотов хотелось еще сделать скроллинг названия песенки, когда она только начинается (как это и сделано в самом винампе, но это уже стало лень)
Тут же идея для любителей автотюнинга: можно преврватить в такую моргающую штуку всю внутреннюю часть крышки багажника, что бы когда он открывался (крышка становилась под 90градусов) — сзади был отличный обзор на красные столбики, прыгающие под громкий, убойный музон.
При желании все можно воплотить в варианте без винампа и компа, полностью автономно, так будет даже лучше.

Ну и конечно веселый мувик, как все это работало.
Звук немного пищит, потому что усиливается вот этим чудом.

Еще более веселый мувик, играет "лесорубы".

Электронный транспарант

Собственно укороченная версия табло бегущая строка(64 столбика), нанизанная на палку. Питание от аккумулятора UPS 12 вольт, хватает на 2 часа работы. Управление (у меня же клевый транспарант, на нем можно менять надписи прямо на месте) происходит напрямую с клавиатуры, подключенной непосредственно к микроконтролеру AVR (т.е идет чтение сканкодов, переданных клавиатурой по ее последовательному порту)
Режимы прокрутки текста: горизонтальная, вертикальная, статика (одно короткое слово), мигание в статике. Для удобства были задействованы горячие клавиши F1-F4 указания режима прокрутки + Caps-lock смена языка ввода (транспарант получился мультиязычный 🙂 ). Было немного неудобно писать на клавиатуре, расположенной на коленках и без экрана, хотя backspaсe тоже был задействован.

Развлекаемся на соревнованиях мобильные роботы в 2008 году. Уже в качестве зрителей 🙂

Заключение

Вот такой вот ерундой я занимался на четвертом курсе, вместо того что бы сидеть на лекциях или трудиться над нашим институтским мобильным роботом. Вся эта фишка с табличкой была частью одного вроде бы коммерческого проекта, который так ничем и не закончился. Однако мне тогда было очень интересно попробовать себя в виде программиста встроенных систем, в целом все получилось. Так же хотел написать диплом по теме табло бегущая строка, но подвернулась тема , которая в тот момент была интереснее: там же нейросети!! 🙂

СХЕМА СВЕТОДИОДНОГО ТАБЛО

Электронное информационное табло – дисплей. Это 85 SMD светодиодный матричный дисплей, для которого потребуется микроконтроллер Atmega88V и некоторое количество других деталей. С размерами 24 х 85 мм, питается от 3 вольтовой батарейки. Её заряда хватит очень надолго, даже когда в ней останется только 2 вольта, работа не прекратиться. После включения информационного табло, начнётся отображение бегущей строки в соответствии со сделанным выбором. В памяти возможно сохранение 4 текстов, каждый из них имеет объём в 127 символов. Следует отметить, что 128-я ячейка нужна для специального использования. Схема является подобием готовой промышленной конструкции на PIC16F628A.

Схема светодиодного табло на микроконтроллере

Назначение кнопок

  • 1 — скорость отображения бегущей строки — медленнее/быстрее
  • 2 – отображение текста в — негативе / позитиве
  • 3 – изменение отображения размера букв – маленькие / большие
  • 4 — текстовый редактор, после ввода нажмите одну из кнопок для выбора текста для редактирования. Затем, B1 — для предыдущего символа, B2 для следующего символа, B3 для перехода к следующей ячейке, после нажатия на эту кнопку предыдущий символ будет сохранен. Нет необходимости использовать все 127 символов памяти, нажмите B4 для завершения редактирования, это позволит сэкономить последний символ и вернуться в нормальный режим.
Читайте также:  Чем_подкормить_хризантемы_на_зиму

В нормальном режиме, во время отображения текста, нажатие той же кнопки приведёт к паузе, повторное нажатие будет отменой паузы. Нажатие другой кнопки, вызовет сразу плавный переход к новому тексту. Когда весь текст был отображён в полном объёме, устройство переключается на режим пониженного энергопотребления, которое составляет 1 мА. При отображении, происходит измерение напряжения батареи и программным обеспечением ведётся расчет токопотребления светодиодов, исходя их имеющегося напряжения в интервале от 2 до 3,5 вольт.

Причина в необходимости принятия данных предупредительных мер в том, что увеличение тока может привести к повреждению светодиодов. С напряжением ниже этого уровня, в 1,8 вольта, устройство может работать если используются красные 2-х вольтовые светодиоды.

На лицевой стороне печатной платы необходимо подключить 3 светодиодных строки тонким обмоточным проводом. Прошивка микроконтроллера прилагается, причём будет не лишним рассмотреть варианты её доработки с целью улучшения.

Когда ваше электронное табло заработает многие заметят, что в табличках бегущей строки, в процессе прокрутки текста появляется некоторый, еле заметный наклон букв. Суть этого эффекта в том, что видеопамять и отображение это асинхронные процессы, и если видеопамять просчитывается сверху вниз, то верхняя часть уже сдвинулась по алгоритму прокрутки куда хотелось, а снизу отображаются еще данные предыдущего такта просчета. Это нормально. Схема, п/плата, монтажная плата и т.д. – всё в архиве для скачивания.

Световое табло своими руками.

Фирм, выпускающих (или ввозящих из поднебесной) световые табло довольно много. Интернет пестрит объявлениями о продаже световых табло. Каких только не существует – ТСМ, ТСБ, довольно известные названия – Молния, Кристалл, НБО и много других. Цены колеблются от 140 рублей до нескольких тысяч за большие рекламные световые короба. На маленьких табло, которые давно серийно выпускают в Китае и завозят в Россию под каким либо российским брендом, как правило, отображаются статичные надписи типа «вход », «выход », «не входить», «пожар » и так далее. Встречаются эти табло в различных учреждениях. Выглядят они довольно, мягко скажем, просто, но так и стоят не дорого. Представляют собой такие световые табло пластмассовую коробочку с просвечиваемой лицевой панелью, на которую трафаретом или аппликацией нанесен контур нужной надписи. Внутри лампочка (сейчас чаще светодиодная) на нужное напряжение (220 , 24 или 12 вольт). Вроде все просто. Но цена их оптом не позволит конкурировать ручному производству, чьи плюсы именно в уникальности создаваемого продукта. А эти табло в большей своей массе хороши для поликлиник, развлекательных центров, предприятий, и других заведений, где нет амбиций по поводу внешнего и внутреннего лоска. Поэтому стоит ориентироваться на выпуск световых табло рекламных и уникальных. Имея большой опыт в производстве светодиодных табло, нам кажется — сделать «простенькое световое» легко. Чтобы изготовить самое простое световое табло на светодиодах может потребоваться: пила торцовочная хорошего качества для распила профиля, и хороший режущий плоттер для вырезки надписей или рисунков в виниловой пленке. Можно наносить надписи и краской, но трафарет резать все равно придется. О мелком инструменте (отвертки пассатижи, паяльники и т.д.) сейчас говорить не будем — без него браться за какое либо дело нечего. Из материалов понадобится: профиль багетный (для изящных тонких изделий), пластик или композитная панель, акриловое стекло прозрачное, молочное или цветное — в зависимости от создаваемого продукта, виниловые пленки, светодиодные источники света тонкие (пиксели , линейки, ленты), источник питания на напряжение требуемое источнику света. Это пожалуй весь основной набор. Основное в производстве световых табло — знать как скомбинировать свет, цвет, прозрачность. Какие пленки и стекла использовать для создания картинки. Как сделать засветку. Чтобы быстро представлять нужные комбинации материалов необходимо долго экспериментировать, видеть разные результаты, учиться на ошибках. Например, создать тонкое световое табло большой площади — задача не простая. Играет роль и плотность источников света и их расположение. Чтобы табло выглядело достойно, его надо делать из современного багетного профиля. Толщина профиля от 3 до 4,5 сантиметров. А еще желательно поместить источник питания внутрь — не везде подойдет выносной. Для долгой жизни диодов источник должен быть стабилизированный, очень качественный, для светодиодов. Для многих случаев в качестве светящегося элемента подходит светодиодная лента с 60-ю SMD светодиодами в метре. Итак, распилив профиль, и собрав рамку из профиля, вырезаем по размеру заднюю панель из пластика, установили на нее светодиодную ленту и источник питания. Теперь осталось вырезать плоттером и нанести нужное изображение на переднее стекло. Бывают табло где картинка вставляется между стеклом и источником света, работая на просвет. Это проще, но для этого тоже необходимо подготовить определенные материалы — просто бумагу установить можно, но получится плохо. Вот, в общем, и всё.

А вот еще пример светового табло, только совмещенного со светодиодным табло валют (см фото). Подсветка выполнена светодиодами.

Некоторые важные комментарии. Важно – чтобы себестоимость изделия получилась не очень высокой, необходимо четко знать какие материалы и для каких целей больше подходят. В общем нужен технолог. Делать типовые серийные изделия в небольшой мастерской — не выгодно, слишкои низкие цены. Зато при ручной работе есть огромный простор для персонального дизайна, лучший внешний вид изделий чем массовых и возможность быстро изменять размеры. Скорость сборки гораздо ниже, чем изделий в готовых корпусах и требуется довольно точное оборудование для резки профиля. Применение светодиодной подсветки снижает в разы энергопотребление и позволяет делать изделие не обслуживаемым, замена ламп не потребуется лет восемь-десять.

Ссылка на основную публикацию
Цветочный_бордюр_вдоль_дорожки
Как украсить сад бордюрными цветами Бордюрные цветы все больше обретают популярность среди садоводов-любителей с каждым годом. И это неудивительно! Ведь...
Хороший_бур_для_зимней_рыбалки
Ледобуры для зимней рыбалки: советы по выбору Зимняя рыбалка, в отличие от летней, предполагает постоянное перемещение по замерзшему водоему в...
Хороший_крем_для_обуви_из_натуральной_кожи
Хороший крем для обуви из натуральной кожи За любыми вещами необходимо ухаживать. И тогда они сохранят свой внешний вид еще...
Цветочный_клещ_на_комнатных_растениях_фото
Паутинный клещ на комнатных растениях Каждый хочет иметь растение дома, неважно с практической точки зрения или с эстетической, но комнатные...
Adblock detector