Авторизация
Зарегистрироваться

Ещё одна гирлянда на WS2812

  • Цена: $17.98 (2 x 50шт)

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

Схемотехника гирлянды не отличается оригинальностью – применена самая дешёвая плата 5-вольтовая Arduino Pro Mini, коих несколько штук валялось без дела. Гирлянда подключается напрямую к плате единственным сигнальным проводом. Подключить питание к плате и гирлянде – и «железо» готово. В упомянутых выше обзорах это подробно и качественно описано.
Свою реализацию фоткать не буду – стыдно за колхоз, гордится нечем :)

Выбрал именно такой вариант гирлянды я по единственной причине – ёлка у нас белая. Реализации на WS2811 с RGB-светодиодом, которая однозначно лучше, я не нашёл с белыми или прозрачными проводами (плохо искал?). Чёрные или зелёные слишком виднелись бы на белой ёлке. Но в этом варианте в силу конструктивных особенностей светят только в одну сторону (на 180 градусов), поэтому многие из них при установке подсвечивают внутренности ёлки, а не создают эффект точечного источника. Но если не придираться, то это не такой уж большой недостаток. Ниже покажу, как это выглядит.

Основу гирлянды составляют модули WS2812, представляющие собой чип с интегрированным RGB-светодиодом. Модули запаяны на маленькие круглые платы, с обратной стороны которых предусмотрены контактные площадки для соединения плат в гирлянду. Помимо модуля, на плате запаяны резистор и конденсатор – необходимая обвязка для соединения модулей.
Платы соединены трёхпроводным шлейфом из достаточно толстых (диаметр около 1мм) многожильных проводов в прозрачной изоляции.
Пайка визуально выглядит неплохо. Но в паре мест провода всё-таки отвалились при экспериментах и «монтаже» на ёлку.
Продавец предлагает на выбор соединительные провода длиной 10 или 12 сантиметров. Я купил 10-сантиметровые, хотя потом оказалось, что 12-сантиметровые подошли бы лучше. Длины двух купленных гирлянд чуть-чуть не хватило, чтобы полностью «обмотать» ёлку высотой 180 см.
На концах гирлянд припаяны парные трёхконтактные разъёмы с фиксаторами (не знаю, как их правильно называть), т.е. гирлянды можно просто соединять последовательно. Мало того, что разъёмы чёрные, они припаяны красно-бело-зелёными проводами, которые резко выделяются на белой ёлке. Поэтому точку ввода и место соединения гирлянд пришлось прятать на «теневой» стороне ёлки. Можно было, конечно, избавится от места соединения, подключив две гирлянды напрямую без разъёмов, но я пока решил этого не делать.
Почему-то помимо разъёмов к контактам питания были дополнительно припаяны отрезки провода длиной сантиметров 10. На фото продавца такого нет. Я их сразу отпаял за ненадобностью, к сожалению фото не сделал. Также отпаял разъём с одного их концов одной гирлянды и использовал его для подключения к Arduino. Получилось достаточно удобно – две «половинки» гирлянды и блок управления быстро и просто соединяются.

На фото продавца особенности гирлянд неплохо видны; я приведу несколько своих фоток, так сказать, «в интерьере».
Фото гирлянды на ёлке



Некрасивое соединение гирлянд

Разъёмы




Итого — гирлянда выглядит вполне прилично, не выделяется.

Теперь о нескольких допущенных мною проколах. Все они связаны с питанием гирлянды. Гирлянда потребляет достаточно приличный ток: если верить данным продавца, то аж 5.76 ампера на моих две гирлянды, исходя из строки «Расход энергии (Вт/м):2,88 Вт/м». Блок питания на такой ток найти непросто, максимум что у меня оказалось – 2 А. Далее, на больших токах даже на толстых проводах при достаточной их длине падает приличное напряжение. Следовательно, светодиоды в конце гирлянды питаются меньшим напряжением, чем светодиоды в начале. Ну и конечно часть напряжение падает на подводящих проводах и разъёмах от блока питания (я использовал ненужный USB-MiniUSB кабель). Таким образом, напряжение на конце гирлянды может «просесть» ниже минимального рабочего напряжения для модулей (3,5 В по спецификации).

Для измерений «на натуре» я использовал скетч, включающий в цикле все светодиоды на красный, зелёный, синий и белый цвета. Для каждого из включённых цветов измерял напряжения в начале (Uнач) и в конце (Uкон) гирлянды, а также потребляемый ею ток (I). Для полноты картины измерения делал как для полной (100-светодиодной), так и для «половинчатой» (50-светодиодной) гирлянд, и дополнительно мерял напряжение прямо на выходе блока питания (Uбп).
Результаты измерения приведены в таблице.



Видно, что падение напряжение действительно значительное. Однако на функционировании гирлянды это визуально почти не сказывается. Только на 100-светодиодной гирлянде при максимальной нагрузке (белый цвет) слегка видно падение яркости и уход в жёлтый цвет верхней трети гирлянды. Это неудивительно, поскольку в этом случае на конце гирлянды оказывается меньше трёх вольт. Также хорошо видно, что подводящий провод с его разъёмами совсем хиленький – на нём при максимальной нагрузке падает целый вольт.
Можно было, конечно, усилить подводящие питание провода, убрать лишние разъёмы. Был даже вариант организовать встречное питание (один из полюсов подключить к концу гирлянды отдельным проводом). Но это отличие в цвете на ёлке, когда конец отдалён от начала, не виден. А режимы с максимальной нагрузкой в эффектах встречаются очень редко. Поэтому было решено не заморачиваться :)
А заявленные продавцом ватты, как можно было ожидать, оказались китайскими. Несмотря на это гирлянда имеет весьма приличную яркость, даже при свете эффекты хорошо видны. Сколь-нибудь заметного нагрева светодиодов (проверял рукой) при работе не заметил.

И самое главное – скетч. За его основу я взял скетч github.com/bportaluri/ALA, творчески его так сказать переработав. Основные отличительные особенности скетча такие:
— скетч полностью автономен, режимы переключаются автоматически случайным образом
— в эффектах использованы палитры цветов, т.е. один и тот же эффект может работать с разными цветами. Палитры также переключаются случайным образом
— между режимами реализован плавный переход для исключения «дёргания»
— использовано что-то вроде гамма-коррекции для более равномерного изменения яркости в эффектах

Случайный выбор режимов и палитр, случайные параметры некоторых режимов и случайная скорость дают очень большое разнообразие итоговых эффектов, что и было конечной целью.
Сам скетч можно скачать отсюда.
Скетч я делал в Visual Studio Code с «родным» плагином для Arduino от Microsoft, но он нормально компилируется и в «родной» среде Arduino IDE. Неродных внешних библиотек не требуется — использованную adafruit_neopixel для управления лентой встроил прямо в скетч.
UPD: из-за проблем с запуском убрал поддержку Visual Studio Code и встроенную библиотеку. Теперь скетч нужно запускать в Arduino IDE с установленной внешней библиотекой Adafruit_NeoPixel.
При открытии в Arduino IDE необходимо поместить все скачанные файлы в папку с названием «arws2812» — так же, как и называется стартовый файл скетча (arws2812.ino).

Для тех, кто будет дорабатывать: в файле anim.h задаётся номер «ноги» Arduino, к которой подключена гирлянда, и количество светодиодов. Единственный момент — 100 светодиодов это уже предел для 2 кбайт ОЗУ. Отвечу на вопросы в комментариях :)
Для демонстрации я немного поменял скетч — сделал последовательный перебор режимов и палитр. Вот результат его работы:

С наступающим Новым Годом!
Планирую купить +116 Добавить в избранное +130 +235
свернуть развернуть
Комментарии (247)
RSS
+
avatar
  • al15613
  • 29 декабря 2017, 17:21
+13
Спасибо за «красивый» обзор. Почувствовал приближение Нового Года. Обзор ко времени! Всех с наступающим 2018…
+
avatar
  • knst
  • 30 декабря 2017, 12:57
0
ообзор не ко времени.
есть такая пословица — обозревай гирлянды летом, а плавки зимой.
+
avatar
+1
ообзор не ко времени
Ко времени, поскольку повторяется за 15 минут.
А до следующего года — уже будет опыт использования, и время на доработку :)
+
avatar
  • Der_Graf
  • 29 декабря 2017, 17:22
+4
Огромный ПЛЮС за прямые руки и фантазию!!!
+
avatar
  • ZondeR
  • 29 декабря 2017, 17:40
+6
Ништяк! Теперь я знаю для чего нужна белая ёлка)
+
avatar
  • randvell
  • 29 декабря 2017, 18:18
+7
Белая елка это прекрасно. Ее преображает даже простая гирлянда за $3-4 из Китая.

Вот теперь подумываю собрать скетч из обзора и опробовать на своей его)
+
avatar
  • Onegin45
  • 30 декабря 2017, 18:28
0
У нас на работе наставили белых елок. Мы их называем седыми :)
+
avatar
  • Worker
  • 29 декабря 2017, 17:56
+2
Обычно на светодиодных лентах большой длинны, питание подводят с двух сторон. И тогда падение напряжения минимальны. За обзор плюс однозначно.
+
avatar
+1
Это так, но на ёлке это не всегда практично — требуется оба конца вывести снизу, что практически не даёт возможности получить эффекты по феншую.

