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

WebLights, или умную гирлянду - умному дому!


Как и всякая уважающая себя сорока, я обожаю разные блестяшки.
И конечно же электрические гирлянды попадают в эту категорию.

Относительно недавно в продаже появились LED супер-гирлянды на основе чипов WS2811.


В этих гирляндах цвет и яркость каждого LED может устанавливаться индивидуально. Чип WS281x может быть имплантирован непосредственно в LED. Такие LED выглядят как обычные RGB LED с 4 выводами. Их можно найти на www.aliexpress.com по имени APA106.
Но приобретать их надо с большой осторожностью — не редки случаи, когда продавец присылает вместо APA106 обычные RGB, а их цена в 2-3 раза меньше! Поэтому я рекомендую приобретать внешние WS2811 к которым подключен обычный RGB LED или проверять покупку перед подтвержденим доставки. Такие гирлянды имеют различные формы и размеры.
Общее у всех их одно — они не будут работать без внешнего конторллера.

Существуют модификации подобных чипов (WS8208\WS2801 — если не ошибаюсь), которые работают без контроллера.Они меняют цвет случайным образом. Но нам такие LED не интересны, тк их нельзя программировать.

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


Были заказаны и постепенно приползли следующие части:

1) 2 x 50-LEDs WS2811 гирлянды в водозащитном исполнении.
Эти гирлянды могут включаться одна в другую для увеличения длины.
Сами по себе они светиться не будут, поэтому нужен контроллер:

2) ESP8266 в очень удобном исполнении: WeMos D1 mini
Мне очень нравится этот форм-фактор. Он компактный и с ним легко работать.

3) Необязательные части:
— IR приемник TL1838
— Плата расширения WeMos D1
— Плата скнопкой для WeMos D1.

4) Хорошей идеей будет приобрести мощный 5в блок питания. Особенно если будет подключаться несколько гирлянд.На ярких режимах эти гирлянды довольно прожорливы.
Вот такой подойдет с запасом: Power supply 5v 8A. Конечно, это китайские амперы, но и гирлянда китайская ;)
Я разрабатывал этот проект пользуясь блоком от телефона с током 1А.
Он работал нормально, пока не поднималась яркость — а потом начинал проседать и гирлянда начинала мерцать.Тем не менее все части проекта такое издевательство пережили нормально.

И вот наконец все части прибыли. Но что с ними делать?
Запрограммировать несколько эффектов и все?
Слишком просто. В чем отличие от контроллеров, имя которым — легион?
Как вы могли видеть из моего предыдущего проекта PasswordKeeper — я не ищу легких путей.
Поэтому гирлянда должна быть усложнена — надеюсь не до полной непригодности к использованию ;)
Хорошо бы нам как-нибудь управлять поведением огоньков.
Почти все сегодня имеют при себе какой-нибудь смартфон, который может выходить в интернет.
ESP8266 — это модуль с поддержкой WiFi. Отсюда следует идея, что гирляндой надо управлять через Web.
Но, к сожалению, не все еще компьютерные гики (Какая жалость!). Поэтому добавим возможность проигрывать BMP файлы, переключать эффекты кнопкой или любым IR пультом управления. Правда вам все равно нужен будет карманный гик, чтобы настроить гирлянду.

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



Основная идея — создать устройство, которое может воспроизводить различные эффекты. Эффекты задаются текстовым скриптом. Этот скрипт может меняться OnLine через WEB интерфейс и тут же включаться в работу. Конечно, этот же результат можно получить используя обычный язык программирования. Но вам нужен будет компилятор и загрузчик, чтобы сменить эффект. А если вы не хотите включать большой комп и тащить к нему контроллер? Проблема!
Поэтому контроллер был реализован как интерпретатор текстового скрипта.
Проект вдохновлялся моей внутренней сорокой, поэтому и язык скрипта получился птичьим — чтобы сорока была рада. Ну и в конце концов есть язык программирования Brainfuck — а я чем хуже?
Кто-то может сказать — «Используй LUA или что-то подобное», но я скажу — «Это слишком просто!»
Предоставляемые операторы скрипта позволяют создавать довольно сложные алгоритмы переключения. Кроме того, для облегчения создания эффектов, контроллер может проигрывать BMP файлы. Просто накидайте разноцветные линии в картинку в любом графическом редакторе, загрузите ее через WEB интерфейс, выберите режим проигрывания BMP и она будет проигрываться — линии из BMP файла будут загружаться последовательно в гирлянду с заданной задержкой. Нарисуйте диагональную линию — и получите пробегающий по гирлянде огонек. Нарисуете линию, меняющую цвет — огонек будет менять цвет. ESP8266 уже имеет встроенную файловую систему, размером чуть меньше 3 Мб. Так что эффектов можно запихать много.
Вот эта картинка дает эффект: красная полоска бежит слева-направо, синяя — справа-налево и в центр, зеленая — мечется туда-сюда. Пример видео проигрывания файла прилагаю.




Я не буду вдаваться в подробности установки и конфигураци среды Arduino IDE для ESP8266.
Существует множество сайтов, где это расписано во всех деталях. Требуемые библиотеки перечислены в документе WebLights_Ru.rtf и предоставлены в каталоге WebLights\libraries\.



Схема крайне проста.
Кнопка и IR приемник не обязательны, но могут пригодится.
Длинное нажатие (6+ sec) кнопки сбрасывает устройство в состояние по умолчанию и загружает демонстрационный скрипт. Нажатие и удержание кнопки при подключении питания производит форматирование файловой системы. Обычные нажатия переключают эффекты — если вы запрограммировали переключение в скрипт или положили несколько картинок.

Если подсоединен IR приемник, то можно принимать команды и назначать им разные события.
Просто нажмите кнопку на пульте, обновите страницу и в строке IR-CODE вы увидите 4 знака, соответствующих нажатой кнопке. Этот код можно поместить вместо xxxx в команде (LLxxxxDescr) и при нажатии на кнопку будет вызываться процедура LL.



Полный код проекта и описания птичьего языка скрипта выложен на github.
Поместите каталог WebLights в каталог проектов Arduino, переместите туда же все из WebLights\library\, откройте Weblights.ino.
Затем соберите проект и загрузите его в ESP8266.

По умолчанию устройство запускается в режиме AccessPoint и создает WiFi сеть с именем WebLights и паролем weblights. В устройство загружается простой скрипт — 2 точки бегают из конца в конец меняя цвет при смене направления движения. Все эти параметры можно поменять через WEB интерфейс.
В описании приведено несколько простых скриптов, которые вы можете загрузить в контроллер и посмотреть как они работают.



Устройство было протестировано на бедных беззащитных котиках и доказало свою безопасность. Светодиоды были попробованы на вкус, но до конца отгрызены не были, тк были своевременно отобраны. Ни одно животное при этих тестах не пострадало ;)

Было бы здорово, если еще какие-нибудь сороки разработали скрипты или картинки, производящие
интересные эффекты для этого устройства и поделились ими с остальными в этой нитке или на masterclub.

Сороки не стайные птицы, но почему бы им не поменяться блестяшками (или скриптами) здесь?

UPD1:
Камрад qawsed55 подсказал интересный сайт с паттернами

UPD2: После загрузки кода в ESP8266 переключите ее на питание от БП для светодиодов.
Мы с comrade Parsek целый день ошибки в коде искали — не работали светодиоды как положено.
А проблема оказалась в раздельном питании ESP и светодиодов.
После переключения питания ESP с USB на внешний БП все заработало.

Планирую купить +77 Добавить в избранное +53 +118
свернуть развернуть
Комментарии (191)
RSS
+
avatar
  • DenW
  • 05 марта 2017, 10:25
+11
Добра всем!

Это вторая версия обзора.
Предыдущую кривую версию я случайно опубликовал — вместо того, чтобы занести ее в черновики.
+
avatar
  • Kartus
  • 05 марта 2017, 10:38
-3
Че то у этих сорок не то с ушами)))
Я думал будут глаза вылезать, а оказалось уши растут))))
+
avatar
  • Ohus
  • 05 марта 2017, 10:41
+1
Мы тут ее прочитали.

Скажите, а библиотеки для Arduino, будут работать с ESP8266?
Хочу попробовать ESP8266, есть наработки для ардуино. Хочу их перенести на ESP8266.
+
avatar
+1
большинство бибилиотек будут успешно работать и с esp8266, но есть и исключения.
+
avatar
  • DenW
  • 05 марта 2017, 16:05
0
Да, нужно конкретно смотреть.
Назначение периферии выводам в ESP8266 отличается.
+
avatar
  • hostage
  • 05 марта 2017, 20:26
