Pull to refresh

Comments 15

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

Работал в одном банке, у меня был красный флажок. Если падал прод я его поднимал и все бросали дела и начинали чинить. :)

Красота кода, это хорошо, конечно. Я вот ожидал почему-то наглядности этой красоты. Но где красота результата? Видео со световыми эффектами где?

На stm и не пользоваться dma+spi для лент, да ещё и hal осознавать? Где-ж тут красота?)

Что то мне кажется, что если лампочек не одна а значительно больше, то этот blink перестанет быть простым. И красивым ;)

Я, конечно, могу ошибаться, но мне почему-то кажется, что по структуре похоже на рассказ нейронки.

фактически всю статью можно сократить до одного параграфа с описанием и кодом

uint8_t brightness = (uint8_t)((sinf(time * 0.005f) + 1.0f) * 127.5f);

Воткнул бы минус, да кармы не хватает. Вся статья просто бред! Начиная от "кросоты" кода, заканчивая схемлй и описанием к ней. Ws2812 отлично работают от ESP шек, без преобразователей. Бред одним словом. Статье минус!

Иллюстрации к статье рисовала нейронка. На "фото" странный коннектор слева на плате, несуществующий корпус LQFP-40, корявые резисторы рядом со светодиодами, RGB светодиоды - не WS2812 (у них 4 пина, а не 6), и светятся у них не кристаллы, а блики на линзах.

Про схему и говорить нечего: это просто сюр. Кроме абсурдных подключений еще гуляет размер шрифта в маркировке STM и символ "С" задвоился.

Если оставить иллюстрации за скобками, то по существу можно добавить:

- полноценный преобразователь уровней не нужен, достаточно 1-gate инвертора с 5-вольтовым питанием. Например NC7SZ04, он же послужит буфером и защитой пина контроллера от эксцессов при подключении ленты.

- а если у нас есть инвертор, то вместо SPI или GPIO эффективнее использовать UART в режиме 7N1. Имеем "бесплатные" два бита: Start "1" и Stop "0", так что одной посылкой UART кодируем ровно три бита протокола WS2812.

- есть смысл завести DOUT с последнего светодиода на вход контроллера: можно через буфер, можно через защитный резистор - у STM довольно много five-tolerant входов, которые нормально работают с 5-вольтовыми уровнями. Тогда делая лишнюю запись в несуществующий светодиод мы увидим её на входе MCU и сможем контролировать стабильность линии связи.

- использовать классы в low-end линейке Cortex-M? На мой взгляд, оверхед не оправдывает себя. То же самое можно красиво и читабельно сделать чисто процедурно. Но это мои заморочки, тут не настаиваю.

RGB светодиоды - не WS2812 (у них 4 пина, а не 6), и светятся у них не кристаллы, а блики на линзах.

Простите за некропост, у WS2812 их, как раз, 6, а 4 стало уже у WS2812B. И ограничения по питанию у первых более жёсткие, согласно даташиту, конечно же. А WS2812B, да, эта прелесть уже требует от 3.5В до 5+В, и напряжение управляющей последовательности не должно сильно отличаться от напряжения питания, что очень удобно. Так что, с картинкой автор определённо не заморачивался, это точно.

Только вот в коде у него используется вызов WS2812B_Send(), что очень странно, так как выше он пишет:

логическая 1: 0b11100000

логический 0: 0b10000000

А это никак не вяжется с таймингами передачи битов для WS2812B, и, с натяжкой из всех допусков, такой "логический 0" сможет соответствовать только таймингам для WS2812 с его T0H=350ns-150ns и T0L=800ns+150ns. Да и по тексту показания на тему модели диодов расходятся постоянно.

Тогда делая лишнюю запись в несуществующий светодиод мы увидим её на входе MCU и сможем контролировать стабильность линии связи.

А вот это очень круто, кайф! Спасибо большое.

А вообще, пользуясь случаем, хотел бы спросить, так как сам не разбираюсь: если лента будет достаточно длинная, то при её работе, по идее, будет приличный такой ток. И в этом случае питать её от платы с STM32 совсем не получится. Если добавлять внешнее питание, то как следует поступить по-правильному, чтобы уровни оставались согласованными? Объединить GND у ленты и STM32 будет достаточно? Или нужно будет ещё что-то добавить в схему?

Не могу оценить саму реализацию, т.к. не погружен в данную тематику настолько глубоко.

Однако как читатель могу сказать что:

1) Визуализация. Действительно не хватает примера, как это выглядит. Не понятно какой результат мы должны получить на итоге.

2) Сложность не оправдана. Увидев уровень "сложный" ожидал декомпозицию библиотеки, переписывание протокола с нуля и детальный разбор машинного кода :) Но в действительности этого нет.

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

4) Тематика не раскрыта. Архитектура не описана, нет детального разбора для понимания. В чем действительно минимализм, кроме как случайной передачи цветов на ленту не понятно. Если бы была попытка минимизировать тот же "мигающий огонь", то было бы понятно что и зачем минимизировать.

По итогу могу сказать что для минуса не достаточно "косяков", но и для плюса увы положительного мало ¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯

Интересно, а кто нибудь делал эффекты на ws2812 без использования МК, а только на дискретной логике?

«Есть только ты, железо и свет. Всё остальное — шелуха»

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

Сделал на ардуино. Перемигиваются волной красный и синий. Как у полиции получилось. Из-за этого столько буковок?

Sign up to leave a comment.

Articles