ЗЫ: Вести отдельный двухжильный (и длинный) провод питания к верхушке ёлки — тоже не особо хороший выход.
+
avatar
  • Psh
  • 29 декабря 2017, 21:35
+2
А ничего такого сложного, обвить по стволу, в какой-нибудь бело-прозрачной (в данном случае) оплётке и всё…
+
avatar
0
А кто сказал, что это сложно? Для начала это не нужно (см. мою мессагу ниже). А уж потом — малоэффективно (так или иначе — длинный провод).
+
avatar
  • EEhd
  • 29 декабря 2017, 22:12
+2
Подведите к середине ленты, практичнее выйдет.
+
avatar
0
Для большей равномерности не к середине, а наверно к двум третям от начала ;)
+
avatar
  • nochkin
  • 30 декабря 2017, 07:31
0
Или как вариант — яркость не заводить на максимум. При 50% яркости и потребление будет соответствующим.
+
avatar
+2
Красиво!
За обзор "+"
Если нужны WS2811 с белыми проводами, то вот 100 шт.
Платки, правда, всё равно зелёные(((
Но можно их белой термоусадкой закрыть.
+
avatar
  • Rzzz
  • 29 декабря 2017, 18:20
+1
Конструктив этих платок крайне неудачен. Так и видится, как при растяжении гирлянды отрываются монтажные пятачки на платах.
+
avatar
+1
Согласен. Тогда так. Там место пайки залито. Но зелень платок видна.
+
avatar
  • NSS75
  • 29 декабря 2017, 19:21
0
А встречал кто подобные гирлянды со светодиодами поменьше? На WS2811 для домашней елки выглядят не очень.
+
avatar
  • Rzzz
  • 30 декабря 2017, 01:17
0
удл.
+
avatar
  • Serko
  • 03 января 2018, 14:42
0
Бодрые 3500 из-за доставки ЕМС стоит.
+
avatar
+1
термоклеем заливать сразу. как ни странно — помогает от таких вот неприятностей весьма эффективно
+
avatar
0
Как вариант использовать светодиоды APA106. Правда выйдет дороже чуть.
+
avatar
  • Arm100
  • 29 декабря 2017, 18:58
0
просто красиво. респект вам и с нг
с меня +
+
avatar
  • ABATAPA
  • 29 декабря 2017, 19:13
+13
Мммм… Пожалуй, вставлю это в третий раз…
+
avatar
  • Bob-boB
  • 29 декабря 2017, 20:49
0
как такое чудо сделать?
+
avatar
  • Cucumber
  • 29 декабря 2017, 21:29
0
На ютубе ссылка под видео.
+
avatar
  • Psh
  • 29 декабря 2017, 21:37
+1
Это ж всё дело ещё нужно правильно намотать на ёлку
+
avatar
  • motorkk7
  • 29 декабря 2017, 19:25
+6
Всех с наступающим. Такой вариант гирлянды, управление с телефона. Проект McLighting V2. WS2811 100 шт, ESP8266
+
avatar
+2
И часто вы сидите возле елки и переключаете режимы со смарта? :)
+
avatar
  • motorkk7
  • 29 декабря 2017, 20:29
+1
У елки пока сидеть некогда :( Из 55 режимов реально можно использовать не более 10, но каждый требует подстройки скорости переключения, яркости светодиодов. Через телефон очень удобно.
+
avatar
  • ABATAPA
  • 01 января 2018, 16:55
+2
Спасибо! Быстренько сделал на окно в дополнение к ёлке (а на ней скетч как в обзоре).

+
avatar
  • Dimon_
  • 29 декабря 2017, 19:32
+4
Только на 100-светодиодной гирлянде при максимальной нагрузке (белый цвет)
Обновлял свой проект двухгодичной давности только на вот таких светодиодах. Увеличил тоже до 100 штук и в конце гирлянды ощутил уже реальное падение, хотя там проводочки не такие хлипенькие. Последние два десятка диодов начинали «мерцать» на высоких яркостях, этакая глубокая модуляция получалась.
Решил проблему просто. Дальний конец у меня на макушке. От него тоже спустил питающую линию аккуратненько по стволу, там почти и не видно. Так что гирлянда питается сразу с двух концов. Это только аудиофилы не любят «земляных петель», а у меня всё ровненько и стабильно работает.
+
avatar
+1
Не знаю, я к 50-диодной такой же присобачил вторую, стало 100, никаких чисто визуальных проблем с просадкой не наблюл. Вот коротенькое видео: yadi.sk/i/vqYI69S43R6bpx видно, что верхние диоды горят столь же ярко, что и остальные.
+
avatar
  • Amoralus
  • 29 декабря 2017, 19:36
+1
А вот зря отпали провода на стыке двух лент, это как раз для подачи питания и нужно… На каждые 50 диодов идёт где-то до 3 ампер, в зависимости от цвета и яркости… У меня справляются 3, 2ух амперных зарядок на 150…
+
avatar
  • udavst
  • 19 января 2018, 15:00
0
У меня 2 таких ленты спаянные вместе, спокойно тянет 5v 1.5A, по яркости невооружённым глазом отличий не вижу.
+
avatar
+1
А у меня так получилось-новогодняя подсветка на бесконечном зеркале, ws2812b и arduino.
+
avatar
  • Sosedus
  • 29 декабря 2017, 20:26
0
Отличный обзор, я как раз думаю собрать погожую гирлянду.
+
avatar
  • Nikolaj
  • 29 декабря 2017, 20:46
0
Не подскажете, как увеличить число светодиодов в вашем скетче? У меня Arduino Nano. Эффекты понравились, только 20 диодов не горят. Заранее благодарен.
+
avatar
  • Igorrrrr
  • 29 декабря 2017, 21:25
+2
в файле anim.h параметр define LEDS — кол-во диодов. но если ставить больше 105 при компиляции уже ругается что возможен недостаток памяти. можно упростить скетч, пожертвовав частью эффектов. но у меня этот скетч пока вообще не работает ))
+
avatar
  • Lvr
  • 29 декабря 2017, 21:38
+1
Там одному эффекту (stars) нужен дополнительный большой массив в ОЗУ. Эффект так себе, можно и пожертвовать им (или адаптировать как-нибудь).
Я просто не думал что у кого-то будет больше 100 диодов
+
avatar
  • Lvr
  • 29 декабря 2017, 21:31
+1
Число светодиодов указывается в файле anim.h,
#define LEDS 100

Вместо 100 нужно вписать требуемое число.
Но боюсь на 120 не хватит памяти, на nano вроде те же 2 килобайта, что и на pro mini
+
avatar
  • Nikolaj
  • 29 декабря 2017, 21:52
0
Спасибо, буду пробовать.
+
avatar
0
Вы бы писали, на чём хватит… ЕСПшку искать или память навешивать?
+
avatar
  • Dimon_
  • 29 декабря 2017, 20:51
+1
Lvr, спасибо за проект. Но код, судя по всему, нерабочий :(

Никакого Visual Studio Code ни с какими плагинами у меня, конечно, нет. Весь код под ардуино я пишу, что логично, в ArduinoIDE.

Скормил ваш исходник.
Всё скомпилировалось и собралось без проблем.
Использовал ProMini, памяти хватает.

Пин 2 — правильный, количество диодов 100, правильно. Т.е. вообще не менял исходник. У меня всё совпадает с вашим железом.

Вгружается без проблем, но абсолютно никакого движения. Такое впечатление, что во второй пин ничего не дует.

Беру классический пример из стандартной библиотеки Adafruit_NeoPixel. Устанавливаю тот же пин и то же количество диодов. Всё работает и мигает, значит, аппаратно нет проблем. Вгружаю свой собственный скетч. Всё работает. Вгружаю ваш — тишина.

Окей. Обойдёмся без костыля ExtNeoPixel. Используем стандартную внешнюю.
1. Убираю в вашем скетче все упоминания о ExtNeoPixel, вытираю ExtNeoPixel.h и ExtNeoPixel.cpp.
2. Прописываю использование вместо неё Adafruit_NeoPixel.h.

Всё компилится и вгружается. Тишина. Вгружаю пример из этой библиотеки ещё раз. Всё мигает.

В anim.cpp проверяю строку с конструктором Adafruit_NeoPixel(LEDS, PIN, NEO_GRB + NEO_KHZ800);
Всё правильно, тип нужный, а LEDS и, PIN у нас определены вверху. С этим типом и этими константами всё работает на стандартном примере.

Вопрос: что делать ©.

Смотрю вывод в терминал.
RAM=259
(start)anim->(run)
pal->(run)1


Т.е. main работает, что-то перебирает. Аппаратного вывода на пин 2 нет или с таймингами что-то не то. Установки в IDE для платы, конечно, не менялись подо все примеры, всё одинаково.
Видимо, идея писать в сторонней студии была не очень хорошей…
+
avatar
0
У Вас направление точно верное? Если «задом наперёд» подключить — как раз и не будет движения.
+
avatar
  • Dimon_
  • 29 декабря 2017, 21:03
0
Верное, конечно. Я ничего не перепаиваю. Свой скетч работает. Стандартный пример от неопиксел работает. Данный скетч — нет. Аппаратно ничего не трогаю, просто вгружаю разные скетчи. Пин один и тот же, PIN 2.
+
avatar
  • Nikolaj
  • 29 декабря 2017, 21:06
0
У меня запустился сразу, только не могу светодиодов добавить.
+
avatar
  • Dimon_
  • 29 декабря 2017, 21:09
0
В какой среде делаете? Какая ардуина?
+
avatar
  • Nikolaj
  • 29 декабря 2017, 21:24
0
Arduino nano. К своему стыду не знаю, что такое среда. На старости лет только начинаю осваивать Ардуино. Тупо пользуюсь ARDUINO 1.6.6. Научился немного скетчи подправлять, но тут не могу найти количество светодиодов.
+
avatar
+2
Arduino IDE 1.6.6 и есть среда.
+
avatar
  • Nikolaj
  • 29 декабря 2017, 21:38
+2
Спасибо, буду знать. На муське больше узнаёшь, чем в Гугле.
+
avatar
0
Если свой работает — тады ой, не знаю, где собака 2018 порылась…
+
avatar
  • Igorrrrr
  • 29 декабря 2017, 21:19
0
Заинтересовался после этого сообщения, проверил (правда были только Nano на 328й меге и кусок ленты на 69 диодов, но разницы-то нет), аналогичная ситуация — стандартные примеры вгружаются и моргают (пробовал выходы D2 и D5), адалайт работает, скетч из обзора грузится без ошибок, но никакой активности нет.
+
avatar
  • Dimon_
  • 29 декабря 2017, 21:33
0
скетч из обзора грузится без ошибок, но никакой активности нет.
Окей. Повторяемый результат — это тоже результат, пусть и отрицательный. Спасибо. Значит, ищем дальше.
+
avatar
  • Lvr
  • 29 декабря 2017, 21:35
+1
Это странно, т.к. для компиляции плагин к visual studio использует Ardiuno IDE, т.е. результат не должен отличаться…
Я использовал ExtNeoPixel из упомянутой в обзоре ALA потому, что с Adafruit_NeoPixel, стянутой из официального репозитория, скетч у меня вообще вис. Тогда не стал разбираться, похоже, зря…
Чуть позже попробую залить из Arduino IDE
+
avatar
  • Lvr
  • 29 декабря 2017, 22:54
+1
Да, действительно при загрузке из Arduino IDE симптомы как у Dimon_ и Igorrrrr. Очередной раз зарекаюсь использовать неродные средства разработки.
Буду разбираться.
+
avatar
0
Да, действительно при загрузке из Arduino IDE симптомы как у
Пришлось расчехлить и свои ардуинки :)
Результат:
1) Pro Micro (328 5v) — поставил управляющим 13-й пин (было удобней). Среда Arduino 1.8.5, выставил 72 диода — залилось отлично стартануло с пол-пинка.
В ленте у меня 144 диода, прошка при увеличении до 144,140,120 компилилась, но ругалась. Вытянул Leonardo (наверное micro, размером с Pro Mini, но на AT32U4)
2)AT32U4 (Leonardo), 144 диода, 2-й пин управляет. Скомпилировалось, запустилось с пол-пинка, на все 144 диода :)
Автору респект — Новогоднее Миганее обеспечено.
Для остальных — напомню некоторые моменты, которые могли повлиять на неуд. результат:
1) Arduino 1.8.5 — лежит на офсайте.
2) Архив распаковываем в одну папку (можно с оригинальным названием, можно ws2812)
Далее — ОБЯЗАТЕЛЬНО переименовываем main.ino в «название_архива».ino (ws2812.ino).
Запускаем. Должны автоматом подтянуться все библиотеки. Добавится кучка закладок.
3) Правим anim.h по вкусу.