0
Частично, что то работает, что то нет, что то надо чуть переделать.
+
avatar
0
Тащусь от ваших обзоров. Вы воплотили мою одну давнюю задумку, которую все никак не доходили руки добить до ума. Жаль, что можно поставить только один плюсик.
+
avatar
  • woddy
  • 05 марта 2017, 10:50
0
может кто знает, версии 5v и 12v отличаются только резистором? или чем то еще? удивляет разница в цене
+
avatar
+2
На 12В версии сзади каждые полметра прилеплен DC-DC с 12В на 5В. Поэтому и цена такая.
+
avatar
  • nochkin
  • 05 марта 2017, 22:47
0
Не видел таких. У меня, например, версия на 12 вольт собрана на WS2801, а это немного другой чип в управлении — там data отдельно от clock. Самый просто способ определить — WS2811/12 идут с тремя проводами (vcc, data, gnd), а WS2801 уже с четырьмя (vcc, data, clock, gnd).
+
avatar
  • Zhenjko
  • 06 марта 2017, 14:57
0
Вроде у WS2811 4 провода, а у WS2812 уже три.
+
avatar
  • nochkin
  • 07 марта 2017, 01:09
0
У WS2811 комбинированный вход (data+clock) как и у WS2812, поэтому три провода.
WS2811 отличается тем, что это голый чип, а WS2812 — светодиод с чипом.
+
avatar
  • nochkin
  • 07 марта 2017, 20:44
0
Спасибо, тоже интересно. Но это плоская лента, а я говорил про гирлянду как в топике.
+
avatar
+3
Обзор хорош а коты тем более-) Ориенталы?
+
avatar
0
Не, ориенталы просто тощие, а эти вроде как-то иначе наз-ся.
+
avatar
  • DenW
  • 05 марта 2017, 15:50
0
Да, ориенталы
+
avatar
0
Да, перепутал с абиссинцами. То же самое, но без крыльев (ухов)!
+
avatar
+3
Все по делу, но где-же результат? Хотелось бы посмотреть, как работает.
+
avatar
  • DenW
  • 05 марта 2017, 15:51
+1
А что напишете — то и будет.
Самое простое — картинки рисовать и грузить.
+
avatar
-1
Интересная штука)

У меня вопрос напрямую обзора не касается. Кто то из жителей Украины заказывал из этого магазина
Магазин:
GREAT WALL Electronics Co., Ltd ru.aliexpress.com/store/731260?

добавляю в корзину и там пишет «этого товара больше нет в наличии»
+
avatar
  • woddy
  • 05 марта 2017, 11:47
+2
вероятно вы у него забанены
+
avatar
0
Так я в этом магазине ничего и купить то не могу))
Написал продавцу.
Посмотрим что ответит.
Для Украины у него доставка Новой поштой и бесплатная) точнее SF express.
+
avatar
  • Bazili0
  • 05 марта 2017, 12:01
0
Но магазин хороший, хоть и не самый дешевый.
+
avatar
0
У меня товар добавляется в корзину, все как обычно.
+
avatar
  • cofein
  • 05 марта 2017, 13:02
0
Наверно то глюки али.
Я помню захотел товар но в магазине его не было. Но продавец сказал «подожди 30 минут и я добавлю».
Когда товар появился с надписью " наличии 5000 штук" я его добавлял в корзину и он становился " нет в наличии". Продавец сказал что то глюки али и надо ждать пока они исчезнут.
В итоге на следующий день — я смог нормально купить.

А вчера наблюдал другой глюк. В отзывах " о магазине" есть отзыв на товар. Но если перейти к товару — отзыва нет, но есть другой…
+
avatar
  • BOLEG
  • 06 марта 2017, 10:11
0
3 марта сделал заказ, уже выслали…
+
avatar
  • vot
  • 06 марта 2017, 13:12
0
Или написали, что выслали:)
+
avatar
  • BOLEG
  • 06 марта 2017, 13:49
0
трек SF eParcel (Новая почта), пока не трекнулся, на днях отпишусь
+
avatar
  • vot
  • 06 марта 2017, 20:21
0
Когда получите- отпишитесь.
Нова Пошта… хм:)
+
avatar
  • BOLEG
  • 08 марта 2017, 16:04
0
Посылка начала трекаться, отпишусь еще после получения.
Собственно, новой почтой с али уже с десяток заказов получил, причём 12-значный код SF express (начинается с 9-ки и еще был с 6-ки) можно трекать на сайте НП в разделе международная доставка/доставка по всему миру. Со временем там появляется уже внутренний трек НП (Дополнительные номера:) вида 206000хххххххх, который уже хавается приложением НП
+
avatar
+4
Чую проект классный, но как все программеры вы не смогли наглядно, с примерами показать результат.
Например, вот смотрите скрипт, вот видео эффекта. Вот BMP картинка, вот мигает гирлянда.
+ за статью и в карму однозначно.
Я просто запилил порядка 20 понравившихся мне эффектов в ардуину со случаным перебором режимов.
+
avatar
  • DenW
  • 05 марта 2017, 15:54
+1
Если честно — с видео неохота связываться.
Я тот еще оператор.
Я надеюсь, что кто-нибудь повторит и создаст красивые эффекты в скрипте или картинках :)
И поделится ими.
+
avatar
  • Bazili0
  • 05 марта 2017, 12:00
0
Это wemos d1 mini, а не просто d1. У d1 форм-фактор ардуины уно.
+
avatar
+2
И рассчитана на 3.3В. О чем ничего не сказано в посте. Вот если бы кто мог запостить схемку целиком, рассчитанную на 100 диодов ws2812b, было бы здорово…
+
avatar
  • DenW
  • 05 марта 2017, 15:56
0
Разницы в WS2811 и WS2812В насколько я понял — нет. Отличаются форм-фактором только, а протокол передачи тот же — по 3 байта на диод.

Библиотека NeoPixel поддерживает разные форматы передачи.
Мой проект поддерживает до 256 светодиодов.
Те 5x50 можете последовательно подключить. Так что требуемые вам 100 перекрывается с запасом.

Могу приделать к WEB отдельный переключатель типа кристаллов — если кто поможет в отладке.
У меня только WS2811 есть.
+
avatar
  • DenW
  • 06 марта 2017, 10:20
0
ESP8266 можно питать от 5в.
Во всяком случае у меня она пока не сгорела.
+
avatar
0
Вемос тоже можно. По большому счету, напряжение выше 3.3 вольт плохо переносит только единственный аналоговый вход А0, а цифровые прекрасно пашут и с 5 вольтами. Где-то об этом сами разработчики esp8266 писали.
+
avatar
  • Naevus
  • 05 марта 2017, 12:08
0
Добавьте в схему кардридер для SD карты, разработайте формат паттернов для эффектов (если таковых еще нет), в скетче переделайте так, чтобы алгоритм работы читался из паттерна. И тогда для обмена «алгоритмами» нужно будет меняться только паттернами, а не перепрошивать контроллер
+
avatar
  • DenW
  • 05 марта 2017, 15:59
+2
Так его и не надо перепрошивать!
Я же в статье писал.
В ESP8266 есть встроенная файловая система 3гб, в нее можно через WEB грузить произвольные картинки в BMP.
Что в картинке нарисуете — то и будет.
Те все уже украдено до нас ;)
Нужно только наделать BMP картинок с красивыми эффектами и поделиться ими.
Ну или если еще мегамозг найдется — то скриптами :)
+
avatar
0
Да, вы правы, встроенная ФС там есть, причем размер у нее бывает не только 3 Мб, но и побольше (например, у вот этого wemos d1 mini pro общий объем памяти не 4 мегабайта, а 16).
Но у встроенной файловой системы, насколько я понял, есть особенности, которые не позволят ее использовать так же легко и свободно, как полноценную флэшку в кардридере. Много где встречал упоминания о том, что встроенная файловая система ЕСПшки больше смахивает на CDFS — дополнить существующий файл нельзя, изменить вроде бы можно, но только если новый размер не превышает длину старого файла. Кроме того, максимальная длина полного имени файла ограничена всего 32 байтами.
Кстати, почему вы сделали шаблоны страничек в виде текстовых констант, а не поместили их во встроенной ФС?
+
avatar
  • DenW
  • 05 марта 2017, 22:29
0
Для простоты запуска проекта.
Папку скопировал — запустил сборку и все.
А так надо будет еще объяснять как данные в файловую систему поместить.
Ну и попробовать хотелось — как это в работе будет (размещение во flash вместе с кодом).

Изменений файлов в этом проекте нет.
Через WEB загрузили — и проигрываем. Грузятся файлы нормально. 32 знаков вполне достаточно для данного приложения. Мы же не будем там полноценную OC разворачивать. А десяток-другой файлов и так видны будут.
+
avatar
0
Изменений файлов в этом проекте нет.
Через WEB загрузили — и проигрываем.
Ну так-то да… А если эффект малость изменить захочется — клонировать оригинал и дорабатывать его? Аппетит приходит во время еды)))
+
avatar
  • DenW
  • 05 марта 2017, 23:06
