Уже несколько лет на рынке светотехники можно встретить такие названия, как: «smart led strip», «smart led pixel» и подобные. Как правило, «умный пиксель» — это сборка из миниатюрного 3-х канального светодиодного драйвера (с интегрированным стабилизатором тока, PWM модулятором и сдвиговым регистром), подключенная к RGB светодиоду. На базе таких пикселей многие производители выпускают «умные» гибкие светодиодные ленты, LED «гвозди» и LED кластера. Также можно встретить такие модели чипов, как WS2812, WS2813, с интегрированным LED драйвером непосредственно в корпус 5050 RGB светодиода. Малые габариты, большое количество последовательно включенных пикселей (более 1000 шт.), простота управления по 1(2) проводу и сравнительно низкая стоимость решения — более чем оправдывают их применение.



Эта моя первая публикация на Хабре, в которой я хочу донести мой опыт использования и обозначить недостатки таких пикселей. За несколько последних лет я успел поработать со следующими LED драйверами: LPD6803, WS2801, WS2811, WS2812(B), TM1903, UCS1903, TM1804, TM1803, SM16716 и другими менее ходовыми. В интернете часто можно встретить такой термин как «светодиодная лента с пиксельной адресацией» — я с этим совершенно не согласен, и это является первым ограничением.

Информация в такие ленты/пиксели загружается по последовательному каналу, а именно через сдвиговые регистры с 24-х битной разрядностью (как правило), т.е. 3 канала по 8 бит для RGB. Никаких адресов такие LED пиксели не помнят и работают исключительно по последовательному принципу. Отсутствие сигнала управления на линии данных или синхронизации (если таковая есть), служит командой для преобразования значений в регистрах в PWM сигналы для RGB светодиодов. По этой причине, при выходе из строя информационного канала одного из пикселей, последующие пиксели перестанут корректно работать. Многие неопытные LED «рекламисты» наступили на эти грабли, применяя такие пиксели для уличных экранов.

Рисунок ниже демонстрирует «битые» полоски.



Второе ограничение связанно с температурой использования. В большинстве случаев у пикселей, что управляются только по одному проводу «DATA», к примеру, WS2812B — нижняя температура использования -25 градусов. На практике, часто от -15 градусов. Это связанно с отсутствием хорошего кварцевого блока регенерации сигнала внутри чипа. Таким образом, при низких температурах пиксель перестает корректно работать, наблюдаются «сверчки» и т.п. до полного отсутствия картинки. Другое дело — чипы с синхронизацией: WS2801, LPD6803, к примеру. Здесь имеется хорошая регенерация сигналов по уровням, по времени — регенерация не нужна, поскольку имеется линия синхронизации. Рабочая температура в этом случае от -40 градусов. Но и стоят эти чипы вдвое дороже.

Третье ограничение — глубина цвета.

Рисунок ниже демонстрирует экраны собранный на чипах WS2801.



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

Ощутимым минусом, во всяком случае для меня, было отсутствие хорошего софта подготовки и конвертирования анимации, непосредственно для вывода на «железки». Это явилось четвертым ограничением.
Поначалу я использовал софт «LedEdit».



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

Поскольку в этой теме я был очень заинтересован и обладал неплохими знаниями в области программирования, в том числе микроконтроллеров, я написал свой «граббер» видео с последующей конвертацией на «пиксели». Идею объединить в одной программе возможности создания и конвертирования анимации я сразу отложил, поскольку это не профессиональный подход. Анимацию нужно создавать и редактировать в специализированных программах, к примеру, я выбрал FREE программное обеспечение «Jinx!».



На выходе ПО «Jinx!» можно получить открытый бинарный файл *.out представляющих битовое представление данных прямоугольной матрицы из пикселей для каждого кадра. Теперь дело остается за немногим: сопоставить прямоугольную матрицу из данных для каждого кадра с реальным расположением «умного пикселя» на пиксельном поле и произвести граб анимации. Так у меня родилось FREE программное обеспечение «LS Terminal».



Сейчас ПО «LS Terminal» позволяет работать с большинством видео форматов *.avi, *.flv и д.р., использовать десятки портов, качественно обрабатывать видео захват для десятков тысяч «умных пикселей» расставленных по полю пользователем. Для обработки и визуализации видео я использовал библиотеки OpenCV и OpenGL. Выгрузку данных на «умные пиксели» осуществляю посредством микроконтроллера, который считывает данных с SD карты.

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

— для LED костюмов:



— небольшой изогнутый экран на WS2812:



— в этом объекте несколько тысяч «умных пикселей» WS2801:

Поделиться с друзьями
-->