Думаю основная проблема именно в main.ino->архив.ino
+
avatar
  • Igorrrrr
  • 30 декабря 2017, 00:11
0
«про» может быть и работает, проблема с нано ))
1) 1.8.2, 1.8.5 — результат один и тот же
2) при чем тут имя файла? проект открывается, все вкладки тоже, если б не — он бы даже не скомпилировался. (хотя для смеха переименовал, закономерно, без результата).
даже у автора симптомы те же появились.
+
avatar
  • fdonskoj
  • 30 декабря 2017, 02:01
0
Сделал как написал уважаемый shaman1010. Всё работает. Ардуино нано, брал в китае уже и не помню когда. Ёлка давно стоит с гирляндами WS2811, запускал при помощи китайских контролёров. Но эта китайщина и в подмётки не годятся проекту автора. Огромное всем спасибо за скетч и за оказанную помощь в запуске его в железе. Красотища ещё какая.
+
avatar
  • tutam
  • 04 января 2018, 00:30
0
Далее — ОБЯЗАТЕЛЬНО переименовываем main.ino в «название_архива».ino (ws2812.ino).

У меня название этого файла было (arws2812.ino) переделал в (ws2812.ino) всё пошло.
спасибо автору и shaman1010.

плата Leonardo (наверное micro, размером с Pro Mini, но на AT32U4)
+
avatar
  • Lvr
  • 30 декабря 2017, 00:14
+4
Добился запуска при компиляции из Arduino IDE у себя (правда странным способом). Скетч в github обновил.
Dimon_, Igorrrrr и у кого ещё скетч не работал — при возможности проверьте обновление, интересно же…
shaman1010, спасибо, советы дельные, но не помогли. Кажется мне что тут какая-то глубоко закопанная особенность компилятора…
+
avatar
  • Igorrrrr
  • 30 декабря 2017, 00:38
0
подтверждаю, заработало отлично! супер :) спасибо огромное. интересно всё же узнать «что это было») разные версии каких-то библиотек в средах разработки или что…
+
avatar
  • Lvr
  • 30 декабря 2017, 11:27
+2
Поменял «встроенную» в скетч реализацию Adafruit_NeoPixel (в файлах ExtNeoPixel.*) на нормальную внешнюю. Как говорил, почему-то нормальная сначала не завелась, висла, скорее всего из-за VS Code.
Далее, вытащил из класса переменную pixels, сделал её обычной переменной, и инициализировал в самом скетче, а не в конструкторе класса.
В общем не нужно было чрезмерно усложнять с самого начала :)
Хотя поначалу я хотел сделать всё по канонам ООП — по классу на каждый эффект, наследование и т.п., но очень быстро упёрся в ограничение памяти. Так что вывод — для слабых микроконтроллеров современные навороты программирования вредны :)
+
avatar
0
Ну ООП не такой уж и «современный наворот», но для МК, конечно нет ничего лучше православного асма. Вот только поди попробуй написать на нем даже средний проект. Хотя для мигания гирляндой, пожалуй, самое то.
+
avatar
  • Lvr
  • 05 января 2018, 17:49
0
Ассемблер требует знания инструкций контроллера, нюансов организации регистров, адресного пространства и т.п., которые для каждого контроллера свои. В C с этим проще и универсальнее. Хотя, конечно, понимать во что примерно C-шный код превращается в итоге, очень полезное качество.
+
avatar
  • Halex
  • 30 декабря 2017, 10:22
+1
Вот теперь Вы поправили баги. Во «вчерашнем по пять» была полная анархия. Посмотрите даже вчерашний anim.h — в инклюдах объявлена ExtNeoPixel, а внутри обращение идёт к стандартной Adafruit_NeoPixel. У любого компилятора «крыша съедет». Ну, да ладно, заработало, подтверждаю…
Для любителей «виртуального секса» выкладываю на ЯДе архив Proteus_garland — это работающий проект в симуляторе Proteus 8.6 на полста пикселей: yadi.sk/d/J8gLN6j43Njria
Можно поиграться с отладкой без паяльника и Ардуинки. Ес-но сам Proteus 8.6, Arduino IDE и в ней Adafruit_NeoPixel должны быть установлены на компьютере.
+
avatar
  • Dimon_
  • 30 декабря 2017, 12:01
0
Dimon_, Igorrrrr и у кого ещё скетч не работал — при возможности проверьте обновление, интересно же…
Спасибо. Теперь всё заработало.

Да, алгоритмически теперь всё стало гораздо изящнее. Была очень «чаща непролазная» :)
Был бы у меня ещё один зелёный плюс, поставил бы обзору ещё:)
+
avatar
  • Prays
  • 29 декабря 2017, 20:57
+1
Только на пятом десятке первый раз увидел белую елку. Вот я деревня.
+
avatar
0
Круть хочу такую же, спасибо за обзор.
+
avatar
  • fdonskoj
  • 29 декабря 2017, 22:03
0
Можно я задам наверное глупый вопрос. Будет ли ваш скетч работать с WS2811? Или нужно что-то в скетче править?
+
avatar
  • Lvr
  • 29 декабря 2017, 22:07
+1
Должен работать без изменений. Но сначала лучше загрузить заведомо работающий скетч, чтобы проверить соединения и узлы. Выше несколько человек говорили о неработоспособности моего.
+
avatar
  • NSS75
  • 29 декабря 2017, 22:08