0
Да, именно так.
BMP редактор, конечно, можно запихать в ESP8266 — но надо ли?
Гораздо удобнее навертеть чего-нибудь на большом компе — и тут же передать в контроллер посмотреть на эффект. Загрузка проходит мухой.
Потом сохранить эффекты в файлах — и переключать их по желанию.
Именно это мой проект и делает.
+
avatar
0
всем доброго времени суток, подскажите кто разбирается, на работе отрыл два блока питания LEA50F-12 для чего они могут сгодится? хотелось бы использовать с диодной лентой, но не хватает знаний
+
avatar
+3
все так и поняли, что за блок питания такой LEA50F-12
+
avatar
-3
если бы сам разбирался то не спросил бы ))) на нем написано Cosel LEA50F-12 12V 4.3A 50-50Hz AC100-240V 0.7A
+
avatar
0
я к тому, что никто тут понятия не имеет, что за блок питание такой Cosel LEA50F-12
если бы ты просто сказал, что он дает 12в и 4.3а, то тебе бы сразу сказали, что он пойдет для ленты
+
avatar
  • BobaQPE
  • 05 марта 2017, 13:46
0
Для ленты подойдет. Они тоже на 12v
+
avatar
0
Не все ленты 12-вольтовые, так что не стоит человека сразу так обнадеживать))) Пусть бы кроме параметров блока питания еще и модель ленты озвучил, для начала.
+
avatar
  • civil
  • 05 марта 2017, 13:51
+3
Почитал описание скриптового языка. Вот, что могу сказать: жестокий вы человек.
+
avatar
  • DenW
  • 05 марта 2017, 16:01
+1
Ну так вдохновляла сорока — вот и язык птичий :)
Может еще кто нибудь со сдвигом в мозгах найдется — кроме меня ;)

Можно BMP проигрывать — там такого выноса мозга нет.
+
avatar
0
А лентой на WS2812B получится управлять?
+
avatar
0
Пуркуа бы и не па?
+
avatar
  • DenW
  • 05 марта 2017, 16:03
+1
Для WS2811 передается по 3 байта для каждoго диода.
Для WS2812B — nтот же формат передачи — те работать должны.
+
avatar
  • popov_
  • 05 марта 2017, 15:09
0
котики ахрененны
+
avatar
  • SIBIR
  • 05 марта 2017, 15:12
+2
Плюс конечно!!! А за котеек отдельное Спасибо !
+
avatar
0
Главное с такими котейками — чтобы они не улетели на зиму в тёплые края!
А ленты — что ленты, я уже 3 штуки адресуемых накупил, одну давно, с дискретными чипами и на 5050, другую такую же, как и обозреваемая, для ёлки (и тоже пришла после НГ, ЛОЛ), а третья полноценная 2812, с чипами в диодах, буду делать семисегментные часы.
+
avatar
+2
Видео очень не хватает. Это как описывать, какой вкусный получился торт :)
+
avatar
  • DenW
  • 05 марта 2017, 18:01
+2
Приложил видео проигрывания Sample3.BMP
+
avatar
0
www.twinkly.com/en/ на это посмотрите в качестве идеи
+
avatar
  • DenW
  • 05 марта 2017, 18:38
0
Я сделал кусочек этого проекта — воспроизведение картинок.
Если добавить автоматическое позицирование конкретного LED в пространстве — оно и получится.
В принципе это возможно сделать в программе для телефона, но заниматься телефоном пока лень.

Я и так с PasswordKeeper дорогу Mooltipass перебежал :)
Они 80$ хотят а мое устройство 8 стоит.
Правда у них функционал пошире.
+
avatar
0
на самом деле надо делать сетку из светодиодов, что-то я не нашел на али такого
+
avatar
  • DenW
  • 05 марта 2017, 21:25
0
Зачем сетку, почему сетку?

Они хитрую вещь сделали:
— на елку как попало вешается лента из диодов APA106 или подобных (я их упоминал в обзоре)
— далее выполняется процедура синхронизации
включаем по одному диоду и через камеру фиксируем его положение
— потом отрисовываем треугольник на экране и проецируем на него эффекты + редактор в приложении.

Как делать понятно, но лень
+
avatar
0
отличная тема, без этого только сетка
+
avatar
0
youtu.be/vzTazXvXoIY
Вот еще как источник вдохновения. Может интересно будет?
+
avatar
  • DenW
  • 06 марта 2017, 10:34
+2
Понятно все.
G-Sensor прикрутили.
И на его данные эффекты повесили.
Там все не слишком сложно.

Это очень нишевое решение.
У меня знакомых с бордами нет — не для кого и делать.

Я балансирующего робота делал — но до конца пока не довел.
Механику и железо с G-сенсором спаял-собрал.
Надо ПО написать — но все вдохновения нет.

У меня еще охотник на котов лежит в таком же состоянии — механика и железо собраны. Надо ПО писать. Ща как мелочь начнет лезть куда не надо — может разозлюсь и допишу. Идея — отслеживание кота в запрещенной зоне и расстрел водой. Здорово выглядеть должно — как он осматривается и брызгается.
За этот проект меня здесь точно забанят и распнут :)
+
avatar
0
Идея — отслеживание кота в запрещенной зоне и расстрел водой.
Достаточно. Вы великолепны!
+
avatar
0
А касательно проекта — с g-sensor'ом это само собой. На идею со сноубордом, правда, подзабил, проектирую теперь для лонгборда (но суть та же). Пока что основная проблема с питанием и защитой блока с железом от внешних воздействий (вода, постоянные вибрации и удары).

Делаю на WS2812, gy-521, взял еще попутно такой корпус: ebay.com/itm/371760734385 Думаю напихать вовнутрь каких-нибудь губок, залить это дело термоклеем и как тестовый вариант покатит. Но опять же как это закрепить на доске? На саморезы не хочется, а скотч 3M ненадежно. Как быть?
+
avatar
  • DenW
  • 06 марта 2017, 12:36
0
Корпус хороший и герметичный — если не забыть резинку уплотнения проложить.
Можно еще попробовать залить прозрачным силиконом.
К доске крепить можно временно — использовать ленту для гипсокартона
А окончательно — без винтов не обойтись.
Либо плоский корпус под низ доски и подсунуть крепление корпуса под крепление колесиков. Так более эстетично будет.
Если питание взять от плоской LiPo батареи — все можно сделать очень компактно и запихать под доску. Правда на доске по рейлингам кататься стремно будет :)
+
avatar
0
Жирный плюс! Чтение bmp'шек и сорочий язык это прям зачёт!
Вообще очень интересный у вас проект получился, есть в чем поразбираться.
+
avatar
  • DenW
  • 05 марта 2017, 21:30
+1
Мне очень интересно — найдется еще кто-нибудь достаточно geek-нутый чтобы скрипт написать?
+
avatar
+1
ESP8266 уже имеет встроенную файловую систему, размером чуть меньше 3 Гб… Наверное имелось ввиду 3 мегабайта?
+
avatar
  • DenW
  • 05 марта 2017, 21:21
0
Да, это я размечтался и ошибся…
3 Мб
+
avatar
  • malikin
  • 05 марта 2017, 19:38
0
ужастые демоны, но прикольные такие. А за обзор +
+
avatar
  • since88
  • 05 марта 2017, 20:18
0
Не хрена не понимаю в этих ардуинках, скетчах, скриптах, но почитать интересно )
+
avatar
  • DenW
  • 05 марта 2017, 21:29
+2
Так можно и не понимать.
Спаять десяток проводов — а дальше через WEB грузить BMP картинки и проигрывать их.
В paint нарисовали, браузером на страничку зашли — загрузили.
Оно и мыргает — как нарисовали.
+
avatar
  • Olegkad
  • 05 марта 2017, 21:26
0
А полный проект будет со схемами и программами. Тоже Не хрена не понимаю в этих ардуинках, скетчах, скриптах,, но сделать на ёлочку красиво было бы.
www.twinkly.com/en/ --эфекты понравились
+
avatar
  • DenW
  • 05 марта 2017, 21:36
0
В принципе даже с моим проектом такие эффекты получить можно.
Правда придется с BMP картинкой помучится.

Twinky сделали автоматическое преобразование расположения диодов в треугольник в приложении.
+
avatar
  • BestMC
  • 05 марта 2017, 23:25
0
Как обратно переключить wemos в режим AP? Включил режим Client и теперь ничего сделать не могу… К сети не подключается, повторная заливка скетча не помогает…
+
avatar
  • DenW
  • 05 марта 2017, 23:35
