Продолжаем тему новогоднего конструирования, начатую мной в предыдущем обзоре.
Ещё одна конструкция, пригодная для повторения непрофессионалами, в том числе и для детского творчества.
Главной и отличительной особенностью данной конструкции является простота, повторяемость и, главное, скорость получения результата. Если под рукой есть все компоненты, то время от «поехали» до «а чо, красиво светит» будет измеряться десятком-другим минут. Даже с учётом времени подготовки материалов, пайки, установки софта для программирования, перекуров и обедов, её смело можно назвать «конструкцией выходного дня».
Ничего принципиально нового, никаких открытий. Профи и спецам снова будет скучно, «детский сад» и неинтересно.
А начинающим, думаю, будет интересно. Потому что, в отличие от ранее рассмотренной гирлянды, сегодня упор будет делаться не на ручной труд, а на интеллектуальный. Пайки почти не будет, гирлянда придёт уже полностью готовой к подключению. Нам же надо будет заставить её красиво светить.
Сразу оговорюсь, что эта конструкция рассчитана на чуть-чуть более сведущих в электронике. Сегодня уже будут мелькать слова «ардуино», «скетч», «амперы», «инсталлируем» и «прошиваем». Но очень хочу надеяться, что это не отпугнёт новичков, и, даже более того, что именно с этой самоделки кто-то решится познакомиться с «этими вашими ардуинами». Сложного действительно ничего нет.
Первым делом о гирлянде. Она состоит из пятидесяти (хотя есть лоты и на другое количество) одинаковых модулей. Каждый модуль — это полноцветный светодиод, совмещённый с маленьким контроллером. Весь модуль герметично залит прозрачным силиконом.
И все эти модули собраны в единую шину из трёх проводов: земля, питание и информационный. Таким образом, мы получаем возможность адресно зажигать и менять цвета у любого светодиода в гирлянде. С точки зрения программирования, у нас есть пятьдесят пикселей с 255-ю значениями компонент красного, зелёного и синего на каждый.
Возьмём штангенциркуль и померяем модули нашей гирлянды
Длина модуля без учёта светодиода 30мм.
Габаритный диаметр чуть меньше 12мм (от модуля к модулю чуть меняется, это ж мягкий силикон.
Модули имеют возможность крепления к какой-либо панели изнутри, сквозь отверстия. Для этого сформирована канавка (на картинке помечена красной стрелочкой или на фото выше видно хорошо) и дальше несколько упорных насечек. Диаметр по посадочной канавке 11 мм.
Диаметр самого светодиода 8 мм (непривычно). Он очень хорошо матирован, свет даёт ровный, видно с любых углов обзора. Прозрачность силикона тут тоже на руку.
Светодиод выступает из модуля на 6.5 мм.
Питается гирлянда от источника постоянного тока напряжением 5 вольт. Каждый модуль при полном зажигании всех кристаллов потребляет ток до 50mA, это надо учитывать. В частности, если планируется использовать гирлянду на полную яркость, следует для её питания выбирать адаптер с силой тока не менее 3А. В предлагаемом проекте модули используются лишь на четверть яркости (и этого более чем достаточно; иначе это не ёлка, а прожектор получается), и, с учётом того, что вся гирлянда никогда не светит чистым белым, для её длительного питания с избытком хватает адаптера 5V 1,5A. У меня такой адаптер нашёлся «в тумбочке». Для конструкции вполне подойдёт ненужный зарядник для планшета или другого мощного гаждета, лишь бы значение тока не было менее 1,5 ампер и напряжение соответствовало 5 вольтам.
Что касается управления нашими светодиодами, то тут просто напрашивается Ардуино. (Уважаемые профи, да, мы знаем, что есть огромное количество более подходящих под задачу микроконтроллеров, что ардуина избыточна, но нам нужна простота конструкции и сверхбыстрый повторяемый новичками результат). Так что соглашайтесь с предыдущей фразой.
Для тех кто не знает, что такое Ардуино, коротенько
Ардуино — это маленькая законченная платка с микроконтроллером и всей обвязкой для него. Сначала платка по USB подключается к компьютеру, и через USB в ардуину вливается прошивка. Далее платку можно отключить от ПК, она будет работать сама по себе по заданной программе, только питание подавай.
Программное обеспечение для ардуино бесплатно и доступно; возможна как инсталляция, так и portable-работа приложения (оно называется, кстати, Arduino IDE). В одной среде совмещено как средство разработки и отладки программ, так и средство программирования ардуины. Язык программирования не сложен и понятен; в сети есть огромное количество уроков, примеров, библиотек, учебников и конференций по ардуино.
Таким образом, для успешной сборки устройства нам необходимо всего лишь три компонента:
— Гирлянда;
— Ардуино;
— Адаптер питания.
Из неосновных, но желательных компонентов напрашивается:
— Кабель с тремя проводниками, чтобы удлинить шину гирлянды — иначе контроллер будет в пяти сантиметрах от первого светодиода;
— Маленький корпус, в который можно убрать платку ардуины;
— Гнездо для подключения адаптера питания (если адаптер питания имеет штекер, разумеется).
Ещё нам потребуется ПК, на котором будет стоять софт для работы с ардуино (на сегодня это Arduino IDE 1.6.6) и шнур USB-miniUSB (или USB-microUSB) в зависимости от того, какой разъём на борту имеет ардуина.
Не знаю, нужно ли приводить принципиальную схему устройства, но пусть будет:
В качестве J1 у меня выступает гнездо питания 5,5*2,1:
Под разъёмом J2 условно понимается подключение гирлянды.
Питание с адаптера подаётся сразу и на гирлянду, и на ардуину.
Цвета проводов в гирлянде:
красный — плюс питания,
в середине шлейфа белый — данные,
синий — общий минус.
В силу того, что в конструкции используется всего лишь один вывод ардуины (у меня на схеме это пин 2), нам с одинаковым успехом подойдёт любая ардуина. Вот прямо какая будет ближе и дешевле, та и подойдёт.
Новичкам я бы посоветовал Arduino Nano, она имеет небольшие размеры, дополнительных шилдов мы использовать не будем, подключается стандартным microUSB проводом.
Более подготовленные и продвинутые, уверен, выберут самый экономичный вариант, Arduino Pro Mini, но эта модель ардуино не имеет USB интерфейса, их надо прошивать специальным конвертером TTL UART (всячески советую с пином DTR), поэтому новичкам советовать этот вариант не стану.
Но подойдёт и UNO, и любая другая модель, хотя это будет более расточительно.
Итак, качаем и инсталлируем Arduino IDE. Подключаем нашу платку.
Система находит и инсталлирует драйвера.
Но прежде, чем запустить программу, сделаем ещё несколько подготовительных операций. Вот сюда я положил архив с исходным скетчем и необходимыми ему библиотеками. Библиотеки одинаково успешно были проверены как на версии 1.6.5, так и на 1.0.5, так что проблем быть не должно.
Надо содержимое папки libraries из архива (там две подпапки) распаковать в аналогичную папку libraries туда, куда установлена программа.
Запускаем программу.
Настройки просты: В меню «Инструменты» в списке «Плата» установить свою модель платы и в списке «Порт» установить тот виртуальный порт, который создался после подключения ардуино кабелем к ПК.
В главном окне уже будет пустой скетч. Что-то типа «void setup()» первой строкой. Нам это не нужно. Открываем скетч «Led1903.ino», который был в архиве.
На всякий случай, приведу скетч ещё и тут, вдруг архив протухнет
#include "FastLED.h"
#include <MsTimer2.h>
#define NUM_LEDS 50 // Количество светодиодов в гирлянде
#define GreenChannelTune 0.68 // Эти коэффициенты выравнивают реальный белый цвет светодиодов при одинаковых значениях RGB.
#define BlueChannelTune 0.5
#define DATA_PIN 2
#define CLOCK_PIN 13
CRGB leds[NUM_LEDS];
byte reds1 [NUM_LEDS]; byte reds2 [NUM_LEDS];
byte greens1 [NUM_LEDS]; byte greens2 [NUM_LEDS];
byte blues1 [NUM_LEDS]; byte blues2 [NUM_LEDS];
byte MaxBright=64; // Максимальная яркость гирлянды
int cRed1,cGreen1,cBlue1=0;
int cRed2,cGreen2,cBlue2=0;
int sRed1, sGreen1, sBlue1, sRed2, sGreen2, sBlue2;
int Eticker, Emaxticker=0;
int alpha1,alpha2;
byte effect=1;
void TickEvery1s() // Эта процедура вызывается 1 раз в секунду
{
Eticker++;
if (Eticker>=Emaxticker)
{Eticker=0; Emaxticker=random(20, 60);
switch(effect){
case 1: effect=2;
break;
case 2: effect=1;
break;
}
}
}
void setup() {
randomSeed(analogRead(0));
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
MsTimer2::set(1000, TickEvery1s); // 10000ms period
MsTimer2::start();
Emaxticker=random(20, 60);
sRed1=random(-2, 2);
sGreen1=random(-2, 2);
sBlue1=random(-2, 2);
sRed2=random(-2, 2);
sGreen2=random(-2, 2);
sBlue2=random(-2, 2);
}
void loop() {
cRed1=cRed1+sRed1; cRed2=cRed2+sRed2;
if ((cRed1>=MaxBright) or (cRed1<=0)) {sRed1=random(-2, 2);};
if ((cRed2>=MaxBright) or (cRed2<=0)) {sRed2=random(-2, 2);};
cRed1 = constrain(cRed1, 0, 255); cRed2 = constrain(cRed2, 0, 255);
for(int i = 1; i < NUM_LEDS; i++) {reds1[i-1]=reds1[i];} reds1[NUM_LEDS-1]=cRed1;
for(int i = NUM_LEDS-1; i>0 ; i--) {reds2[i]=reds2[i-1];} reds2[0]=cRed2;
cGreen1=cGreen1+sGreen1; cGreen2=cGreen2+sGreen2;
if ((cGreen1>=MaxBright) or (cGreen1<=0)) {sGreen1=random(-2, 2);};
if ((cGreen2>=MaxBright) or (cGreen2<=0)) {sGreen2=random(-2, 2);};
cGreen1 = constrain(cGreen1, 0, 255); cGreen2 = constrain(cGreen2, 0, 255);
for(int i = 1; i < NUM_LEDS; i++) {greens1[i-1]=greens1[i];} greens1[NUM_LEDS-1]=cGreen1;
for(int i = NUM_LEDS-1; i>0 ; i--) {greens2[i]=greens2[i-1];} greens2[0]=cGreen2;
cBlue1=cBlue1+sBlue1; cBlue2=cBlue2+sBlue2;
if ((cBlue1>=MaxBright) or (cBlue1<=0)) {sBlue1=random(-2, 2);};
if ((cBlue2>=MaxBright) or (cBlue2<=0)) {sBlue2=random(-2, 2);};
cBlue1 = constrain(cBlue1, 0, 240); cBlue2 = constrain(cBlue2, 0, 240); //200
for(int i = 1; i < NUM_LEDS; i++) {blues1[i-1]=blues1[i];} blues1[NUM_LEDS-1]=cBlue1;
for(int i = NUM_LEDS-1; i>0 ; i--) {blues2[i]=blues2[i-1];} blues2[0]=cBlue2;
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB(((greens1[i]*alpha1/32)+(greens2[i]*alpha2/32))*GreenChannelTune,((reds1[i]*alpha1/32)+(reds2[i]*alpha2/32)),((blues1[i]*alpha1/32)+(blues2[i]*alpha2/32))*BlueChannelTune);
FastLED.show(); // Отображаем массив
}
switch(effect) {
case 1:
{ if (alpha1<32) {alpha1++;};
if (alpha2>0) {alpha2--;};
} break;
case 2:
{ if (alpha1>0) {alpha1--;};
if (alpha2<32) {alpha2++;};
} break;
}
}
В основном окне программы видим перед собой открывшийся скетч.
Нажимаем на кнопку «Проверить»
Если после процесса проверки не видим красного текста и сообщений об ошибках — то всё замечательно.
Смело можем отправлять этот код в плату.
Нажимаем «Вгрузить» и через несколько секунд в окне статуса мы должны получить сообщение, что всё вгружено.
Поздравляю, наша ардуина готова к работе.
Лирическое отступление о данном скетче. Можно не читать.
Когда в начале обзора я сказал, что на построение этой гирлянды не уйдёт много времени, я не лукавил. Я сам построил эту гирлянду, когда на кухне уже нарезались салаты. Если посмотреть на дату первой версии скетча, то это будет 31 декабря прошлого года. Мне вот пришло тогда в голову — а не украсить ли интерьер интересной гирляндой, всё равно есть полчаса времени. Поэтому гуру программирования, посмотрев на скетч, будут рады позадавать мне ехидные вопросики и рассказать, что всё можно сделать проще и изящнее. Согласен, да, можно. Я и сам знаю. Числа с плавающей точкой не надо бы; это вообще всё можно заменить целочисленными таблицами. Много лишних телодвижений в массивах. И их самих тоже много. Но, сорри, я писал этот скетч быстро. И он работает. Так, как мне нужно. А вот после того, как мы бы сели за стол и открыли шампанское, самый изящный и безупречный скетч был бы никому не нужен. А так — гирлянда радовала и это главное её предназначение.
Пора браться за паяльник.
Пока он разогревается, подберём корпус. У меня «в тумбочке» завалялся более-менее подходящий.
С одной стороны я ввёл подходящий кабель для подключения гирлянды, с противоположной поставил гнездо для подключения адаптера питания.
В соответствии со схемой, подпаиваем провода.
Я в конструкции использовал Arduino Pro Mini, мне они нравятся малыми габаритами и стоимостью. Я их обычно заказываю сразу пригоршню, чтобы для очередной конструкции не искать, а сразу взять из кучки. Да и устанавливать их, учитывая стоимость, в конструкцию не жалко, это не «мегу» навсегда замуровать. А крепить их можно «терпосоплёй» или двухсторонним пеноскотчем. Лишь бы шесть контактов для возможного программирования оставались доступными.
Корпус великоват, наверное. Но это лучше, чем ничего.
Получается вот так:
Проверяем, включаем, убеждаемся, что всё работает. Можно закрывать крышку и наводить окончательный «марафет», чтобы конструкция не выглядела сильно колхозно.
О характере свечения гирлянды.
Я уже писал как-то, что меня раздражают гирлянды с резкими мельтешениями, миганиями, мерцаниями и прочим. Я тяготею к плавной смене цвета, «ламинарному» (т.е. без пульсаций и хаоса) характеру свечения. Мне кажется, для новогодней ёлки это более подходит.
Поэтому в своём скетче я реализовал неспешное движение световых «волн» вдоль гирлянды. Цвет, интенсивность и направление волн случайны, т.е. рисунок никогда не повторяются. Это обеспечивается тем, что генератор случайных чисел отталкивается от аналогового сигнала на ни к чему не подключённой ножке контроллера.
Безусловным плюсом конструкции является то, что каждый может в любой степени поменять предлагаемый скетч, чтобы получить тот характер свечения, который устроит именно его. В аппаратном смысле не изменится ничего, а в программном — всё определяется исключительно фантазией. В любом случае, переделывать готовый скетч проще, чем писать что-то новое «с нуля».
Покажу минутный ролик с работой гирлянды. Я уже говорил, что светодиоды практически невозможно снимать так, чтобы получилось красиво. Прошу прощения за засветы возле самих диодов, в реальности их нет. Прошу прощения за дрожание автофокуса, я ничего не смог с этим поделать. Прошу прощения за плавающий баланс цветности. Словом, ролик позволяет «более-менее» понять, что происходит с цветом гирлянды, не более. «Сосед напел кое-что из Шаляпина», да. В данном минутном отрезке разноцветовые волны движутся вдоль гирлянды справа налево.
Саму гирлянду я покупал у другого продавца. Сейчас его магазина нет на Али, поэтому ссылку дал на аналогичный товар, хотя сам у данного продавца ничего не покупал.
Все ссылки в тексте даны лишь для иллюстрации.
Для обзора никто ничего не предоставлял и никаких условий не ставил. Всё покупалось исключительно на свои деньги в разное время.
PS: Да. Полноцветные светодиоды на WS2811/UCS1903 бывают конструктивно оформлены не только в виде силиконовых модулей и проводов, как описано в этом обзоре. Они бывают ещё в форм-факторе светодиодных лент или различных модулей для уличного монтажа. С точки зрения электроники и программирования ничего не меняется. Оформляйте ёлку и интерьер так, как посчитаете нужным. Главное, чтобы было праздничное новогоднее настроение!
Планирую купить+81Добавить в избранноеОбзор понравился+58
+111
У меня все гирлянды не покупные, а самодельные.
И без п.18, даже скрытого :)
Это выгодно меня отличает :)
Да и обзоры не столько про гирлянды, сколько про рукоблудие. Если хоть у одного мальчишки зажгутся глаза, если хоть кому-то обзоры помогут сделать первые шаги в электронике — считаю, что тратил время на написание не зря.
Ну, как говорится: «Сам себя не похвалишь — и ходишь, как обоср… й!» ;) Это шутка такая.
Не совсем понятно (совсем не понятно), как в этой гирлянде и подобных выполняется адресация модулей? Они сами как-то нумеруются после подачи питания? Или их адреса прошиваются на заводе? А как тогда делаются урезания и наращивания этих гирлянд/лент?
Всё проще.
Из контроллера выталкивается значение RGB. Его принимает ближайший модуль.
Если придёт ещё одно значение, то модуль вытолкнет дальше предыдущее и подхватит только что пришедшее. И так далее по цепочке. То есть, вытолкав 50 значений, мы засветим всю гирлянду.
Ардуина в данной конструкции постоянно отправляет в гирлянду пачки по 50 значений RGB. А вот сами значения в этих пачках — такие, какие ей нужно.
Урезать гирлянду можно физически. Просто отрезав кусок. Тогда надо будет выталкивать в гирлянду меньше значений. Столько, сколько осталось модулей в цепочке.
Наращиваются они тоже легко и просто. На конце гирлянды есть разъём, который соответствует тому, который установлен на начале гирлянды. Гирлянды собираются «паровозиком». Ну или пайку никто не отменял.
Тогда надо будет выталкивать больше значений. И позаботиться о мощности источника питания.
В скетче в третьей строчке есть константа NUM_LEDS. Сейчас её значение 50. При изменении числа модулей в гирлянде, надо поменять её значение.
Спасибо! Теперь ясно. Но не совсем. ;) Получается, что если надо изменить режим только одного модуля, то всё равно придётся пропихивать столько значений, сколько модулей в гирлянде? При длинной гирлянде/ленте и не шибко быстром контроллере будет то ещё мельтешение, IMHO… :/
Обновление отображаемого цвета происходит только в конце цикла заливки. То есть никакого мельтешения там нет — прошла заливка всей цепочки — все светодиоды переключились на новые значения яркости.
Светики загораются последовательно, взял свои три байта R-G-B, остальное передал дальше. Так как эти три байта передаются-принимаются за время около 30 мкс, то забивка 50 светиков происходит за время около 1.5 мс. Вряд-ли глазом заметить. Запаздывание становится заметным при цепочке более 500 светодиодов. Поэтому производители контроллеров рекомендуют при большом количестве пикселей распределять общее количество по разным каналам.
Т.е. просто выкусывает первый кусок из стека данных, а остальное отправляет дальше. Тогда получается там или определенная комбинация означающая начало данных? В ломак качать библу.
Там не только о мощности источника при наращивании надо заботится. А еще и о падении напряжения на проводах. желательно, вторую гирлянду подключать к первой с НЕЗАВИСИМЫМ питанием, т.е. вторая лента должна питаться от другого источника, если планируется зажигать одновременно больше половины диодов.
Я, повторюсь, всячески советую переходник сразу с пином DTR. (не просто шестипиновый, а именно с DTR).
Это сильно облегчает процесс заливки, поскольку не приходится дёргать ресетом вручную.
У WS2801 не три, а четыре провода. Появляется ещё и Clock_Pin (от него в скетче остался рудимент).
UCS1903 и WS2811, насколько знаю, ничем не отличаются. Аналоги.
Где-то читал, что у одних значения цвета по шине передаются как «сначала зелёный, потом красный и синий», а у других как «сначала красный, потом зелёный и синий». Но ссылки не приведу. Да и в данной конструкции это вообще не важно, поскольку волны всё равно разноцветные и каков будет очередной цвет — безразлично.
Сомневаюсь, что это подойдет для детского творчества.
разве что дитю лет 15, ну — хотя бы 13.
Хотя, может быть, это я отстал от жизни.
Автору, конечно, плюс за обзор и маленькое замечание: вот так американские шпиёны и палятся. Русский человек за полчаса до нового года не будет паять — он будет занят другим, тоже на букву п :)
Спасибо за добрые слова.
Нет, таких не встречал. Тут и диаметр-то нестандартный — 8мм. Если только взять силиконовые трубки такого диаметра (продаются в строительных маркетах и магазинах аквариумистики), нарезать отрезками, надеть на светодиоды и «распушить» вдоль с помощью лезвия/ножа. Ну и подклеить прозрачным строительным силиконовым герметиком.
это будет фиговый рандом, с очень высокой степенью корреляции. Лучше уж псевдорандом, который на 33 битах повторяется через каждые 4 млрд бит :) который уже можно инициализировать на основе фотодатчика в начале работы…
Есть библиотека FastLED, использовал ее для анимции ленты на WS диодах. Сильно упрощает работу по формированию и посылке пакетов, тем более для той ленты надо отдельно начальный кадровый бит еще слать…
за рукоблудство +++++. но использовать ардуино(или как его там) для гирлянды? скоро будет планшет или смарт… и гирлянда потянет ценой на телевизор… :))
Там в каждой свечке микроконтроллер (расшифровывает посылки и зажигает светодиод). Только они маломощные — нужен ещё микроконтроллер сценариев, это нетипичная задача для планшета
Это очень правильная гирлянда, а если к примеру ашановскую на новый год младенец обслюнявит, есть любители на улице перед магазином гирлянды на 220в вешать.
Для детского творчества следует выбирать гирлянды полностью гальванически развязанные от сети и с низковольным питанием.
Это гирлянда полностью электро- и пожаробезопасна. Эту гирлянду, равно как и гирлянду из моего предыдущего обзора, можно смело помещать на ёлку, которую потом будут обливать шампанским, обсыпать конфетти, грызть собаки, ронять кошки и т.д., включая сон под ней отдельных гостей.
я не в обиду. плюсы везде понаставил. я понять хочу- смысл наворачивать управление? а «отдельные» гости могут и на розетку помочится. за то протрезвеют быстро. собаки (мои) к мигалкам инфантильны. коты, правда, «дождиком» " ходят" пару дней, но, говорят- так йоги чистятся… :))
Давно вынашиваю идею сделать умную подсветку потолка — к примеру с постепенным увеличением яркости подсветки вместо будильника (плавный рабочего дня, хе-хе).
Не вижу проблем. Задача исключительно для ардуины.
Я делал астротаймер (и писал когда-то тут в комментах про него).
Для расчётов нужно точную дату-время и координаты вашей комнаты.
Координаты местности можно вписать один раз (если девайс стационарный). Время можно брать из интернета.
Я поступил проще в своей конструкции: и время и позицию беру по GPS, т.е. вообще никаких установок у таймера. Коробочка сама разберётся, где она находится, сколько время и когда тут закат-восход.
А уж подсветкой потолка рулить — плёвое дело, поделить ленту на сегменты (чтобы «солнце» вставало с какой-то определённой стороны комнаты) и ключами IRFZ какими-нть шимить прямо с ног ардуины.
Эти светодиоды не подойдут для Вашего случая. Яркость у них управляется ШИМ, т.е. они мигают. Боковым зрением хорошо заметно.
з.ы. Это ответ тов. yushkin
Dimon_ скажи пожалуйста, а как быть с такими диодами. у меня дома валяются, а как их заставить работать не знаю. у них 4 провода. можно ли их по твоей схеме как то подключить?
Вот именно этого коммента я и ждал!
Спасибо вам за него.
Это лучшее подтверждение того, что я трудился не зря.
Всё получится, это правда не сложно и очень интересно!
Плюсанул обзор, нравится такое рукоблудие. Когда нам было по 12-13 лет, мы тоже оживляли гирлянды. В разрыв гирлянды ставили стартер от лампы дневного света, стыренный в школе, и конденсатор параллельно ему.
А видео работы есть?
Просто таких контроллеров полно на али, но большинство режимов у них — вырвиглазные мерцания и мигания. А зачем контроллер за 22$, который не нравится, если ардуина стоит 1,5$-1,7$, при том, что адаптер питания нужен и там и там?
Хотя для кого-то отсутствие даже такой возни, как заливка готового скетча, — это однозначный плюс. На вкус и цвет, как известно.
Видео попробую поискать дома и выложу здесь. Из 130 режимов использую 5-7, они действительно красивые и не надоедают, другие режимы для развлечения детей! Благодаря меняющейся скорости можно избежать «вырви глаз» практически на любом режиме, хотя большинство режимов скучные и на ёлке смотрятся не очень.
Только недавно купил пару таких же гирлянд, и тут Ваш обзор! Как всё во время =)
А чем вы их питаете? Я так посчитал, что 50шт на полной мощности нужно 3А. Сам подключу через БП от ПК, но может быть есть более изящные решения (которые можно найти дома, зарядку от телефона, например).
Тоже прикольно.
Но есть огромный задел на будущее. Надо бы пульт (ИК, блютус, вайфай, 443Mhz). Можно экзотику типа УЗ-сонара и управления жестами, включая определения присутствия и приближения, можно бы побольше цветовых эффектов.
Словом, хорошо, что порт для прошивки оставили доступным. :)
Расширенно ответил в личку. Но отвечу и тут — для тех, кто сюда придёт с поисковика.
На рисунке по приведённой вами ссылке, пин 2 — это серый прямоугольник с цифрой 2. Если смотреть на левый ряд и отсчитывать сверху вниз, то пятый по счёту. Сразу за пинами «Reset» и «GND».
Для тех, кто как и я впервые сталкивается с такими продвинутыми гирляндами — имеет значение с какой стороны подключаться к белому проводу. Мне пришлось переделывать, так как изначально не заработало…
Скажите, у Вас сразу после включения, без сигналов на линии данных (т. е. можно включить только +5V и землю), диоды светят голубым? У меня так (тоже UCS1903), как следствие — не сделать плавное зажигание после подачи питания.
Да. Всё именно так. При подаче питающего напряжения, все модули гирлянды по умолчанию начинают светить синим. И так продолжается до тех пор, пока в ардуине не отработает загрузчик, и в гирлянду по шине управления не начнут поступать полезные сигналы. Т.е. первые секунды после включения.
Ничего с этим не поделаешь, так устроены модули.
Путь решения прост. Подавать питание гирлянды после инициализации ардуины. +5вольт на гирлянду подавайте через p-канальный (чтобы сам не открылся при включении) mosfet или через нормально разомкнутые контакты реле. А уж этот ключ открывайте отдельной ногой ардуины уже в конце процедуры Setup, когда всё будет подготовлено к отправке полезных сигналов.
Да я уже про это думал. Но это ещё +1 ключ, управление, и вспышка всё равно будет, пока в очередном цикле не погасятся диоды. Хотя… Если питание отключать не UCS1903, а самих диодов (например, «дискретных» 12V модулей), то это будет работать.
Другой вариант — убрать загрузчик, и гасить диоды сразу после инициализации контроллера. Но вспыхивает всё равно…
Надо посмотреть, как это в родных 2811/2812…
Хотел «по-быстрому» сварганить подсветку кое-куда…
И в этом году обзор пригодился! Спасибо, делал всё впервые, всё получилось, обжегся только на начальном светодиоде, сначала цеплял к гирлянде с хвоста и ничего не работало, перекинул в начало и все забегало. С НГ 2018!
Прошу прощения за столь запоздалый комент. Почему то у меня с вашим скетчем не пошло… А вот другой на библиотеке адафрут работает. Раз пять пробовал. Так и не понял почему не идет…
Не могу понять что может быть не так… Прошиваю — мееедленно медлееено бегут несколько огоньков с замедлением…
Причем, когда шью — чет не мограют rx и tx. А когда другой скетч заливаю — моргают. Так и не победил. И библиотеки руками подключил — инсталлил.
Черкните что нибудь — что я мог упустить? У меня НАНО.
Выше :)
Да, можно убрать, можно оставить — компилятор сам отбросит то, к чему нет обращений в скетче.
Меня спрашивали владельцы четырёхпроводных лент, в этом случае им было бы нужно.
Добрый вечер. Сегодня собрал гирлянду из 200 пикселей на ic1903 к контроллеру hc03(что-то похожее на т100) светятся не все пиксели. В чем может быть дело? (Контроллер находится на удалении 3 метров от начала гирлянды.)И нужно ли gnd подключать к контроллеру или достаточно к V-. И ещё один вопрос гирлянда соединяются классически по 50 штук только штекер предусмотрен 2х пиновый для gnd и data и выведены по два провода от каждого конца для +и — их соединяю просто скручивая и пропаивая нужно на них подать питание дополнительно с блока питания?
Питающие провода от каждого соединения подсоединяете к источнику питания. Это получится пять точек (с обоих концов и из средних соединений). Контроллер подключаете тоже двумя проводами к блоку питания.
Данные (data, gnd) к клеммам контроллера.
И учитывайте, что ваш блок питания должен отдавать ток минимум 10 ампер. Но лучше, не менее 12, чтобы был минимальный запас. Если у вас не так, то даже не тратьте аремя, будут глюки.
Спасибо большое. Всё заработало. И у меня была ошибка в том что я соединял DATA обычным электрическим проводом сечением 0,75, видимо в нём большое затухание. У меня светодиоды разбиты на 3 группы и в каждой разное количество поэтому приходилось пробрасывать от конца 1 группы ко второй и от 2 к 3 группе пикселей. Применил витую пару и никаких проблем.
Теперь другая проблема все пиксели подключены к контролеру HC003 он такой же как HC008 (он есть в комментариях выше) только добавлена SD карта. При создании проекта в Led Edit этого контроллера нет. Может кто использовал этот контроллер и знает какую модель можно выбрать контроллера из имеющихся в программе что бы заработал собственный проект. Пиксели под управлением 1903?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
И без п.18, даже скрытого :)
Это выгодно меня отличает :)
Да и обзоры не столько про гирлянды, сколько про рукоблудие. Если хоть у одного мальчишки зажгутся глаза, если хоть кому-то обзоры помогут сделать первые шаги в электронике — считаю, что тратил время на написание не зря.
А кто сказал, что «столько» — это всё у меня светит? Раздал; пусть другим тоже будет красиво.
Не совсем понятно (совсем не понятно), как в этой гирлянде и подобных выполняется адресация модулей? Они сами как-то нумеруются после подачи питания? Или их адреса прошиваются на заводе? А как тогда делаются урезания и наращивания этих гирлянд/лент?
Из контроллера выталкивается значение RGB. Его принимает ближайший модуль.
Если придёт ещё одно значение, то модуль вытолкнет дальше предыдущее и подхватит только что пришедшее. И так далее по цепочке. То есть, вытолкав 50 значений, мы засветим всю гирлянду.
Ардуина в данной конструкции постоянно отправляет в гирлянду пачки по 50 значений RGB. А вот сами значения в этих пачках — такие, какие ей нужно.
Урезать гирлянду можно физически. Просто отрезав кусок. Тогда надо будет выталкивать в гирлянду меньше значений. Столько, сколько осталось модулей в цепочке.
Наращиваются они тоже легко и просто. На конце гирлянды есть разъём, который соответствует тому, который установлен на начале гирлянды. Гирлянды собираются «паровозиком». Ну или пайку никто не отменял.
Тогда надо будет выталкивать больше значений. И позаботиться о мощности источника питания.
В скетче в третьей строчке есть константа NUM_LEDS. Сейчас её значение 50. При изменении числа модулей в гирлянде, надо поменять её значение.
Для гирлянды разумной длины запас ещё есть.
Спасибо за обзор! Гирлянда работает без Clock Pin'а? У вас в скетче он указан 13.
Без клока. В гирлянде всего три провода, два из которых питание.
По переходнику.
Я, повторюсь, всячески советую переходник сразу с пином DTR. (не просто шестипиновый, а именно с DTR).
Это сильно облегчает процесс заливки, поскольку не приходится дёргать ресетом вручную.
У меня такой:
https://aliexpress.com/item/item/CP2102-Module-With-DTR-Pin-STC-Downloader-Module-USB-to-TTL-FZ0910/1838489486.html
Я покупал как-то для перепрошивки АЙМАКСА.
UCS1903 и WS2811, насколько знаю, ничем не отличаются. Аналоги.
Где-то читал, что у одних значения цвета по шине передаются как «сначала зелёный, потом красный и синий», а у других как «сначала красный, потом зелёный и синий». Но ссылки не приведу. Да и в данной конструкции это вообще не важно, поскольку волны всё равно разноцветные и каков будет очередной цвет — безразлично.
разве что дитю лет 15, ну — хотя бы 13.
Хотя, может быть, это я отстал от жизни.
Автору, конечно, плюс за обзор и маленькое замечание: вот так американские шпиёны и палятся.
Русский человек за полчаса до нового года не будет паять — он будет занят другим, тоже на букву п :)
Салаты режутся начиная с обеда. А у меня было «полчаса свободного времени». :)
P.S. А есть ли такие светодиоды, но с световодными пучками? Очень нравятся гирлянды такого типа.
Нет, таких не встречал. Тут и диаметр-то нестандартный — 8мм. Если только взять силиконовые трубки такого диаметра (продаются в строительных маркетах и магазинах аквариумистики), нарезать отрезками, надеть на светодиоды и «распушить» вдоль с помощью лезвия/ножа. Ну и подклеить прозрачным строительным силиконовым герметиком.
заказываю гирлянду, но подключу я её, навевeрное, к завалявшемуся ESP-12ю
По вай фай будем режимы менять и прочее.
Какой «телевизор»?
Ардуина — это триста грамм докторской колбасы. Вы оливье на бóльшую сумму съедите :)
ххххлоб разбить. у меня младенцы по стене- потолку не ползают. :))Для детского творчества следует выбирать гирлянды полностью гальванически развязанные от сети и с низковольным питанием.
Это гирлянда полностью электро- и пожаробезопасна. Эту гирлянду, равно как и гирлянду из моего предыдущего обзора, можно смело помещать на ёлку, которую потом будут обливать шампанским, обсыпать конфетти, грызть собаки, ронять кошки и т.д., включая сон под ней отдельных гостей.
Я делал астротаймер (и писал когда-то тут в комментах про него).
Для расчётов нужно точную дату-время и координаты вашей комнаты.
Координаты местности можно вписать один раз (если девайс стационарный). Время можно брать из интернета.
Я поступил проще в своей конструкции: и время и позицию беру по GPS, т.е. вообще никаких установок у таймера. Коробочка сама разберётся, где она находится, сколько время и когда тут закат-восход.
А уж подсветкой потолка рулить — плёвое дело, поделить ленту на сегменты (чтобы «солнце» вставало с какой-то определённой стороны комнаты) и ключами IRFZ какими-нть шимить прямо с ног ардуины.
з.ы. Это ответ тов. yushkin
Красный у вас пойдёт на +5, чёрный на Gnd. Зелёный на пин 2, синий на пин 13.
Чуть-чуть скетч доработать надо.
Вместо строчки
надо написать
Вот и вся переделка.
Уверен, что всё заработает.
Спасибо вам за него.
Это лучшее подтверждение того, что я трудился не зря.
Всё получится, это правда не сложно и очень интересно!
+2
Просто таких контроллеров полно на али, но большинство режимов у них — вырвиглазные мерцания и мигания. А зачем контроллер за 22$, который не нравится, если ардуина стоит 1,5$-1,7$, при том, что адаптер питания нужен и там и там?
Хотя для кого-то отсутствие даже такой возни, как заливка готового скетча, — это однозначный плюс. На вкус и цвет, как известно.
А чем вы их питаете? Я так посчитал, что 50шт на полной мощности нужно 3А. Сам подключу через БП от ПК, но может быть есть более изящные решения (которые можно найти дома, зарядку от телефона, например).
Сразу после спойлера про штангенциркуль :)
Но есть огромный задел на будущее. Надо бы пульт (ИК, блютус, вайфай, 443Mhz). Можно экзотику типа УЗ-сонара и управления жестами, включая определения присутствия и приближения, можно бы побольше цветовых эффектов.
Словом, хорошо, что порт для прошивки оставили доступным. :)
Pin 2 на схеме www.parkflyer.ru/static/user_files/2015/11/10/nano.1449578274883.1449758472290.jpg какому выводу соотвествует?
На рисунке по приведённой вами ссылке, пин 2 — это серый прямоугольник с цифрой 2. Если смотреть на левый ряд и отсчитывать сверху вниз, то пятый по счёту. Сразу за пинами «Reset» и «GND».
И ещё проблема: сразу после включения, без сигналов на линии данных, диоды светят голубым (тоже UCS1903).
Скажите, у Вас сразу после включения, без сигналов на линии данных (т. е. можно включить только +5V и землю), диоды светят голубым? У меня так (тоже UCS1903), как следствие — не сделать плавное зажигание после подачи питания.
Ничего с этим не поделаешь, так устроены модули.
Путь решения прост. Подавать питание гирлянды после инициализации ардуины. +5вольт на гирлянду подавайте через p-канальный (чтобы сам не открылся при включении) mosfet или через нормально разомкнутые контакты реле. А уж этот ключ открывайте отдельной ногой ардуины уже в конце процедуры Setup, когда всё будет подготовлено к отправке полезных сигналов.
Другой вариант — убрать загрузчик, и гасить диоды сразу после инициализации контроллера. Но вспыхивает всё равно…
Надо посмотреть, как это в родных 2811/2812…
Хотел «по-быстрому» сварганить подсветку кое-куда…
Век живи — век учись и не боись )))
Не могу понять что может быть не так… Прошиваю — мееедленно медлееено бегут несколько огоньков с замедлением…
Причем, когда шью — чет не мограют rx и tx. А когда другой скетч заливаю — моргают. Так и не победил. И библиотеки руками подключил — инсталлил.
Черкните что нибудь — что я мог упустить? У меня НАНО.
В тексте обзора я это поправил…
Да, можно убрать, можно оставить — компилятор сам отбросит то, к чему нет обращений в скетче.
Меня спрашивали владельцы четырёхпроводных лент, в этом случае им было бы нужно.
В тексте обзора я это поправил…» и заработало.
Потребление было всего 0.5А максимум пока проверял.
Ардуино хватило даже Atmega 168.
Данные (data, gnd) к клеммам контроллера.
И учитывайте, что ваш блок питания должен отдавать ток минимум 10 ампер. Но лучше, не менее 12, чтобы был минимальный запас. Если у вас не так, то даже не тратьте аремя, будут глюки.
Теперь другая проблема все пиксели подключены к контролеру HC003 он такой же как HC008 (он есть в комментариях выше) только добавлена SD карта. При создании проекта в Led Edit этого контроллера нет. Может кто использовал этот контроллер и знает какую модель можно выбрать контроллера из имеющихся в программе что бы заработал собственный проект. Пиксели под управлением 1903?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.