+2
Будет без правок. Это одно и то же. В WS8212 управляющий чип интегрирован в корпус светодиода 5050 RGB.
+
avatar
  • Sosedus
  • 29 декабря 2017, 22:30
0
а будет работать с Ws2813? Я думаю завтра заняться сборкой гирлянды на лентах Ws2813.
+
avatar
  • Cucumber
  • 30 декабря 2017, 16:14
0
Да, будет. Проверено
+
avatar
  • fdonskoj
  • 29 декабря 2017, 22:12
0
Спасибо. Ждём когда Мудрые люди разберутся и всё заработает.
+
avatar
  • Nikolaj
  • 29 декабря 2017, 22:39
0
Да, действительно на 120 диодов памяти не хватает. 20 диодов не работает, но не критично. Эффекты потрясающие.Спасибо всем за помощь.
+
avatar
  • skuratov
  • 29 декабря 2017, 23:12
+6
За елку из ершиков для мытья бутылок — отдельный плюс!
+
avatar
  • falkon27
  • 30 декабря 2017, 02:33
0
у меня вопрос. все светодиоды должны сидеть последовательно? то есть нельзя так сделать например чтобы по стволу шла шина и ответвлялись ветки от нее?
+
avatar
  • nochkin
  • 30 декабря 2017, 07:35
+2
Можно, но тогда ветки будут повторять эффекты друг друга. Если это подходит, то вполне себе вариант.
+
avatar
  • Rzzz
  • 30 декабря 2017, 21:26
+1
Последовательно должна идти только линия данных. Питание можно разводить как душе угодно.

Линия данных может быть довольно тоненькой, она же не передаёт нагрузку. Какой-нибудь МГТФ 0.06 вполне подойдёт.
+
avatar
  • Igorrrrr
  • 31 декабря 2017, 12:37
+1
Да не, на шину данных тоже можно параллельно цеплять, она ж однонаправленная. но тогда эффекты на «ветках» будут одинаковые начиная с точки ответвления. можно делать красивые «деревья». можно на выход ардуины сразу 2 одинаковые ленты повесить, будут синхронно «моргать». единственное, желательно между выходом ардуины и лентой/лентами ставить по шине данных резистор ом на 100-200 на всякий случай. ну и если «ветвить» ленты — тоже лучше с резисторами.
+
avatar
0
МГТФ 0.07 видимо
+
avatar
  • BestMC
  • 30 декабря 2017, 05:59
0
Спасибо. Собрал и себе гирлянду. 8 метров, 240 диодов, на ESP 01.
+
avatar
0
под ESP-12 у меня не компилируется. Для остальных — нормально, что-то не так?
+
avatar
  • BestMC
  • 30 декабря 2017, 17:17
0
Нужно убрать проверку свободной памяти. Мне помогло.
+
avatar
+1
спасибо, работает!
+
avatar
  • igrblkv
  • 30 декабря 2017, 08:32
-1
Прочитал обзор, прочитал комменты…
Хочу белую ёлку со встроенными светодиодами и модулем управления ими. Управление по Blurtooth/WiFi приветствуется…
Ау, Сяоми!.. Где умная ёлка?..

PS: Я серьёзно. Надеюсь к следующему НГ китайцы накреативят…
+
avatar
  • Igorrrrr
  • 30 декабря 2017, 10:52
+1
Ждём Xiaomi miTree. =)
+
avatar
0
Вот на 10 светодиодов с Радиокота
+
avatar
0
на 100. описался
+
avatar
  • Dimon_
  • 30 декабря 2017, 13:21
0
Вы бы ударение в последнем слове большой буквой выделили :)
А то я с третьего раза только правильно прочитал :)
+
avatar
  • Dimon_
  • 30 декабря 2017, 12:55
0
Lvr, и ещё вопросик по скетчу. Нужно реверсирование. У некоторых начало может быть на макушке ёлки, у некоторых — с нижней ветки. Какую бы-нибудь глобальную переменную, чтобы можно было указать, кому что надо. Это всего лишь чуть усложнит Anim::run(), как я понимаю, да? Или ещё где-то надо править?
+
avatar
  • Lvr
  • 30 декабря 2017, 20:31
0
Все эффекты, имеющие «направление», случайным образом реверсируются. Единственный жёстко привязанный к направлению — это стартовая анимация.
А вообще да, чтобы поменять направление нужно реверсировать два цикла в Anim::run(). Больше нигде ничего менять не нужно.
Возьму доработку на заметку, спасибо!
+
avatar
  • Cucumber
  • 30 декабря 2017, 13:24
0
Спасибо за код! На 100 WS2811b + Arduino UNO заработало как родное. В НГ с новыми эффектами :)

Одна проблема всплыла — переименуйте main.ino во что-нибудь другое. У меня название конфликтовало с main.cpp в дебрях ардуино-оболочки на линуксе. Говорит нет setup и нет loop.
+
avatar
0
На ESP-12 у кого-то скомпилировалось?
+
avatar
  • BestMC
  • 30 декабря 2017, 17:18
0
Выше ответил.
+
avatar
+2
Эхх, эти бы обзоры в октябре )) Придется к будущему новому году собирать :)
За обзор +! Спасибо!
+
avatar
  • brysnkin
  • 30 декабря 2017, 20:19
0
на Arduino nano даже не проходит проверку, также покажите пожалуйста в скетче где выставлять номер выходного контакта и количество диодов

compilation terminated.

Несколько библиотек найдено для «Adafruit_NeoPixel.h»
Используется: C:\Xiaomi\arduino-1.8.5-windows\arduino-1.8.5\libraries\Adafruit_NeoPixel
Не используется: C:\Xiaomi\arduino-1.8.5-windows\arduino-1.8.5\libraries\Adafruit_NeoPixel-master
exit status 1
Ошибка компиляции для платы Arduino Nano.
+
avatar
  • Lvr
  • 30 декабря 2017, 20:27
+2
У вас похоже 2 раза библиотека Adafruit-NeoPixel установлена. Удалите папку C:\Xiaomi\arduino-1.8.5-windows\arduino-1.8.5\libraries\Adafruit_NeoPixel-master, скорее всего поможет.
+
avatar
  • brysnkin
  • 30 декабря 2017, 20:44
+1
Заработало.
1. файл *.ino должен совпадать с именем архива
2. в anim.h выставляем нужный рабочий пин и количество светодиодов.
3. Больше 100 светодиодов работать не будет(
+
avatar
+1
Подскажите, а можно ли где-то в настройках указать максимальную яркость?

P.S. Кстати, красиво в снежинке 6-лучевой по 10 светодиодов смотрится типа этой — mysku.ru/blog/aliexpress/47632.html
Только что скетч залил.

P.S. Не просто красиво, а намного шикарнее всех скетчей для снежинок, которые я пробовал.
Вот только яркость как-нибудь бы уменьшить, а то 1А БП сильно греется, да и ардуинка подвисает в самом начале из-за того, что все светодиоды одновременно светят белым цветом. 2А БП спасает положение, но их мало и они дорогие, а вот 1А БП — есть запас.

P.S. Спустя 10 минут все никак не налюбуюсь эффектами.
+
avatar
  • Lvr
  • 31 декабря 2017, 00:27
+3
Уже можно, параметр BRIGHTNESS в обновлённом скетче. Заодно переименовал main.ino в arws2812.ino, как просил Cucumber.
Рад, что эффекты не только к линейной гирлянде подходят. Хорошо бы видео увидеть ;)
+
avatar
0
Видео уже снял, на ютуб заливаю
+
avatar
+2
+
avatar
0
Прописал в BRIGHTNESS 130.
Во первых перестало слепить (но все-равно светит достаточно ярко). Во-вторых пиковое потребление упало до 1.2А (в среднем 0.7А при ярких малодинамичных анимациях с участием большого количества светодиодов).

Как было:
Слепило. А во вторых в пике потребляло 1.85А (в среднем больше 1А). К тому же ардуинка подвисала с 1А БП при очень ярких анимациях.

Замер производил белым доктором.
+
avatar
0
Блин, теперь придется остальные снежинки вскрывать, чтобы залить новый скетч.
Но это приятные хлопоты )))

P.S. 1А БП после получасовой работы нагрелся несильно.
+
avatar
0
Как Вы думаете, а на 5 лучей пойдет такой скетч?
+
avatar
0
А почему бы и нет, эффекты вроде более-менее универсальные
+
avatar
  • andyga
  • 01 января 2018, 13:01
0
На пятилучевую прекрасно подходит. смотрится лучше всех что заливал.
+
avatar
  • Fover
  • 10 декабря 2018, 20:19
0
А из чего у Вас сделана снежинка? Этот белый матерал
+
avatar
+1
Обычная полистирольная плита для потолков — leroymerlin.ru/product/plita-potolochnaya-inspire-c1000-16984307/
Замечательно режется выдвижным канцелярским ножом.
+
avatar
  • Fover
  • 11 декабря 2018, 17:09
0
Спасибо
+
avatar
  • Igorrrrr
  • 31 декабря 2017, 12:39
0
если ветвить гирлянду/ленту — тоже отличное дерево получается.!
+
avatar
  • nm11
  • 31 декабря 2017, 00:49