Комментарии (22)


  1. grossws
    18.07.2016 20:04
    +1

    Ваша статья фактически не имеет отношения ни к одному из указанных хабов.


    Если бы вы описали, например, процесс разработки и используемые решения в рамках своей ls terminal, то оно могло бы относиться к хабу "разработка под windows"; если описали бы разработку под контроллер, который осуществляет выдачу на линейки — к "программированию микроконтроллеров".


    Ну и акцентировать внимание словом free, да ещё и капсом — как-то смешно. Другое дело, если бы это было open source, тогда стоит указать под какой лицензией оно распространяется и где лежат исходники.


  1. VBKesha
    18.07.2016 20:22

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


    1. Firz
      18.07.2016 20:52
      +1

      Заказали бы из китая и они были бы у вас уже «давно+30» дней назад.


      1. VBKesha
        18.07.2016 20:54

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


    1. DenSvet
      18.07.2016 21:15

      Покупайте сразу WS2813, он куда лучше, вот мой скромный обзор:
      https://www.youtube.com/watch?v=hIJeXYO1EBU


      1. dsd_corp
        19.07.2016 11:23

        Правильно ли я понимаю, что эта «защита линии» не стопроцентна и работает только для наиболее вероятного типа «поломок», когда выходит из строя произвольный чип?
        То есть, если выйдут из строя два соседних чипа, идущих на линии подряд, все-таки «все сломается»?


        1. DenSvet
          19.07.2016 11:35

          да, конечно не 100% защита. Верно Вы все поняли. Если 2 шт. подряд сломаются, то все… конец транспорта.


  1. x893
    18.07.2016 21:00

    Есть APA102 — управление по CLK и DATA (SPI).
    Удобнее WS… и от температуры не так зависят.
    https://cdn-shop.adafruit.com/datasheets/APA102.pdf


    1. dernuss
      19.07.2016 22:45

      Ещё недавно вышли apa102-2020, но дороговато пока. И сложно достать.


      1. x893
        20.07.2016 00:27

        7 декабря 2015 заказывал. Проблем не было. По $0.19 за штуку. Сейчас по 12 руб за штуку.


        1. dernuss
          20.07.2016 07:49

          Хм, а где, у кого заказывали?


          1. x893
            20.07.2016 11:22

            На aliexpress. Если на taobao — ещё дешевле. Есть ленты по 96/метр, 144/м. Нарезал кусками по 32 штуки. Отдельные не брал — паять лень было.


  1. dcoder_mm
    19.07.2016 00:29

    кварцевого блока регенерации сигнала внутри чипа

    а это что такое и как правильно называется?


  1. DenSvet
    19.07.2016 00:56

    что-то вроде ретранслятора с функцией восстановления уровня сигнала и его временной диаграммы.
    У чипа WS2801 этот блок называется «Data & Clock reconstruct»


    1. esaulenka
      19.07.2016 10:51
      +1

      Справедливости ради, ни в одном из этих чипов никогда не было «кварцевого блока регенерации».
      (*) Если, конечно, под словом «кварцевый» мы подразумеваем «кварцевый генератор».

      RC-генератор там есть (для генерации ШИМа), в LPD6803 есть некая плохо документированная магия «build-in PLL circuit» для выходного сигнала.
      У WS2801 — просто буфер для восстановления уровней сигналов, времянки никакие не меняются.


      1. DenSvet
        19.07.2016 16:06

        Термостабильный блок регенерации сигнала, такое определение больше подходит?


  1. DenSvet
    19.07.2016 16:02

    ,


  1. DuMOHsmol
    19.07.2016 16:02

    Я бы ещё отметил низкую частоту ШИМ у WS2812. Боковым зрением легко заметить мерцание.


    1. DenSvet
      19.07.2016 16:03

      да, всего 400 Гц. у WS2813 уже 2000 Гц, существенный плюс.


      1. DuMOHsmol
        19.07.2016 16:17

        Мне в этом плане больше всего APA102 понравился с его 19.2 кГц. Вот здесь есть небольшой обзорчик: https://cpldcpu.wordpress.com/2014/08/27/apa102/
        К сожалению, они не такие распространенные на китайских барахолках, как WS2812. И стоят дороже.


        1. DenSvet
          19.07.2016 16:20

          гамма 2.2 коррекция есть? или просто линейный режим PWM?


          1. DuMOHsmol
            19.07.2016 16:24

            Насколько я понял из даташита, просто линейный режим. Там ещё есть 5 бит глобальной яркости (на каждый светодиод), которые могли бы помочь, но у этой яркости ШИМ на 580 Гц, что несколько снижает её пользу.

            Самому мне светодиоды пока только идут, так что точнее сказать не могу.