+2
Возьмите проект еще раз — в клиенте ошибка была.

От отладки осталась строчка в web.cpp mWF_Mode=1;
Она и не дает подключиться в AP.
Ее прибить надо.
+
avatar
  • akober
  • 06 марта 2017, 15:20
0
Замкни rx и tx между собой и перезагрузи
+
avatar
  • vot
  • 06 марта 2017, 13:14
0
Существуют модификации чипа WS281x (WS2814 — если не ошибаюсь), которые работают без контроллера.Они меняют цвет случайным образом.
А я бы взял. Только не нашел
+
avatar
  • DenW
  • 06 марта 2017, 13:25
+1
По WS2801IC надо искать
У этого продавца всякие гирлянды — и те, что требуют внешнего контроллери, и те что сами мигают. Не перепутайте!
+
avatar
  • vot
  • 06 марта 2017, 19:08
0
Спасибо, поищу.
+
avatar
0
Занимаетесь разведением ориентальных кошек?
+
avatar
  • DenW
  • 08 марта 2017, 19:57
0
Разводим помаленьку…
+
avatar
0
Камрад, мое почтение! Еще не скомпилил, но по описанию это то, что я искал )
Тут тебе и автономность, и возможность графического создания эхвектов (бмп), и даже скриптовый язык свой есть )
Если получится завести у себя сей ништяк, то отпишусь об ощущениях и чего хватает\нехватает.
На данный момент смущает максималка в 256 пикселей. Мож имеет смысл сделать версию без «скриптов», но с большим кол-вом пикселей? Или без поддержки bmp, но только тогда скрипты непонятно как пользовать, ибо описание вообще не в дугу (без обид, но правда непонятно вовсе.) Хотя бы расписать примеры пошагово, мол тут мы делаем то, а вот тут — то. Посимвольно, книгу писать я не прошу )
+
avatar
  • DenW
  • 13 марта 2017, 22:35
0
Hi!
Да получится, там ничего сложного нет.
Ограничение 256 взято чтобы в 1 байт влезал адрес LED — просто с потолка.
Реально памяти в контроллере достаточно. Можно и больше LED подключить. Цена — снижение скорости обновления.
Где проходит предел — я особо не исследовал. Но 1024 потянет без тормозов — я так думаю.

Если у кого будет _реальная_ нужда в бОльшем количестве LED — пишите — сделаю.

Скрипты — это для Гикнутых ;)
Есть работающие примеры. Их можно модифицировать — чтобы не совсем с 0 писать.
По сути — это язык программирования для сорок ;). Сродни Brainfuck.

Нормальным людям проще BMP рисовать и проигрывать.
+
avatar
0
Закогтил я код со своей ESP8266-12E NODEMCU и лентой. Предыдущие попытки оказались неудачными. Пиксели дергались как сумасшедшие по сути рандомно. Автор предлагал поставить кондеры и прочие манипуляции. Но причина оказалась банальнее — я просто поменял USB шнурок, которым когтил модуль к компьютеру.
Всё заработало славно.
Что заметил:
1. Не пофиксен порядок RGB. В этих лентах он идет GRB, Это довольно известная особенность и более менее крупные проекты/библиотеки это учитывают. Зашил BMP, но цвета оказались на ленте не те. Поменял при помощи IrfanView порядок на GRB. Цвета на ленте стали похожими на цвета в файле. Считай что доказано )
2. ИМХО было бы неплохо сделать интерполяцию между строками. Это в некоторых случаях позволит сэкономить место. Если мы захотим воссоздать на ленте плавно бегущую радугу например, то для плавности BMP должна будет быть большого размера (много строк). А за счет встроенной интерполяции — плавность перехода между каждой итерацией (строкой в BMP) будет обеспечивать сам контроллер. Можно сделать несколько уровней пересчета, тем самым добиваясь нужной плавности.
3. Для тех, у кого нет фотошопа или навыков работы в оном — рекомендую замечательный ресурс patterncooler.com
Находите нужный паттерн, бегунком PatternSize (по центру снизу) регулируете нужный размер (по количеству пикселей в вашей ленте) и загружаете кнопкой справа внизу.
Файл загрузится в формате PNG, поэтому его нужно будет пересохранить в BMP. Можно воспользоваться для этого встроенный в Windows редактор PAINT. Откроете сохраненный файл в PAINT и сохраните в 256-ти цветный BMP. Ну и далее при помощи вэб-морды прошитого контроллера подгрузите файл и поставьте его на воспроизведение.
Сайт позволяет менять цветовые схемы для каждого из паттерна. По сути паттерны отображены столбиками. В каждом столбце — просто три варианта данной текстуры. Редактируются кнопочкой внизу каждого столбца. Там уже сами разберетесь что к чему ;)
Все текстуры на сайте бесшовные, поэтому можно не переживать о том, что не регулируется количество строк (высота). Если играть эту текстуру по кругу — перехода не заметите.

Вроде всё сказал, что собирался. Если еще чего замечу — то отпишусь.
+
avatar
0
Стенсняюсь спросить, но все же попробую: а реально ли модуль SD прикрутить?
Я попробовал BMP на 256 пикселей, и размер файла получился в районе 200кб. Для 3-х Мб выходит, что у нас может быть 10-15 BMP размером 256x256 пикселей. Как бы маловато )
Вернее, не то чтобы мало, но и не много )
Ведь для «плавности» переходов у нас должно быть довольно много «строк».
В качестве мозгового штурма могу обратить внимание автора на неплохую библиотеку WS2812FX
Понимаю, что лезу в чужой монастырь со своим уставом, но имхо проще прикрутить эту библиотеку, чем объяснять людям как пользоваться встроенным в проект языком ))
Таким образом функционал расширится весьма. Ведь простому смертному из этого проекта доступно управление только с помощью BMP.
Может быть есть энтузиасты, которые смогут прикрутить библиотеку?
Сделать еще одну вкладку, и туда внедрить нужные куски кода из этого иливот этого проектов.
И получим функциональный гаджет, применимый как для обычного неподготовленного юзера, так и для «гикнутого программера».
Обоймем все слои, так сказать! )
p.s. но лимит в 256 пикселей в этом случае желательно бы снять.
+
avatar
  • DenW
  • 20 марта 2017, 13:43
0
Прикрутить не сложно, но лень.
Если будет несколько запросов от сообщества — доработаю.
К тому же модуль SD карты покупать надо — у меня его нет.
+
avatar
0
понил )
А модуль покупать ненадо. Можно заколхозить из переходничка под микро карту.
nathan.chantrell.net/20111128/diy-micro-sd-shield-for-arduino/
пишу, вдруг кому на пользу будет )
+
avatar
0
Собрал в Arduino прошивку, прошить получилось ESP8266Flasher
После появилась сеть ESP_******
Подключился, появилась веб морда, но поменять на клиента и указать wifi ssid и pass не получается
что пошло не так?
+
avatar
  • DenW
  • 20 марта 2017, 20:13
0
Hi!
Что-то странное.
А морда как в статье? Желтенькая?
Я бы сказал, что это не мой проект загрузился.
На всякий случай возьмите последнюю версию с github — там несколько ошибок поправлено.
И загружайте прямо из среды IDE
Кстати, плату я устанавливал NodeMCU 1.0 (ESP-12E)
+
avatar
0
Прошился с Arduino, ssid и пароль поменялись. Но немогу перевести в режим клиента и сохранить настройки.
+
avatar
  • DenW
  • 20 марта 2017, 21:00
0
На всякий случай возьмите последнюю версию с github — там несколько ошибок поправлено.

Остальные параметры сохраняются?
Если да — у вас старые исхоники

Проверьте:
От отладки осталась строчка в web.cpp mWF_Mode=1;
Она и не дает подключиться в AP.
Ее прибить надо.
+
avatar
0
Я только что скачал с github архив, mWF_Mode=1 — такой строки в файле web.cpp нет.
Сохранить ничего в веб морде не могу.
может руки не оттуда растут!!))??
+
avatar
  • DenW
  • 20 марта 2017, 21:24
0
Руки откуда надо :)
Что-то с записью в EEPROM.
Попробуйте после включения нажать на 6 сек кнопку — это должно записать значения по умолчанию в EEPROM

Можно еще грубее сделать:

поставьте в void CGlobalData::Start(void) в самый конец
FlashWr();
прогоните 1 раз до активации WEB
потом FlashWr(); уберите
+
avatar
0
Пробовал зажать 6 сек кнопку — не помогло,
Пробовал FlashWr(); — тоже 0
Потом взять плату NodeMCU 1 — прошился, но настройки поменять не могу
help sos,AAAAAAA