0
Ребята. придумайте что-что что бы, не меняя платформу, более 100шт работало. кусок гирлянды не подсвечен, при увеличении длины перестаёт работать. платформа на 328 процессоре.
Спасибо за решение.
+
avatar
0
что бы, не меняя платформу, более 100шт работало… платформа на 328 процессоре
Две ардуины, и располовинить ленту.
Там в RAM все упирается.
144шт работает на atmega32u4 (leonardo), по идее должно работать на esp8266.
Неплохо бы смотрелся перенос на stm32f103 ($1.8 платка)
+
avatar
  • BestMC
  • 31 декабря 2017, 04:20
0
240 работает на ESP 01
+
avatar
  • Igorrrrr
  • 31 декабря 2017, 12:43
0
эффекты идут в случайном порядке, если 2 ведруины поставить — получится каша( самый простой вариант — можно к неработающему «концу» протянуть шину данных от середины гирлянды, будет повторяться, но если гирлянда длинная это не очень заметно будет…
+
avatar
  • Serko
  • 03 января 2018, 14:27
0
Теоретически можно с одной ардуины запустить синхронизацию со второй ардуиной. Просто например для запуска второй ждать сигнала на определённом входе (если нет случайных режимов). А более хитро -собрать шину данных из трёх например проводов, Тогда возможно 8 комбинаций.
+
avatar
  • Serko
  • 03 января 2018, 14:30
0
Не знаю, как там устроено — а если разрядность цвета вдвое-вчетверо уменьшить?
+
avatar
0
Не знаю, как там устроено — а если разрядность цвета вдвое-вчетверо уменьшить?
Вот здесь можно почитать в общих чертах.
В двух словах — там фиксированные 8 бит градации яркости на каждый цвет. т.е. 8х3=24бит (3 байта) на каждый светодиод. Протокол использует 3 бита для передачи каждого. Итого 3х3=9 байт на каждый светодиод. Для формирования эффекта, часто приходится заполнять буфер, равный количеству светодиодов. Т.е. 9х100шт=900 байт только для буфера. (из 2048 общей), без памяти для исполнения программы, непосредственно.
Дальше, надеюсь, понятно.
Использовать больше можно либо используя внешнюю ram, либо формируя эффекты «на лету», но тогда упираемся в производительность 328-го.
Мне кажется, лучше перенести код на ARM (stm32f103), там и памяти и скорости достаточно, стоит как про-микро ($1,8), под ардуино тоже завели.
Либо esp8266 (не проверял, но думаю нормально должно быть), либо Leonardo и выше для AVR.
+
avatar
  • Serko
  • 19 января 2018, 17:29
0
Я имею в виду уменьшить разрядность под каждый цвет в буфере до например 5 бит — получим 32 градаций вместо 256 — а перед выдачей в линию умножать значение цвета на 8, потеряем тонкие изменения — но уменьшим занятость памяти почти вдвое.
+
avatar
0
разрядность под каждый цвет
Разрядность — управляет яркостью. Цвета 3 на каждом диоде. Мне больше нравится вариант обертывания каждого бита двумя другими (высокий в начале и низкий в конце). Тогда необходимая память уменьшится в 3 раза (вероятно), а маску накладывать непосредственно перед выдачей троицы в линию. Т.е. маску эффектов хранить во флеши, В процессе воспроизведения эффекта — оперировать данными непосредственно в оперативке, а перед выдачей в линию обертывать каждый бит маской.
Пока это в теории, если руки дойдут — проверю. Народ еще i2s использует как транспорт, может там что-то интересное.
+
avatar
  • Serko
  • 19 января 2018, 21:14
0
Обёртывания бита — это что?
Яндекс предлагает холодные и горячие обёртывания :)
+
avatar
0
это что?
Это способ обойти перерасход бит :))))
Каждый бит (из 24 на один светодиод) по стандарту должен передаваться в виде посылки из 3-х бит.
110 — это 1
100 — это 0
Дык вот значащими — являются только вторые, а первый и третий можно (по идее) добрасывать в момент отсылки. Они не меняются, то есть накладываем маску и выпуливаем.
Как-то так :)
+
avatar
  • Serko
  • 19 января 2018, 22:32
0
А, вот тут сказывается что я не смотрел конкретную реализацию.
Я предполагал что хранится массив только значений с наложенными эффектами, а не массив готовых посылок, и обёртывание производится библиотечной функцией в момент отсыла. А тут действительно богатый запас ресурса.
Я копал пример из mysku.ru/blog/aliexpress/47920.html, использующий Adafruit_NeoPixel. Там всё происходит внутри библиотечных функций, и в каком виде хранится — неясно, надо исходники смотреть. Но новый год снова далеко, а дела близко. :)
+
avatar
  • ABATAPA
  • 31 декабря 2017, 02:58
+1
Можно объединить диоды попарно. «Разрешение» уменьшится в 2 раза, но и требования к памяти тоже.
+
avatar
0
Пользуясь случаем, может кто подскажет. Какие диоды покупать для подсветки в телевизорах LG взамен сгоревших.
+
avatar
  • ALexus
  • 01 января 2018, 18:49
0
Они там разные. Есть на вид одинаковые, но с обратной полярностью.
+
avatar
0
Есть варианты на али или ебей?
+
avatar
  • ALexus
  • 02 января 2018, 04:20
0
… заказывал на Али! Надо разбирать и смотреть какие стоят!
+
avatar
  • knst
  • 05 января 2018, 12:28
0
в LG бывают светодиоды на 3 и 6 вольт, определяешь, потом отпаиваешь и по полярности и форме контактов смотришь например здесь :https://ru.aliexpress.com/store/group/LG-Innotek-LED/936602_252833124.html?spm=a2g0v.12010608.0.0.287a15d7ZvKCDs
+
avatar
  • Jaster
  • 04 января 2018, 04:01
+1
Хоть и с опозданием собрал, загрузил и всё побежало, правда сначала перепутал направление. С ардуинкой имел дело в первый раз, долго ждал БП 5В 5А из Китая, потому и припозднился. Зато детвора сегодня была в восторге. Спасибо за науку и помощь в освоении.
+
avatar
-1
Здравствуйте, Господа! С Рождеством Христовым Вас. Вопрос к автору Ёлки. Можно ли получить готовый скетч, тот, что на последнем видео -https://youtu.be/if178oluID4. Спасибо заранее.
+
avatar
  • Lvr
  • 06 января 2018, 20:57
0
Ссылка на скетч на github есть в обзоре: github.com/Vasil-Pahomov/ArWs2812
Идёте по ссылке, нажимаете зелёную кнопку «Clone or download», далее во всплывшем окошке «Download ZIP»…
+
avatar
0
Спасибо огромное. Скачал, скетч залился без проблем. Еще вопрос, если можно. Есть ли возможность прикрутить дисплей на базе драйвера TM1637, чтобы показывал действующий эффект, как дополнение? Круто было бы. Спасибо. Думаю места в Нано хватит. И еще кнопки нельзя установить 1 — для зацикливания любого эффекта, 2 — перехода на другой эффект и 3 — автомат? Стал бы полноценной конструкцией. Сам скетчи писать не могу, вот и спрашиваю.
+
avatar
  • Lvr
  • 10 января 2018, 09:31
0
Всё можно, вопрос только в приоритетах. Пока есть более важные дела :(
Исходники открыты, может кто побыстрее чем я сделает.
+
avatar
0
Здравствуйте. Все таки можно подождать пока кончатся приоритеты? Очень хочется повторить «с наворотами». Спасибо. Со Старым Новым годом, Господа!
+
avatar
0
Здравствуйте. И тишина кругом, и мертвые с косами стоят, ну помогите же человеки!
+
avatar
0
Наверное Новый год больше не наступит!
+
avatar
  • Lvr
  • 25 января 2018, 17:56
0
Наступит, через 11 месяцев и немного дней :)
Сейчас уже заниматься этим, пожалуй, неактуально, а вот к следующему Н.Г. есть несколько задумок. Тогда и кнопки можно будет добавить.
Но DIY тем и хорош, что процесс обычно более увлекательный, чем результат ;)
+
avatar
  • Lehi4
  • 19 января 2018, 19:19
0
Классссссс!!!
Сразу после просмотра, заказал себе на маленькую елочку ленту из 50 диодов, дети визжат от восторга, уже елку убирать не дают :-)
Для демонстрации я немного поменял скетч — сделал последовательный перебор режимов и палитр. Вот результат его работы:
А можно скетч с последовательным перебором?
Или что надо в текущем скетче поменять?
+
avatar
  • Lvr
  • 25 января 2018, 17:55
