Обмеження у використанні розумних світлодіодів WS2812, WS2801 та подібних у сучасних проектах декоративної світлотехніки

Вже кілька років на ринку світлотехніки можна зустріти такі назви, як: «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:

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.