В какой версии Arduino лучше собирать?
Может дело в библиотеках которые инсталируются со средой IDE?
+
avatar
  • DenW
  • 20 марта 2017, 22:00
0
Я собираю в 1.6.9
ESP8266 одна из последних.

У вас почему-то не работает запись в EEPROM

В конец Start() допишите:

pinMode( PIN_LED, OUTPUT ); // Set OnBoad LED as an output
WebInit();

Serial.print( mWF_Id );
for( int k=0; k<8; k++ ) mWF_Id[k] ++;
FlashWr();
FlashRd();
Serial.print( "==" );
Serial.print( mWF_Id );

}

В COM консоли при старте должна появится строка с разными значениями вокруг знаков ==
Если там с обеих сторон написано WebLight — Ж…
Не работает запись\чтение в EEPROM

Почему — хз.
Может битый ESP, но скорее всего проблема где-то в софте\библиотеках
Самое простое — снести все и поставить заново.
ESP ставить через WEB из менеджера библиотек.
+
avatar
0
Пересобрал на другой машине с другим Arduino, 1.6.8 — есть под рукой NodeMCU 0.1 и Wemos D1 mini

Диагноз один и тот же. Буду ковырять…
надо какого-то волгшебного пенделя дать)) и все заведется.
так, где мой бубен...?

Вот что получаю в консоли после старта