0
В репозитории в ветке demo есть последовательный перебор. Но там код без последних исправлений. В теории нужно взять метод loop из этого файла: github.com/Vasil-Pahomov/ArWs2812/blob/demo/main.ino
и заменить им такой же метод в основной ветке: github.com/Vasil-Pahomov/ArWs2812/blob/master/arws2812.ino
К сожалению сам проверить сейчас не могу
+
avatar
0
Большое спасибо за идею и превосходную реализацию. Сегодня получил гирлянды и БП и (о чудо!!!) за час реализовал проект. Вот честно, никогда у меня сразу не работало, а тут как по маслу пошло!.. На следующий НГ добавлю гирлянду на елку, и будут у меня все урашения на 2811 и 2812 (https://www.youtube.com/watch?v=9QUcCxezHDY ). Теперь будет «телевизор», бегущие огни, снежинка и ЕЛОЧКА!!! Еще раз спасибо!
+
avatar
0
а схему подключения гирлянды к плате ARDUINO где можно посмотреть?
+
avatar
  • Lvr
  • 12 сентября 2018, 08:26
0
Там совсем просто всё, питание на Arduino и ленту + единственный выход со 2-го пина ко входу данных ленты. Тут есть схемка: github.com/Vasil-Pahomov/ArWs2812. На схеме есть модуль Bluetooth, но это уже планируемое расширение, всё работает и без него.
+
avatar
0
а на Arduino NANO какие выходы задействовать? там немного разные? у вас идёт +5 v идет на RAW а на плате NANO такого нет (( подскажите пожалуйста схему для Arduino NANO
+
avatar
  • Lvr
  • 18 сентября 2018, 22:23
0
На Arduino Nano этот вход называется Vin. Но на самом деле, для любых 5-вольтовых Arduino можно подавать питание сразу на вход питания (Vcc, 5V)
+
avatar
0
Если тема ещё жива, можете подсказать, как реализовать такое, человеку, не разу не сталкивающиеся с Ардуино, к тому же может что поменялось за год, и сейчас можно взять более интересные решения. Если не сложно — можете подсказать, какую плату и БП сейчас заказать, что бы порадовать своих детей к НГ и есть ли сейчас смысл брать другую светодиодную ленту или указанная топик стартером до сих пор оптимальна под данную задачу? Буду признателен за помощь.
+
avatar
  • Lvr
  • 29 октября 2018, 17:09
0
Тут много завязано на скетч, т.е. на платформы, отличные от Arduino, придётся портировать. Я бы бы рекомендовал повторять как есть, т.е. на Arduino Pro Mini. Только гирлянду лучше заказать с другими светодиодами; в самом начале этого обзора есть ссылки на другие.
+
avatar
  • lv426
  • 29 октября 2018, 15:48
0
Пытаюсь скормить UNO данный чудесный (без преувеличения) скетч, и получаю «Недостаточно памяти, программа может работать нестабильно.» Ничего не работает. Уменьшаю количество светиков до 93, и красота взлетает.
Отцы, что не так? Леонарду (под эту платку компилится без ошибок) что ли брать?
+
avatar
  • Lvr
  • 29 октября 2018, 17:11
+1
Странно, в Uno, насколько я знаю, точно такая же ATMega328, как и в Pro Mini. Предупреждение о недостаточности памяти — всего лишь предупреждение, и с ним должно работать.
Можно детальный вывод компилятора при компиляции под Uno (лучше наверное в личку)?
+
avatar
0
Для прикола попробовал скомпилить. Странно, но действительно что на уно, что на нано пишет. Похоже глюк иде.
Пишет что занимает меньше 100 процентов но при этом выводит ошибку.

Изменены опции сборки, пересобираем все
Скетч использует 14712 байт (47%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1605 байт (78%) динамической памяти, оставляя 443 байт для локальных переменных. Максимум: 2048 байт.
Недостаточно памяти, программа может работать нестабильно.
+
avatar
+1
Кажется понял. В скетч уже встроено управление по блютус? Если выпилить, то компилится со 100 светиками без предупреждений.
+
avatar
  • lv426
  • 30 октября 2018, 08:42
0
Спасибо за шиакрную разработку и предложение помочь. KarlikNos уже угадал причину.
+
avatar
+2
Уже ответил в другой ветке автору. Если коротко, то тебе надо качать исходники «прошлой версии» по ссылке github.com/Vasil-Pahomov/ArWs2812/tree/before_bluetooth
+
avatar
  • Lvr
  • 29 октября 2018, 20:07
0
Да, совершенно верно!
+
avatar
  • lv426
  • 30 октября 2018, 08:35
0
Объёмное мерси!!! Синезуб до фени. С этой версией заработало как надо.
+
avatar
  • Lvr
  • 29 октября 2018, 17:14
+1
Начал делать вариант с управлением по bluetooth, но всё никак не закончу нормально… Если желающих много наберётся, будет стимул доделать :)
+
avatar
  • Jaster
  • 16 ноября 2018, 10:04
0
Разработка достойная всяких похвал! Хорошо, что тема не загибается, а имеет развитие в хорошем направлении. Ваш скетч пока лучшее, что я видел из бесплатного в сети, повторил уже несколько раз. Пробовал другие, но всегда возвращаюсь к вашему, т.к. эффекты собраны практически безупречно. Имеет смысл попробовать портировать на ESP и добавить WEB интерфейс, будет бомба!
+
avatar
  • Saloed
  • 09 ноября 2018, 11:32
0
Спасибо за гирлянду за отличный скетч. НГ на носу решил и я подготовиться в этом году получше купил ws2811 и Nano CH340/ATmega328P
Сразу скажу я могу только повторять за умными людьми.
У меня получилось запустить только 94 светодиода из 100.
И ещё вопрос. А почему не использовать esp8266 NodeMCU v2 Lua wifi( валятся такой в загашнике) вместо bluetooth?
+
avatar
  • Lvr
  • 11 ноября 2018, 14:49
0
А почему не запускается больше? Виснет, не компилируется?
К своему стыду, с esp ещё дела не имел, а pro mini валялось достаточно много уже давно. И всё никак не нахожу времени освоить esp нормально.
Но насколько я представляю, портировать будет просто, но, конечно, нужно будет добавить управление по WiFi. Возможно, спрос стимулирует меня ;)…
+
avatar
  • Saloed
  • 12 ноября 2018, 15:38
+1
Писало про мало памяти, но это я сам затупил скетч видно с bluetooth скачал. Взял и комментариев и все загрузилось нормально. Еще раз спаибо за скетч.

Попробовал на esp8266 запустить выдало ошибки я просто вырезал где были эти ошибки и вроде запустилось нормально
+
avatar
  • Lvr
  • 21 ноября 2018, 20:28
+3
Спасибо! Порт на esp готов!
Сейчас в master-ветке скетч, где bluetooth можно полностью отключить, закомментировав #define BLUETOOTH
+
avatar
  • Save
  • 10 ноября 2018, 11:36
+1
Добрый день, спасибо за скетч, все заработало с первого раза на Nano с лентой WS2811… подскажите в каком месте в скетче отвечает время выполнения одного режима, можно как то увеличить?
+
avatar
  • Lvr
  • 11 ноября 2018, 14:50
+1
Строка
#define INTERVAL 30000 //change interval, msec

По умолчанию 30 секунд (30000 миллисекунд). Можно менять на своё усмотрение

github.com/Vasil-Pahomov/ArWs2812/blob/before_bluetooth/arws2812.ino#L11
+
avatar
  • bisiro
  • 16 ноября 2018, 15:29
0
товарищ, спасибо за труды)
великолепная гирлянда выходит)
попробую прицепить регулировку яркости кнопками и вообще огонь будет)
+
avatar
  • Fover
  • 18 ноября 2018, 01:16
0
Подскажите, пожалуйста, как залить прошивку в NodeMcu V3? Вроде прошивается, ошибок нет, но лента не работает. Лента исправна, пины не спутал.
Мне нужна гирлянда на 150-200 светодиодов, поэтому ардуино отпало.
+
avatar
  • Saloed
  • 18 ноября 2018, 01:43
+2
Я заливал на 200 светодиодов только немного удалил кода ) чуть выше картинка. И у меня NodeMcu V2
Пин D4
+
avatar
  • Fover
  • 18 ноября 2018, 10:33
0
Удалил часть кода — ничего не изменилось, пины тоже менял — не работает. Заливал мигалку светодиода — она работает, значит есп рабочая
+
avatar
  • Saloed
  • 18 ноября 2018, 11:05
+1
Даже не знаю
Брал этот скетч github.com/Vasil-Pahomov/ArWs2812/tree/before_bluetooth
Удалял строчки
Менял количество светодиодов
Управляющий пин не менял и все заработало.
Сейчас попробовал залить на 100 светодиодов все залилось и работает.
+
avatar
  • Fover
  • 18 ноября 2018, 12:04
0
Этот скетч заработал! Спасибо
+
avatar
  • Lvr
  • 22 ноября 2018, 14:35
+1
Народ, помимо прикрутки управления по Bluetooth есть идея, как заставить скетч управлять большим количеством светодиодов (в теории даже 500 должен потянуть) на Arduino? Есть ли смысл это делать, или же лучше смотреть в сторону ESP? В этом случае думаю самым оптимальным будет контрибутить в какой-нибудь готовый проект, например github.com/Aircoookie/WLED. Т.е. туда добавлю свои эффекты.
+
avatar
  • Saloed
  • 22 ноября 2018, 17:43
+2
Я за esp (потому-то она у меня есть))). Было бы неплохо возможность управления длительностью и скоростью каждого эффекта по отдельности. И ещё добавить стартовую анимацию в список эффектов уж очень она мне нравится.
+
avatar
  • Fover
  • 23 ноября 2018, 01:47
+1
+
тоже за esp
+
avatar
  • Jaster
  • 24 ноября 2018, 20:57
+1
ESP, однозначно!
+
avatar
0
или же лучше смотреть в сторону ESP?
Поправьте меня, если я ошибаюсь, но ESP, вроде, к питанию более требовательный. Только 3.3 и не сантиметра…
И, хоть убейте, не понимаю, для чего тут нужен Bluetooth? Что за манера за столом телефон доставать и пальцами тыкать?
Все таки с точки зрения повторения, ардуинка предпочтительней. А если еще и дофига светодиодов будет…

Извините, наболело… Высказался.
+
avatar
  • Saloed
  • 24 ноября 2018, 22:07
+3
+
avatar
  • Lvr
  • 24 ноября 2018, 22:30
+3
На бордах с ESP типа NodeMCU стоят стабилизаторы, как впрочем на всех ардуинках. Питать их можно свободно от 5 вольт.
А насчёт ESP vs Arduino… Сам мечусь между повторяемостью на Arduino и гибкостью и настраиваемостью ESP. Сам склоняюсь к ESP, чтобы детям развлекаловку делать (им прикольно управлять гирляндой с телефона), ну и народ больше за ESP как-то. И то, и другое точно не сделаю, тут хотя бы что-то одно успеть.
Прошу понять и простить…
+
avatar
0
Прошу понять и простить…
Хозяин — барин :-)
+
avatar
+1
На есп памяти больше.
+
avatar
  • Frolv
  • 23 ноября 2018, 10:36
0
Совсем запутался — какой скетч заливать в нано (мини)?
+
avatar
  • Lvr
  • 23 ноября 2018, 12:04
+1
Тот же, что и в Pro Mini :)
github.com/Vasil-Pahomov/ArWs2812/tree/before_bluetooth точно рабочий
+
avatar
  • Frolv
  • 23 ноября 2018, 12:57
+1
ЗАРАБОТАЛО!!!
+
avatar
  • Lvr
  • 25 ноября 2018, 14:06
+5
Всем, кто на ESP заливает — в этой ветке буду выкладывать для ESP сборку: github.com/Vasil-Pahomov/ArWs2812/tree/esp
Уже пару фиксов есть, сейчас скетч вроде как на ESP работает нормально
+
avatar
0
Отлично!
А не подскажите «чайнику»(сам так и не понял)… у ESP01 с какого пина управление снимается? Или его самому можно/надо прописывать?
+
avatar
  • Lvr
  • 26 ноября 2018, 12:40
+1
GPIO2 должен работать, у ESP01 он выведен.
Вообще пин можно поменять в строке 6 файла anim.h (https://github.com/Vasil-Pahomov/ArWs2812/blob/esp/anim.h#L6)
#define PIN 2 // WS2812 pin number

Но у ESP01 сильно не разбежишься, только GPIO0 и GPIO2 выведены, как я понял.
+
avatar
0
Спасибо… попробую. А «PIN 2» это и будет «GPIO2»?
А про ESP01 — она как раз без дела валяется,… и много «ног» для Вашего проекта не требуется :)
+
avatar
  • Lvr
  • 26 ноября 2018, 13:47
+1
Да, PIN 2 это GPIO2 на ESP
+
avatar
0
Спасибо ещё раз
+
avatar
  • kollj
  • 27 ноября 2018, 10:59
0
подскажите пожалуйста. для ESP, есть какая-то внешняя возможность управлять лентой? так же в коком месте можно поменять логин и пароль вай-фай модуля?
+
avatar
0
Как я понял на данный момент там вообще без вайфая работает, тупо как микроконтроллер замена ардуине.
+
avatar
  • kollj
  • 27 ноября 2018, 12:05
0
ну не знаю у меня точка доступа поднята и даже зайти могу (через браузер) но пустой экран. возможно это хвосты от старой прошивки где была точка доступа.
+
avatar
  • Lvr
  • 27 ноября 2018, 16:48
0
Да, верно, сейчас в ветке ESP ничего c WiFi нет. Поднятая точка — это издержки прошлой прошивки.
+
avatar
  • Lvr
  • 02 декабря 2018, 20:42
+2
Залил первую версию с web-интерфейсом. Пока работает только с существующей точкой доступа, только по IP-адресу. Позволяет менять анимации и палитру. Адаптирована для мобилок.
Для запуска:
1. В arws2812.ino меняете WIFI_SSID и WIFI_PASS на данные вашей сети WiFi.
2. После запуска в мониторе порта выводится IP-адрес ESP.
3. Заходите IP-адрес_ESP/
В интерфейсе пока два выпадающих списка — анимация и палитра. Пока открыт интерфейс, эффекты не меняются (за исключением стартового).
Жду конструктивной критики, пожеланий, предложений :)
+
avatar
  • kollj
  • 02 декабря 2018, 21:40
0
веб морда появилась. два списка.
Если не трудно пояснения как это отрабатывает. К примеру выбрал режим. а как его запустить?
при открытой веб морде эфекты меняются в автомате по своему алгоритму.

моя хотелка и думаю другие тоже поддержат. что мы в веб морде была кнопка включить выключить гирлянду.
+
avatar
  • Lvr
  • 02 декабря 2018, 22:04
0
Работать должно так: при входе в морду текущий эффект должен «замораживаться», и при изменении в списках сразу соответственно меняться. Можно в браузере нажать F12, затем открыть морду, поменять эффект и потом скинуть скрин (лучше в личку)? Спасибо!
Про выключение понял, беру на заметку.
+
avatar
  • kollj
  • 02 декабря 2018, 22:51
0
скрин экрана с ф12


еще если возможно что бы при прошивке сразу айпишник вбить. как то привык что бы все что дома со своими статическими адресами жило (к примеру можно будет в не дома через интернет управлять)

еще скрин ф12 нажата после смены эфекта


+
avatar
  • Lvr
  • 03 декабря 2018, 09:10
+1
Да, накосячил я немного, залил исправление.
А статический IP лучше, как мне кажется, прописать на роутере в настройках DHCP.
+
avatar
  • Lvr
  • 08 декабря 2018, 22:43
+1
Новая версия для ESP. Добавлена возможность выключения гирлянды из web-морды, исправлены баги.
ВАЖНО: теперь гирлянду нужно подключать к GPIO2, поскольку GPIO2 теперь используется для вывода отладочной информации.
Жду обратной связи :)
+
avatar
0
нужно подключать к GPIO2, поскольку GPIO2 теперь используется для вывода отладочной информации
Ээээ… Кто на ком стоял? ©
И гирлянду и отладочную — все на 2?
+
avatar
  • Fover
  • 09 декабря 2018, 10:16
+1
Опечатался автор, а на гитхабе все правильно написал (!) default LED strip pin now is GPIO0, not GPIO2
+
avatar
  • Lvr
  • 09 декабря 2018, 10:25
0
Извиняюсь, конечно гирлянда на GPIO0… :(
+
avatar
  • Andrey31
  • 09 декабря 2018, 12:09
0
Тоже ошибка компиляции:
Дополнительная информация
C:\Users\Andrey\AppData\Local\Temp\arduino_build_361921\sketch\anim.cpp.o:(.text._ZN4Anim7setAnimEh+0x44): undefined reference to `Anim::animOff_SetUp()'

C:\Users\Andrey\AppData\Local\Temp\arduino_build_361921\sketch\anim.cpp.o:(.text._ZN4Anim7setAnimEh+0x48): undefined reference to `Anim::animOff_Run()'

collect2.exe: error: ld returned 1 exit status

Используем библиотеку Adafruit_NeoPixel версии 1.1.7 из папки: C:\Users\Andrey\Desktop\arduino-1.8.5\my sketch\libraries\Adafruit_NeoPixel
Используем библиотеку ESP8266WiFi версии 1.0 из папки: C:\Users\Andrey\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WiFi
Используем библиотеку ESP8266WebServer версии 1.0 из папки: C:\Users\Andrey\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer
Используем библиотеку ESP8266mDNS в папке: C:\Users\Andrey\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266mDNS (legacy)
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).

Ps^Предыдущий релиз компилился нормально
+
avatar
  • kollj
  • 09 декабря 2018, 10:44
0
не получается скомпилировать выдает ошибку
Дополнительная информация


а по поводу GPIO2, тут просто описка нужно понимать что по умолчанию вывод на ленту происан GPIO, на странице загрузки про это несколько раз написано.
+
avatar
  • Lvr
  • 09 декабря 2018, 12:49
0
Прошу простить, делаю урывками, спешу и косячу. Добавил отсутствующий файл, сейчас должно нормально компилироваться. Впредь буду стараться перепроверять всё.
+
avatar
  • kollj
  • 09 декабря 2018, 13:03
+1
логин и пароль свой затрите в скетче.
+
avatar
  • Andrey31
  • 09 декабря 2018, 18:17
+1
Да не переживайте так! Спасибо и за это! Сейчас всё работает!
+
avatar
  • Lvr
  • 11 декабря 2018, 20:26
+5
Исправил ошибку с эффектом «Полёт»
+
avatar
  • Lvr
  • 10 декабря 2018, 17:27