ґEь|Vс`fSKэ$јрGяяlз­
ЉшD!ќ¤фЗ
+
avatar
  • DenW
  • 20 марта 2017, 22:07
0
Можно заменить функции записи в EEPROM на запись \ чтение в файл. При записи файл убейте и создайте заново.
+
avatar
0
Прошился на работе.
В мониторе порта циклическая перезагрузка
WebLights v1.01. SPIFFS:Ok
LEDs:50, SSID:WebLights, Pwd:weblights,
Exception (3):
epc1=0x401002f0 epc2=0x00000000 epc3=0x00000000 excvaddr=0x4000630a depc=0x00000000

ctx: cont
sp: 3fff0e40 end: 3fff12e0 offset: 01a0

>>>stack>>>
3fff0fe0: feefeffe feefeffe feefeffe feefeffe
3fff0ff0: 00000000 00000000 0000001f 3fff10f0
3fff1000: 00000484 00000484 000003fe 401004f4
3fff1010: 00000000 00001000 000003fe 40107238
3fff1020: 40004b31 3fff1050 0000001c 402282d5
3fff1030: 40105e7a 402283bd 3fff4414 000003ff
3fff1040: 000003fd 3fff10f0 3fff4414 000003fd
3fff1050: ffffff01 55aa55aa 0000001b 0000001c
3fff1060: 0000001c 000000fb 000000f9 000003ff
3fff1070: 402287ac 3fff4414 3fff4414 000000ff
3fff1080: 00000001 3fff1110 40228933 00000008
3fff1090: 3fff4414 000000ff 3fff10f0 00000000
3fff10a0: 3fff44d4 3fff1151 00000001 402289c0
3fff10b0: 3fff10f0 3fff4414 3ffef454 3fff01fc
3fff10c0: 3fff1110 3fffa74c 3fff4414 3ffef454
3fff10d0: 402289fc 3ffeef54 00000000 3fff1140
3fff10e0: 4020a0a4 40226986 3ffeef54 3ffef520
3fff10f0: 3ffef400 00000870 3fff1170 00000000
3fff1100: 401072d5 00000000 00000000 3fff3bf8
3fff1110: 3fff2900 00000028 3fff1198 40210ac4
3fff1120: 00000008 00000018 00000018 3fff01fc
3fff1130: 3ffef454 3ffef520 3fff01fc 4020e771
3fff1140: 3fff1170 3ffe8568 00000032 3ffeef58
3fff1150: 3ffeef68 ff000000 3ffeef54 4020e784
3fff1160: 0000000c 3ffeff04 3ffeef54 402087d0
3fff1170: 44454c0a 30353a73 5353202c 573a4449
3fff1180: 694c6265 73746867 7750202c 65773a64
3fff1190: 67696c62 2c737468 00000020 00000030
3fff11a0: 3ffef550 3fff01fc 00000870 00000030
3fff11b0: 00000001 000000fc 3fff29c8 3fff29c8
3fff11c0: 3ffe84a0 00000008 3fff29c8 40202310
3fff11d0: 3fff01d8 000001f7 000001f7 4010020c
3fff11e0: 00000090 3fff437c 3fff2ac4 40100668
3fff11f0: 00000014 00000fb8 000001f7 000001f7
3fff1200: 3fff29c4 3ffe84a0 3fff1250 00000870
3fff1210: 00000090 3ffef514 3ffef514 4020ea84
3fff1220: 3ffe84b0 00000080 3ffef514 4020ead3
3fff1230: 00000007 00000007 00000001 40207090
3fff1240: 3ffeef58 3ffeef68 60000b28 4020ec7d
3fff1250: 4020d40a 00000003 4020d402 00000870
3fff1260: 3ffef454 3ffef520 3ffeef54 4020733c
3fff1270: 3ffe8e68 00000000 000003e8 feefeffe
3fff1280: 00000000 00000000 00000000 00000000
3fff1290: 3ffefe54 00000001 feefeffe feefeffe
3fff12a0: feefeffe feefeffe feefeffe 3fff02b8
3fff12b0: 3fffdad0 00000000 3fff02b2 4020735c
3fff12c0: feefeffe feefeffe feefeffe 4020f454
3fff12d0: feefeffe feefeffe 3fff02c0 40100718
<<<stack<<<

ets Jan 8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld
+
avatar
  • DenW
  • 21 марта 2017, 12:18
0
Передвигая по коду строчку Serial.print( "***" ) найдите вызов функции, которая приводит к падению. Наверняка это доступ к WiFi.

Строка
«WebLights v1.01. SPIFFS:Ok
LEDs:50, SSID:WebLights, Pwd:weblights, » говорит о том, что СОМ порт работает, файловая система OK.

Добавьте тест на EEPROM перед WebInit. Если падает в WebInit — надо глянуть параметры вызова процедуры, на которой падает.
Кристалл точно 12E? может другой, с меньшим размером памяти?
+
avatar
  • KaDaBRa
  • 16 августа 2017, 00:11
0
Похожая проблема, только вот более точно установил:
Запускается нормально, но потом падает при обращении в веб серверу.
Пробовал и запись\чтение EEPROM, всё ок работает.
Самое интересное, что после нескольких таких падений, начинает писать что LEDs: 256.
Пробовал переключить в WiFi-клиента, переписав код, не подключается:(
Платка Lolin NodeMCU v3. Пробовал разные скетчи примеры заливать, всё работает нормально, и WiFi-клиент и AP, запись чтение EEPROM.
Поможете с дебагом?
+
avatar
  • DenW
  • 16 августа 2017, 10:24
0
Hi!
Вы последнюю версию взяли?
После первой выкладки я мелкие баги правил и обновлял на github.

Ну и та же рекомендация — плз найдите точку, после которой падает и опишите, что делали.

Лучше в личке
+
avatar
0
ахинея в консоли порою лечится банальным изменением скорости порта.
+
avatar
  • Leha_40
  • 29 марта 2017, 13:51
0
А прикрутите пожалуйста sd модуль.
+
avatar
  • Parsek
  • 08 октября 2017, 10:48
0
заказал, попробую сделать :) во время вспомнил
+
avatar
  • Parsek
  • 17 ноября 2017, 13:36
0
сделал, среднюю ножку гирлянды подключил к gpio3, прошил.
при прошивке загораются все огни, белым.
после перезапуска гаснут.
само не бегает ничего… корочу на 0 gpio0 (сброс) снова не бегает скрипт по умолчанию
появляется точка Веблайт, захожу, подключаюсь.
захожу на 192.168.4.1 вижу интерфейс, загружаю графический файл с этой странички.
возвращаюсь в настройки, включаю bmp:one
жму set params и опять ничего…
помогите, НГ на носу :)
+
avatar
  • Parsek
  • 17 ноября 2017, 14:39
0
у меня esp-шка mysku.club/blog/aliexpress/38586.html такая
+
avatar
  • DenW
  • 17 ноября 2017, 18:36
0
Hi!

На вкладке Files файл и Кнопку Play нажали?
Prev-Next — тыкали?

bmp должен быть 24 бит
раз сеть появилась — значит esp работает.

Осциллограф есть?
посмотреть шевелится ли что на RX?

Обратите внимание — средняя нога светодиодов к выводу RX идет!

попробуйте VisPinger загрузить.
+
avatar
  • Parsek
  • 20 ноября 2017, 13:13
0
на RX не шевелится ничего… возможно я чет подпалил…
хотя, как я понимаю, на эти же ноги идет при прошивке код в чип? значит нога живая…
мне не понятно
#define PIN_BUTTON D3 // I GPIO0 — D3 Button
#define PIN_LED D4 // O GPIO2 — D4 OnBoard LED
#define PIN_IRDA D5 // I GPIO14 — D5 IRDA receiver
может у моей платки ножки по другому расположены?
+
avatar
  • DenW
  • 20 ноября 2017, 15:11
0
По идее работать должно…

При старте по USB что приходит?
Файловая система инициализируется нормально?
загруженный файл в списке файлов виден?

Добавьте в процедуру void CGlobalData::LedSetPxl( uByteLong clr ) вывод данных в USB Serial.print(clr);
если мусор в консоли побежит — значит какие-то цвета пишутся на вывод. И если на Rx так ничего и нет — что-то с библиотекой вывода.

Попробуйте установить точно те компоненты, что я выложил.
Это недостаток Arduino — бывает что новые версии не совместимы со старыми проектами.

Перейдите на вкладку скрипта, загрузите один из скриптов и нажмите сохранить. если и после этого ничего дрыгаться не будет — значит чем-то эта плата отличается.
Надо wemos D1 брать. Ее можно попробовать в offline купить — чтобы побыстрее.
+
avatar
  • Parsek
  • 20 ноября 2017, 17:49
0
при старте (после ресет) пишет:
(непередаваемая и не копируемая абракадабра) и потом
LEDs:50, SSID:WebLights, Pwd:weblights, Mode:AccessPoint 192.168.1.1/255.255.255.0/192.168.1.1, IP:192.168.4.1

нашел в закладке main
void LedSetPxl( uByteLong clr )
в какую закладку мне добавить строчку

void CGlobalData::LedSetPxl( uByteLong clr )
{
Serial.print(clr);
}
и правильно я всё пишу?

wemos D1 я заказал на прошлой неделе, в середине декабря должно прийти.

скачиваю версию 1,6,9 как у Вас, была у меня была установлена 1,8,5
+
avatar
  • DenW
  • 20 ноября 2017, 18:11
0
на 1-8-5 у меня тоже собирается
я имею в виду библиотеку NeoPixel — надо ее из моего проекта взять

про абракадабру:
должна быть строчка «WebLights v1.01. SPIFFS:» и что-то далее. — а вот что у Вас?

LED итд позже идут.

отладку вот так поставьте:


int i = s.mPosLed;

Serial.print(clr);

switch( s.mNxtMode )


Ну и скрипт попробуйте — замигает что-то или нет.
+
avatar
  • Parsek
  • 21 ноября 2017, 15:51
0
извините за задержку… вообще сломал программу Ардуино. переустанавливаю в 3 раз.
+
avatar
  • Parsek
  • 21 ноября 2017, 16:48
0
WebLights v1.01. SPIFFS:Ok

сделал так:
// Set pixel color and select next LED 00RRGGBB
void CGlobalData::LedSetPxl( uByteLong clr )
{ TStack &s = mCtx[mCtxCur];
int i = s.mPosLed;
Serial.print(clr); //добавил эту строчку
switch( s.mNxtMode )
{ case '>': mLeds.ShiftRight( 1, i, i+s.mNxtStep ); break;
case '<': mLeds.ShiftLeft( 1, i, i+s.mNxtStep ); i += s.mNxtStep; break;
}

выдает ошибку
sketch\led.cpp: In member function 'void CGlobalData::LedSetPxl(uByteLong)':

led.cpp:85: error: no matching function for call to 'HardwareSerial::print(uByteLong&)'

Serial.print(clr);

и ее много строк ссылок (мне кажется не существенно)
+
avatar
  • DenW
  • 21 ноября 2017, 17:03
0
Это значит что файловая система в норме.

Вот так надо:

Serial.print(clr.uL);
+
avatar
  • Parsek
  • 21 ноября 2017, 17:27
0
не побежало ничего в консоли.
+
avatar
  • Parsek
  • 18 ноября 2017, 08:01
0
В понедельник, на работе, попробую с осцилографом проверить.
Bmp брал отсюда, просто сохранил к себе и закинул в ЕСП.
:) нажимал и плей и аплоад. Поищу вторую ЕСП, может брак какой с первой.
+
avatar
  • Parsek
  • 22 ноября 2017, 17:11
0
Благодаря автору и потраченному им на меня времени, заработало!
+
avatar
0
Помогите разобраться. Прошил esp, bmp-файлы проигрывает, но скрипты не проигрывает никак…
+
avatar
  • DenW
  • 09 декабря 2017, 16:14
0
Hi-Ho-Ho!

1) на главной странице Led play mode: выберите скрипт и нажмите «Set param»
2) Во вкладку скрипта поместите какой-либо тестовый скрипт
3) нажмите на ней же кнопку save

По идее должно заработать. Все скрипты в примерах — рабочие.
+
avatar
  • DenW
  • 09 декабря 2017, 16:20
0
Hi-Ho-Ho!

1) на главной странице Led play mode: выберите скрипт и нажмите сохранить
2) Во вкладку скрипта поместите какой-либо тестовый скрипт
3) нажмите на ней же кнопку save

По идее должно заработать. Все скрипты в примерах — рабочие.
+
avatar
0
1. Так и делаю
2. Перехожу по ссылке Script, там уже есть нейкая последовательность символов
3. Ни кнопка Save, ни кнопка Activate не приводит к каким-либо действиям. Светодиоды не загораются.
Вставляю скрипты из примеров — тоже «тишина»

Есть еще один нюанс, если на странице конфигурации указать 50 светодиодов, то последний светодиод в гирлянде не работает, если указать 51, то работают все.

Режимы BMP: One и BMP: All работают нормально.
+
avatar
  • edsnsk
  • 13 декабря 2017, 11:10
0
Последний светодиод не работает. Действительно надо указывать 51, 101, 151, 201, и так далее…
+
avatar
  • DenW
  • 13 декабря 2017, 21:21
0
Скрипты исправил, 1 добавил.
+
avatar
  • 0_W_L
  • 13 декабря 2017, 06:08
0
привет! тоже скрипты не запускаются, bmp играет.

еще вопрос — общую максимальную яркость как-нибудь ограничить можно?

и по скорости проигрывания файлов — регулировку кнопками на веб-морде можешь добавить? и сохранять значение в имени файла при переходе на следующий…
+
avatar
  • DenW
  • 13 декабря 2017, 09:49
0
Hi!

Скорость проигрывания BMP файлов можно задавать.
По умолчанию задержка составляет 10мс.

Для задания скорости проигрывания в имя BMP файла должна входить последовательность #ddd, где ddd – задержка в миллисекундах между записью строк из файла в LED.

Те eff1#500.bmp будет выводить строку каждые 500 мс.
middle#100.bmp — каждые 100 mc

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

Ограничения максимальной яркости пока нет.
В принципе можно добавить — если нужно.
Но это отожрет прилично ресурсов. На точку надо будет выполнять одну операцию умножения и деления. Можно попробовать на сдвигах сделать. Те снизить яркость на 1/16, 1\8, 1/4, 1/2. — по идее на макс скорости сказаться не должно
+
avatar
  • 0_W_L
  • 13 декабря 2017, 11:01
0
понятно.
сейчас с другим разбираюсь — с IR командами. забивает FFFF в «IR Code» в веб-морде.
на одно нажатие на пульте выдает обработку два раза, результат с сериал:
mIrdaRes.value: FFE21D
mIrCommand: E21D
mIrdaRes.value: FFFFFFFFFFFFFFFF
mIrCommand: FFFF

да, библиотека IRremoteESP8266 обновилась до версии 2.3.0, пришлось еще подключить IRrecv.h
+
avatar
  • 0_W_L
  • 13 декабря 2017, 11:36
0
по короткому нажатию команда считывается нормально, а с длинным — сплошные FF лезут…
+
avatar
  • DenW
  • 13 декабря 2017, 21:22
0
Есть вероятность, что так пульт работает.
длинное нажатие передает как FF
А может бибилиотека…
+
avatar
  • 0_W_L
  • 13 декабря 2017, 12:42
0
вбил скрипты из .rtf — второй ребутит машинку. остальные ведут себя как-то странно. например — поставил первый из примеров. — тишина. загрузил 4-ый — все побежало. снова первый — перецвет нескольких диодов и тишина. третий — побежало, снова первый — бегает одна точка с хвостом туда-сюда. 5 — заболнение работает. снова 1-ый — а он теперь от 1 до последнего и обратно бегает, разными цветами…
ничего не понимаю )))

а для чего кнопки Prev и Next на закладке скриптов? отвечаю сам себе — файлы в режиме BMP переключают…
+
avatar
  • DenW
  • 13 декабря 2017, 21:20
0
Скрипты исправил.
Возьмите обновление.
+
avatar
  • edsnsk
  • 14 декабря 2017, 07:36
0
Если автор не против то пусть он добавит мои картинки в проект или поместит в статью, просто я через какое то время могу удалить их с яндексдика. Спасибо!
+
avatar
  • DenW
  • 14 декабря 2017, 09:26
0
Я их в проект добавил со ссылкой на Вас.
+
avatar
  • edsnsk
  • 14 декабря 2017, 10:14
0
Спасибо конечно, но пусть это Ваше будет, просто это моя благодарность, хоть такая за Ваш проект, я бы такого никогда не сделал бы!
+
avatar
  • DenW
  • 14 декабря 2017, 21:43
0
Нее, пусть еще участники в проекте будут.

Нарисовать картинку кажется просто — а это не совсем так.
Сделать что-то красивое не так уж легко.

Как известные скульпторы говорят — «Просто отсекаю все лишнее» ;)

А я просто рад, что мне спасибо говорят и мой проект используют.
+
avatar
  • 0_W_L
  • 14 декабря 2017, 11:47
0
1) количество светодиодов теперь стало больше на 1 (65 при вводе 64 в веб-морде)
2) второй скрипт по-прежнему ребутит систему. начал вбивать его вручную частями, нажимая Save. после ввода система ушла в циклический ребут. вывод на сериал:
WebLights v1.01. SPIFFS:Ok
LEDs:64, SSID:WebLights, Pwd:weblights, Mode:AccessPoint 192.168.1.1/255.255.255.0/192.168.1.1, IP:192.168.4.1
 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld

 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld

WebLights v1.01. SPIFFS:Ok
LEDs:64, SSID:WebLights, Pwd:weblights, Mode:AccessPoint 192.168.1.1/255.255.255.0/192.168.1.1, IP:192.168.4.1
 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v3de0c112
~ld
+
avatar
  • DenW
  • 14 декабря 2017, 21:38
0
1 и 2 исправил. Кнопку порядка цветов исправил.
В доке в примерах ошибка была.
Кнопки через () определяются а не через <>
+
avatar
  • 0_W_L
  • 15 декабря 2017, 07:03
0
когда выложишь? и может обновишь под IRremoteESP8266 2.3.0?
из пожеланий — неплохо было-бы загружать bmp папкой, а не по-файлово. и в разных папках можно держать разные подборки bmp эффектов с разной скоростью. пока думаю — можно скрипт писать, на проигрывание определенной последовательности, но туда бы добавить регулировку скорости не из названия файла…
еще момент — не получается отформатировать зажатием кнопки при старте. просто не стартует…
+
avatar
  • 0_W_L
  • 15 декабря 2017, 07:45
0
UPD
читайте доки, они — рулез! :) ~tttFlName нашел )))
+
avatar
  • DenW
  • 15 декабря 2017, 09:30
+1
Вечером.
Пожелания учту. Во всяком случае — часть :)
+
avatar
  • DenW
  • 15 декабря 2017, 20:39
+1
Выложил.
Благодарю за помощь в поиске багов!
+
avatar
  • 0_W_L
  • 15 декабря 2017, 09:10
0
добавь заодно очистку ленты при загрузке нового скрипта. я воткнул очистку в начале handle_fl() — имхо, смотреться стало значительно лучше.
+
avatar
  • edsnsk
  • 13 декабря 2017, 10:51
+1
Спасибо DenW за проект! Как и обещал, буду выкладывать красивые BMP для проекта. В программировании не силен, но рисовать BMP умею. Не судите строго, для себя рисовал. Если кому, что то надо, давайте обсудим эффект, может и получится, :) yadi.sk/d/meA87lcL3QZviY
+
avatar
  • Parsek
  • 30 декабря 2017, 23:54
0
«Салют» классный! от «радуга3» зависает контроллер ;) не хватает моих блоков питания
+
avatar
  • edsnsk
  • 12 января 2018, 16:48
0
Простите я наверное этого не учел! у меня БП 60 Ампер, я понял буду скромнее эффекты думать :)
+
avatar
  • edsnsk
  • 13 декабря 2017, 10:58
+1
Спасибо DenW за проект! Как и обещал, буду выкладывать красивые BMP для проекта. В программировании не силен, но рисовать BMP умею. Не судите строго, для себя рисовал. Если кому, что то надо, давайте обсудим эффект, может и получится, :) yadi.sk/d/meA87lcL3QZviY

P.S. Не называйте файлы ВМР кирилицей, они загружаются и работают, но не периименовываются и не удаляются
+
avatar
  • edsnsk
  • 13 декабря 2017, 12:17
+1
Продолжаю эффекты к проекту Большой Взрыв yadi.sk/i/E-1bVN6F3Qa88v
+
avatar
  • edsnsk
  • 14 декабря 2017, 10:21
0
DenW тут люди задавали вопросы по поводу циклической перезагрузки есп, у меня такое было могу рассказать как вышел из ситуации если интересно кому нить, через попу конечно я сделал это, но сделал
+
avatar
  • Parsek
  • 16 декабря 2017, 19:37
0
Я правильно понял, со старой прошивкой надо на 1 больше светодиод выставлять?
А то, только сегодня на ёлку повесил :) все радуются!
+
avatar
  • DenW
  • 17 декабря 2017, 17:50
0
Похоже да.
В новой еще 2 серьезных клопа исправлено.

Это хорошо, что радуются!
+
avatar
  • Parsek
  • 17 декабря 2017, 20:15
0
Супер красиво!
Еще раз, огромное спасибо!
Если зиму без проблем переживет, то сделаю еще таких, шиуки три четыре по 100 светодиодов!
А то, каждый год 2-3 покупаем, остается 1 живая более менее. Эти должны на улице получше жить.
vk.com/video783421_456239032?api_access_key=650ce2f5ddf74ef828
+
avatar
  • DenW
  • 17 декабря 2017, 21:14
0
Здорово!
Необычно на дереве смотрится.
Надо будет тоже на даче пару елок посадить.

Какой БП использовали?

Плз пришлите эффект — я его в проект включу.

И в видео ссылку на эту статью плз добавьте — может еще кто сделает!

А если разные картинки состыковать по первой и последней строке — еще лучше будет.
+
avatar
  • Parsek
  • 17 декабря 2017, 22:37
0
я думал это ваш скрипт :)
Хотя картинок тоже рисовал, но суетился и было впечатление что запустился скрипт. Скачаю и выложу картинки завтра-послезавтра, они на работе.
На скорую руку, запаралелил два старых блока зарядок от телефонов по 650мА
+
avatar
  • Parsek
  • 20 декабря 2017, 19:22
0
скачать с гирлянды не получилось…
выделял файл, ставил «load» и exec. и ничего…
сижу на больничном, файлы на работе, смогу в понедельник перекинуть
+
avatar
  • Parsek
  • 27 декабря 2017, 10:43
0
мои три копейки
yadi.sk/d/66_BfEL23QzfFy
+
avatar
  • webtest
  • 30 декабря 2017, 18:04
0
Интересный проект.
А вы не пробовали копать формат файлов *.led, которые поддерживаются готовыми контроллерами для RGB светодиодов, такими как T-1000S, например?
Для него (как я вчера узнал) существует готовый редактор, называется LedEdit:
+
avatar
  • DenW
  • 30 декабря 2017, 21:06
0
Hi!
Не пробовал.
Готовых контроллеров у меня нет.

Судя по виду он рассчитан на матрицу — а мой проект на линию.
Хотя линию можно и сложить.
+
avatar
  • webtest
  • 30 декабря 2017, 23:04
0
Это понятно, что вы делали свой контролер, просто можно было бы использовать существующий формат файлов — чтобы применять готовый редактор. Вопрос конечно в том, есть ли по формату документация, и если нет — насколько его сложно расковырять.

А по поводу матрицы или линейки — там в начале вроде задаётся конфигурация светодиодов в проекте, тут просто такой пример выбран.
+
avatar
  • Parsek
  • 30 декабря 2017, 23:55
0
паинт вроде очень удобно использовать. мне именно это нравится.
+
avatar
  • Klarius
  • 31 августа 2018, 03:06
0
а по какому принципу bmp проигрывается? вниз как планшетный сканер?
+
avatar
  • DenW
  • 31 августа 2018, 08:39
0
Да
+
avatar
  • Parsek
  • 16 декабря 2018, 12:24
0
В этом году удлинил гирлянду до 200 светодиодов
+
avatar
  • Creo
  • 07 декабря 2019, 00:28
0
Все прошил, все ОК — версия 1.9 с гитхаба.
Гирлянда не работает, загрузил все файлы bmp. (от, изначально, купленного блутус контроллера — все ок) :(
подключился по wi-fi, потом сделал клиентом,
подключилось к домашнему файфаю, загрузил все картинки с гитхаба.
Все равно не моргает??
В чем проблема?
+
avatar
  • DenW
  • 07 декабря 2019, 08:58
0
Привет!

установлен режим работы скрипт (LedPlayMode)
Надо на BmpAll или BmpOne переключиться
+
avatar
  • Creo
  • 07 декабря 2019, 09:23
0
Понятное дело, что изменил, но не тот скриншот :)
Все равно гирлянда молчит :(
+
avatar
  • DenW
  • 07 декабря 2019, 09:51
0
Загрузите бинарник — он точно рабочий.
Если вы видите меню — контроллер работает.

Вывод с контроллера правильный?
Есть возможность посмотреть что на выводе что на светодиоды происходит?
если там есть импульсы — дело в ленте или в согласовании уровней.
По светодиодам видел совет первый светодиод питать от контоллера а остальные от источника.

была как-то раз проблема с питанием — подключите ЕСП и гирлянду к одному источнику — для проверки.
Еще как-то была ошибка — не к той стороне гирлянды подключали ;)

выберите файл, поставьте точку на Play и нажмите EXEC
+
avatar
  • Creo
  • 07 декабря 2019, 10:15
0
Осциллографа нет :(
На фото мой временный проект :) На конце гирлянды 4,99 V :)
Все питается от одного источника на 5В 2А :)
+
avatar
  • DenW
  • 07 декабря 2019, 10:24
0
На первый взгляд все правильно.
На всякий случай проверьте — с RX контроллера провод идет на сторону светодиода где чипа нет

для проверки ленты соберите и загрузите какой-нибудь пример от Neopixel в плату
+
avatar
  • Creo
  • 07 декабря 2019, 10:41
0
Спасибо за помощь в подключении :)
Но, не понял о чем это «с RX контроллера провод идет на сторону светодиода где чипа нет» ??
Там в каждом чипы есть :)
«пример от Neopixel в плату» — где такое взять :)?
+
avatar
  • DenW
  • 07 декабря 2019, 14:56
0
за светодиодом залита силиконом плата с чипом в трубочке
выход RX с ЕСП должен идти на сторону платы где чипа нет

в библиотеках что нужны для сборки проекта есть NeoPixelBus_by_Makuna
в библиотеке есть папка с примерами
надо собрать любой и посмотреть что будет
+
avatar
  • Creo
  • 07 декабря 2019, 15:19
0
Чипы везде есть!
И с RX туда идет!
На фото видно — зеленый провод!
Библиотеку подключена естественно.
+
avatar
  • DenW
  • 07 декабря 2019, 16:34
0
Зайдите в каталог Examples библиотеки
загрузите проект NeoPixelTest
соберите его и загрузите в ЕСП
если 4 диода не замигают — проблема с лентой\уровнями сигнала
я встречал рекомендацию подключить питание первого ЛЕД через 1-2 диода.
ЕСП это 3,3v контроллер. А гирлянда — 5. те первый ЛЕД может видеть шину как всегда 0. Хотя обычно уровень лог единицы с 2,5v начинается и 3,3 с ЕСП хватает.
включив диод в цепь питания ЛЕД напряжение питания понизится на ~0,7v и будет около 4,3v
два диода на питании первого ЛЕД дадут ~3.6v — тогда 3,3 с ЕСП ЛЕД точно увидит.

В общем надо рыть в направлении согласования уровней контроллера и ЛЕД (предполагаем что сама гирлянда исправна)
Еще какой-нибудб скетч для WS2812 попробуйте собрать\загрузить.
Если есть 5в AVR (Arduino Uno,Nano итд) — на ней ленту проверьте.
+
avatar
  • Creo
  • 08 декабря 2019, 08:46
0
по питанию все ОК, на дальнем конце гирлянды 4,99 В. Гирлянда исправна — от родного SP110E с блутусом все прекрасно работает.
Пробовал прошивать Ваш бинарник с гитхаба, вообще не работает сервер на есп.
про диоды: так один или 2, не понял и как включать??
+
avatar
  • DenW
  • 08 декабря 2019, 10:12
0
Посмотрел на Али — у вас ESP8266 на плате а у WemosD1 модуль ESP12F распаян.
Хз чем они отличаются. Но видимо отличия есть.
У меня такой платы нет и проверить не на чем.
Возможно по этому и бинарник не работает.
Начинать надо с теста из NeoPixel. Заставить его работать. Возможно станет понятно что в проекте править.

Диоды 1 или 2 включите между +5в БП и гирляндой чтоб снизить напряжение питания гирлянды. Но дело скорее в контроллере.
+
avatar
  • Creo
  • 08 декабря 2019, 11:08
0
У меня модуль на ESP8266EX (D1 mini pro)
Вот ссылка на покупку: https://aliexpress.com/item/item/32972443664.html
+
avatar
  • Creo
  • 08 декабря 2019, 14:45
0
Диод не помог, все фигня. Гирлянда молчит, но от родного блока — работает :)
+
avatar
  • DenW
  • 08 декабря 2019, 16:26
0
Значит ЕСП не такая.
надо ESP8266 ESP-12 ESP12 WeMos D1 Мини (без pro) — ссылка на него в обзоре есть
гирлянда на первый взгляд такая же что и у меня
+
avatar
  • Creo
  • 08 декабря 2019, 17:16
0
Все такая, как у Вас на фото: WeMos мини D1 и про мало чем отличаются!

+
avatar
  • DenW
  • 08 декабря 2019, 18:36
0
Теоретически-лучше
практически не работает.
Рекомендации все те же — запустить на ней пример из NeoPixel.
Если он не заработает — искать почему.
+
avatar
  • Creo
  • 09 декабря 2019, 12:06
0
ОК, буду пробовать, а если еще поиграться настройками: RGB, GRB и т.п.?
+
avatar
  • DenW
  • 09 декабря 2019, 13:30
0
Совершенно точно — не в этом дело.
Эта настройка влияет на _порядок_ цветов — а ща у вас вообще никаких цветов нет :)
+
avatar
  • Creo
  • 10 декабря 2019, 21:19
0
В общем все заработало, но только питание нужно было подать на висящие в воздухе белый (-) и красный (+). А управление через черный разъем!
PS: где-то сегодня увидел такой тип подключения в нете и решил попробовать :) Все работает! Спасибо.
аналогично заработала RGB лента на 5050 диодах, питание, только на контакты висящие в воздухе! По другому не работала!
Спасибо за помощь.
+
avatar
  • Creo
  • 08 декабря 2019, 17:23
0
Все такая, как у Вас на фото: WeMos мини D1 и про мало чем отличаются!
+
avatar
  • Creo
  • 07 декабря 2019, 00:32
0
Все прошил, все ОК — версия 1.9 с гитхаба.
Гирлянда не работает, загрузил все файлы bmp. (от, изначально, купленного блутус контроллера — все ок) :(
подключился по wi-fi, потом сделал клиентом,
подключилось к домашнему файфаю, загрузил все картинки с гитхаба.
Все равно не моргает??
В чем проблема?
+
avatar
0
Не могу скомпилировать…
Arduino: 1.8.10 (Windows 7), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\Mixa\Videos\Documents\Arduino\libraries\NeoPixelBus_by_Makuna\src/NeoPixelBus.h:57:0,

                 from sketch\main.h:27,

                 from sketch\web.cpp:11:

C:\Users\Mixa\Videos\Documents\Arduino\libraries\NeoPixelBus_by_Makuna\src/internal/NeoEsp8266DmaMethod.h:51:127: error: declaration of C function 'void rom_i2c_writeReg_Mask(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)' conflicts with

     void rom_i2c_writeReg_Mask(uint32_t block, uint32_t host_id, uint32_t reg_add, uint32_t Msb, uint32_t Lsb, uint32_t indata);

                                                                                                                               ^

In file included from C:\Users\Mixa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.2\cores\esp8266/esp8266_peri.h:25:0,

                 from C:\Users\Mixa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.2\cores\esp8266/Arduino.h:38,

                 from sketch\main.h:15,

                 from sketch\web.cpp:11:

C:\Users\Mixa\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.2\cores\esp8266/esp8266_undocumented.h:9:13: error: previous declaration 'void rom_i2c_writeReg_Mask(int, int, int, int, int, int)' here

 extern void rom_i2c_writeReg_Mask(int, int, int, int, int, int);
+
avatar
  • DenW
  • 16 декабря 2019, 19:56
0
Hi!

1) Я собирал в 1.8.9. До 1-8-10 не обновлялся
2) из среды надо обновить NeoPixelLib

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