0
Кто заливал скетч на ESP, отпишитесь плиз, наблюдаются ли у вас периодические сбросы контроллера? Внешне выражается в том, что внезапно опять запускается стартовая анимация. У меня есть такая проблема, и я не могу понять, дело в моей ESP или же это программная ошибка. Спасибо!
+
avatar
  • kollj
  • 10 декабря 2018, 18:15
+1
у меня если и наблюдается только из за питания. тоесть питанию должно хватать и на ленту и на еспешку, если не хватает то и будет сбрасываться.
еще вариант плохие контакты.

как вариант запитать еспешку от одного БП, а ленту от другого и сразу будет понятно.
+
avatar
  • Saloed
  • 10 декабря 2018, 19:25
+1
Работает нормально вроде. Залил с полчаса гонял сбросов не наблюдал.

Я так и не понял зачем два списка?
+
avatar
  • Lvr
  • 10 декабря 2018, 20:45
+1
Первый список выбирает эффект, второй — палитру цветов для эффекта
+
avatar
  • Saloed
  • 10 декабря 2018, 21:05
0
А как во втором сделать случайный? Или если в первом выбираешь случайный то везде он?
+
avatar
  • Lvr
  • 10 декабря 2018, 22:50
0
Задумка была такая — когда гирлянда работает автономно (web-морда не открыта), эффекты и палитра меняются случайно каждые 30 секунд, как это было в «оригинальном» скетче для Arduino. При открытии web текущие эффект и палитра удерживаются, и есть возможность их поменять.
Других идей по управлению не приходит в голову, буду рад любым мыслям.
+
avatar
  • Saloed
  • 10 декабря 2018, 23:23
+1
Мне все нравится. Отлично сделано.
Мой багрепорт
Если включаешь полет
Выскакивает ошибка и при переключении нижней вкладки ошибка повторяется

И мои пожелания.
Возможность регулировать длительность эффектов.
И может сделать галочку как для выключения, чтоб оставался выбранный эффект и после закрытия вебморды.
+
avatar
  • Fover
  • 10 декабря 2018, 19:52
+1
Гоняю гирлянду уже давно, сбросов не было, питание есп и гирлянды от разных источников (землю объединил ессно). Однако заметил интересную вещь — пару раз было что горели только зеленый, белый и синий цвета. Из эффектов пропадали остальные цвета, но после ребута есп все приходило в норму.
+
avatar
  • Lvr
  • 10 декабря 2018, 20:58
0
Можно подробнее — закономерность в проявлении? Анимация сохранялась, но цвета были не все? Похоже на пропадание красного цвета, но почему такое может быть — ума не приложу.
+
avatar
  • Fover
  • 11 декабря 2018, 12:17
0
Да, анимация сохранялась. Появлялось сразу при включении, и было пару раз, уже вот с неделю все без глюков работает.
+
avatar
  • Andrey31
  • 11 декабря 2018, 09:26
0
Работает и не сбрасывается, но на «полёт-рождество» пишет ошибку соединения, хотя эффекты работают
+
avatar
  • ezocon
  • 12 декабря 2018, 13:39
+2
Спасибо за проект.
Не знаю насколько грамотное от меня решение, но если запускать без wifi точки, то она будет до скончания веков её ждать. Добавил такой вот код. Все работает.

while ((WiFi.status() != WL_CONNECTED) && !(millis() - lastMillis > 10000) ) {
    delay(500);
   Serial1.print(".");
  }
+
avatar
  • Fover
  • 12 декабря 2018, 20:31
0
Спасибо! Полезная вещь
+
avatar
  • Lvr
  • 13 декабря 2018, 10:39
+2
Да, штука нужная, спасибо! Я думал в перспективе сделать fallback в режим точки доступа при отсутствии соединения. Внёс в свой код.
+
avatar
0
Блин, уже 5-6 часов убил на прошивку arduino NANO
Скетч ArWs2812-master не прошивается — пишет ошибку
Дополнительная информация
Arduino: 1.8.7 (Windows 10), Плата:«Arduino Nano, ATmega328P (Old Bootloader)»

sketch\animGlow.cpp: In member function 'void Anim::glowForEachLed(int)':

animGlow.cpp:11:16: error: 'sint8_t' was not declared in this scope

int bra = (sint8_t) (braPhase + i * braFreq);

^

exit status 1
'sint8_t' was not declared in this scope

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»

Скетч ArWs2812-before_bluetooth прошивается без проблем, но при подключения платы к питанию и светодиодной ленты WS2811 IC RGB только раз тускло моргает красным цветом и все.
По подключению вроде тоже все верно — плюс — 5v, минус — GND, управление — D2.
Уже и не знаю куда копать. На сегодня, пожалуй, хватит — спать пора.
Буду признателен за любую помощь и подсказки.
Дополнительная информация

+
avatar
  • Lvr
  • 26 ноября 2018, 09:24
+1
В мастер-ветке я накосячил, извиняюсь, уже исправлено.
Насчёт же работы самой гирлянды — можно попробовать поиграть третьим параметром в конструкторе Adafruit_NeoPixel в строке 8 файла anim.cpp:
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(LEDS, PIN, NEO_GRB + NEO_KHZ800);

Например, попробовать понизить частоту (NEO_KHZ400 вместо NEO_KHZ800), попробовать другой порядок цветов (NEO_RGB вместо NEO_GRB).
Если не поможет, для верности можно попробовать загрузить примеры из Adafruit_NeoPixel. Если и они не пойдут, значит проблема аппаратная (плохой контакт, питание гирлянды или Arduino, или же их неисправность).
+
avatar
0
Спасибо. Качал вчера ночью. Я так понимаю, что если скачать сейчас архив — все должно залиться без проблем? К сожалению ссылку неудобно добавлять — сижу с телефона. Буду дома — попробую ещё.
+
avatar
  • Lvr
  • 26 ноября 2018, 10:45
0
Да, так и есть, сейчас должно всё компилироваться нормально. Но если не планируете использовать bluetooth, то разницы с веткой before_bluetooth никакой не будет.
+
avatar
0
Спасибо за оперативные ответы и помощь. Про Bluetooth увидел только в выходные, поэтому модуль пока ещё в пути. Пока попробую прошить с его поддержкой, а как придёт — допаяю все необходимое.
+
avatar
  • Lvr
  • 26 ноября 2018, 11:25
0
Хочу сразу предупредить, андроидное приложение для Bluetooth ОЧЕНЬ сырое :(
Но режим управления акселерометром эффектный.
+
avatar
0
Попробовал сменить частоту и порядок цветов — не помогло. Теперь встал вопрос — как взять примеры из библиотеки для загрузки?
Как проверить саму ленту? Что-то подозрения на нее. Когда откидываю + или — от ленты — загорается красный светодиод на ардуино. При подключении обратно — гаснет и больше не загорается.
+
avatar
  • Lvr
  • 26 ноября 2018, 12:57
0
Какой именно светодиод, питание или встроенная «мигалка»? Если светодиод питания то однозначно какая-то проблема с питанием. Он должен всегда гореть.
+
avatar
0
Спасибо за помощь. Разобрался наконец. Проблема оказалась в кривых перемычках. При достаточно тугом ходе контакт постоянно пропадал или напрочь отсутствовал, к тому же, провода этих перемычек нифига не лудятся. В итоге распотрошил 3-х жильную ВВГшку и подпоялся напрямую к плате ардуино. После этого все заработало с первого раза. Кстати, такая проблема только с перемычками мама-папа. Папа-папа с WAGOвскими клемниками и разъемами ленты работают пока без нареканий. Теперь жду, когда bluetooth модуль и переключатель придут.
Дополнительная информация
+
avatar
  • Fover
  • 26 ноября 2018, 11:45
0
Можно ссылочку на гирлянду с зелеными проводами?
+
avatar
+2
Конечно. Вот.
+
avatar
  • Fover
  • 26 ноября 2018, 14:03
0
Спасибо!
+
avatar
  • kollj
  • 26 ноября 2018, 13:08
0
два варианта:
— проблема с прошивкой
— не хватает питания.
+
avatar
0
Оказалась третья — плохой контакт.
+
avatar
0
Скажите, а в итоге нет мерцания «вырви глаз», как в китайских дешевых гирляндах? Я имею ввиду не переходы между эффектами, а само по себе свечение как на 50Hz
+
avatar
  • Saloed
  • 27 ноября 2018, 18:25
+1
За что мне понравился данный скетч, это именно, что плавные переходы между эффектами. Конечно можно придраться к переходам, но это если хотеть.
Вроде мерцания особого нет, если я правильно понял про 50Hz
+
avatar
0
Доброго времени суток! Пока комплектующие на подходе, хотелось бы узнать. Bluetooth HC-06 надо ли как то настраивать или ардуина сама все сконфигурирует?
+
avatar
  • Lvr
  • 06 декабря 2018, 10:25
+1
Не надо настраивать никак, просто подключить.
+
avatar
0
Спасибо! Осталось дождаться ардуину, надеюсь к НГ успеет.
+
avatar
  • alex_dir
  • 13 декабря 2018, 19:47
+1
Спасибо автору за проект.
Как раз к НГ, в том году не успел, так сделал в этом.
Удачи, творчества и успехов в НГ!!!

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.