Сияй
Решил сфотографировать гирлянду в руках, вроде норм :D
Решил сфотографировать гирлянду в руках, вроде норм :D
Фотографии сделаны сегодня утром и вчера вечером. Только учусь ловить интересные моменты.😁 Все кадры без обработки.
ШАПКА
Есть замечательная программа jinx. Вот сайт.
Мощный, удобный и простой в освоении инструмент.
В самом начале знакомства с этой програмой я управлял своей гирляндой онлайн. То есть пока включен комп и работает эта программма работает и гирлянда. Меня это не устраивало.
Мне нужно было
1. Работа гирлянды без компьютера.
2.Возможность самостоятельно ,,изготавливать,, эффекты, желательно на ,,коленке,,.
3. Простота и надежность.
Далее я расскажу, на какие грабли я наступал, дабы сэкономить время тем, кто захочет повторить.
А собрал все это я здесь для того, чтобы на частые вопросы,как я это сделал и как повторить у меня была возможность послать человека не далеко а по ссылке.
Сразу поясню человеку с ником ru.lurk, Гайвер Бог, я в курсе, но большинство людей не в состоянии по быстренькому накидать код или переписать скетч, чтобы изменить картинку, которую воспроизводит гирлянда этого конкретного человека. Я так же не обладаю знаниями, достаточными для внесения мгновенных правок в эффект, который по тем или иным причинам мне не понравился. Я же предлагаю работоспособный, проверенный в железе вариант, повторить и освоить который сможет подавляющее большинство людей.
И, вам ли, ru.lurk, не знать, что в большинстве проектов Гайвера такая жуткая каша, столько ненужного, что копировать всё это нет никакого смысла.
Безусловно я именно у Гайвера впервые увидел такую гирлянду, но сделал ту, которой и расскажу здесь. И, надеюсь облегчу кому то жизнь.
Повторю. Приоритетом для меня была возможность воспроизведения моей гирляндой файлов созданных в программе jinx. Гайвер не знает о такой программе, наверное.Функционал и возможности которой по удобству использования и оперативного внесения изменений в картинку не идут ни в какое сравнение с кашей Гайвера, разобраться в которой способен далеко не всякий.
Для сектантов Гайвера есть секта Гайвера.
Для простых людей, которым нужна красивая, оригинальная, а не такая же как у всех картинка есть другие более простые варианты. Об одном из них я и говорю.
По просьбам многих людей делюсь опытом создания великолепной гирлянды на адресных диодах.
Сразу хочу подчеркнуть, что я лично ничего не придумал, за исключением способа создания самих эффектов для гирлянды,
но и в этом случае я использовал уже готовые программы, и всего лишь сообразил, как их использовать для получения
нужного мне результата.
Но много времени я потратил на сбор и анализ информации из разных источников. Так, что если весь ,,опыт,, будет
находиться в одном месте, вы сможете собрать свой вариант гораздо быстрее.
Итак, толчком послужило вот этовидео - https://www.youtube.com/watch?v=MgRmiXxYL5g , спасибо Алексу Гайверу за его творчество.
Но количество эффектов и ограниченный функционал ардуино нано заставили искать более интересный вариант.
В итоге поиски привели на этот замечательный форум - https://www.asidneff.ru/index.php , огромное спасибо его создателю,
я получил там огромное количество подсказок.
В конце концов на этом ресурсе - https://forum.flprog.ru/index.php?sid=7d39fe1f17f6d376109268... , я нашел всё, что меня полностью устроило.
Огромное спасибо человеку с ником aidar_i . Он проделал титаническую работу, чтобы нам с вами жилось легче!
Мои ошибки.
Первую ошибку я совершил в процессе заказа светодиодов. Я заказал такие, и понял разницу с этими уже когда получил первые. Пришлось перезаказывать и ждать еще очень долгло.
Поясняю - WS2811(на фото внизу) расчитаны на питание 12 вольт,они дешевле чем WS2812 и разрезать их можно лишь на кластеры, минимум по три штуки. На фото хорошо видно, что линии отреза проходят через каждые три светодиода. Они великолепно управляются, но светят не по одному, а минимум по три штуки подряд. Пришлось заказывать WS2812(на фото сверху) их можно нарезать на любые отрезки начиная с 1шт. и напряжение питания для них 5 вольт. Именно из них я и изготовил свою гирляндую Но это не самый правильный и удобный вариант.
Рекомендую использовать вот такие!!!!!!!!!
Ссылка на эти модули для примера. Эти модули монтировать гораздо удобнее и они намного надежнее разрезанной ленты. Лента в процессе монтажа, пайки и дальнейшей эксплуатации весьма подвержена повреждениям. Уж слишком она тонкая и ,,нежная,,.
Не повторяйте этой ошибки , не ведитесь на меньшую стоимость ленты, покупайте такие модули!!!!!
Для удобства монтажа я сделал вот такой шаблон.
Вот так, под каждую скобу помещал отрезанные диоды
А далее дело техники. Плюс такого способа в том, что в любой момент монтаж можно отложить и возобновить работу в любое время. Диоды остаются зафиксированными и с мест не сдвигаются.
Еще один важный момент это сами провода.
Сначала я попробовал короткие отрезки, которые соответствовали расстоянию между двумя соседними диодами, но пришел к выводу, что на вехний диод будет приходиться весь вес всей конструкции, а лента не выглядит прочной, тогда я решил, что провода питания, а это наружние провода, будут сплошные. То есть я разметил и снял изоляцию в тех местах, где осуществлялась пайка. При этом весь вес конструкции переносился именно на провода, что более надежно. А провода по которым по гирлянде проходит управляющий сигнал, я сделал короткими.
Надеюсь на фото хорошо видно, что я имею ввиду.
И после того как я спаял несколько полосок будущей гирлянды, обнаружился очень досадный момент.
Обведенные красным контакты светодиодов, иногда сопрприкасались с оголенной часью проводов и в результате замыкания, работать матрица переставала. После обнаружения этой проблемы, я стал надевать на оголенную часть провода термоусадку.
Надеюсь теперь у вас не будет вопросов, почему эти модули гораздо удобнее.
После того, как я спаял отдельные ,,нитки,, я собрал гирлянду в два модуля. Один 9х17 второй 7х17. Такие размеры получились из за размеров половинок окна.
Да, совсем забыл сказать, что расстояние между пикселями я сделал 65 миллиметров. Визуально такое решение полностью себя оправдало. Все эффекты с улицы смотрятся потрясающе.
Итого на выходе я получил вертикальную змейку 16 по горизонтали, 17 по вертикали и с началом в правом нижнем углу.
Вот ссылка на страницу А.Гайвера, где он подробно рассказывает о типах матриц и способах подключения.
Далее используя кабельканал 10мм я собрал готовые нитки в матрицу.
Думаю с этим все понятно.
Питание (от компьютерного блока питания) я пустил только снизу.
Фото с сайта Гайвера(Бога). Принцип подключения точно такой же. Только на картинке у Гайвера(Бога) матрица повернута 90 градусов. У меня питание идет снизу.
надеюсь вам понятно. Если нет - спрашивайте.
Контроллер.
Я использовал вот такой модульNodeMcu. Вот такой картридер .
Подключал по такой схеме
Здесь картридер для микро сд карт, но надписи полностью соответствуют.
я попробовали с тем, и с другим, все работает. Внимательно смотрите на надписи на плате и подключайте согласно схеме!
Далее скетч!
#include <FastLED.h>
#include <SPI.h>
#include <SD.h>
#define NUM_LEDS 272 // LED number
#define DATA_PIN D1 // your data arduino pin
#define CHIPSET WS2812B // your LED chip type
#define COLOR_ORDER GRB
#define BRIGHTNESS 50
int count_files = 20; // Количество файлов
File fxdata;
CRGB leds[NUM_LEDS];
int val;
void setup()
{
FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness(BRIGHTNESS);
for(int y = 0 ; y < NUM_LEDS ; y++)
{
leds[y] = CRGB::Black; // set all leds to black during setup
}
FastLED.show();
pinMode(10, OUTPUT); // CS/SS pin as output for SD library to work.
digitalWrite(10, HIGH); // workaround for sdcard failed error...
if (!SD.begin(4))
{
Serial.println("sdcard initialization failed!");
return;
}
Serial.println("sdcard initialization done.");
// test file open
fxdata = SD.open("1.out"); // read only
if (fxdata)
{
Serial.println("file open ok");
fxdata.close();
}
}
void loop()
{
for(val = 1; val <= count_files; val++)
{
fxdata = SD.open(String(val)+".out"); // read only
if (fxdata)
{
Serial.println("file open ok");
}
while (fxdata.available())
{
Sortled();
FastLED.show();
delay(50); // set the speed of the animation. 20 is appx ~ 500k bauds
}
// close the file in order to prevent hanging IO or similar throughout time
fxdata.close();
}
}
int Sortled () {
CRGB templeds[NUM_LEDS];
const uint32_t XYTable[] = {
255, 254, 221, 220, 187, 186, 153, 152, 119, 118, 85, 84, 51, 50, 17, 16,
256, 253, 222, 219, 188, 185, 154, 151, 120, 117, 86, 83, 52, 49, 18, 15,
257, 252, 223, 218, 189, 184, 155, 150, 121, 116, 87, 82, 53, 48, 19, 14,
258, 251, 224, 217, 190, 183, 156, 149, 122, 115, 88, 81, 54, 47, 20, 13,
259, 250, 225, 216, 191, 182, 157, 148, 123, 114, 89, 80, 55, 46, 21, 12,
260, 249, 226, 215, 192, 181, 158, 147, 124, 113, 90, 79, 56, 45, 22, 11,
261, 248, 227, 214, 193, 180, 159, 146, 125, 112, 91, 78, 57, 44, 23, 10,
262, 247, 228, 213, 194, 179, 160, 145, 126, 111, 92, 77, 58, 43, 24, 9,
263, 246, 229, 212, 195, 178, 161, 144, 127, 110, 93, 76, 59, 42, 25, 8,
264, 245, 230, 211, 196, 177, 162, 143, 128, 109, 94, 75, 60, 41, 26, 7,
265, 244, 231, 210, 197, 176, 163, 142, 129, 108, 95, 74, 61, 40, 27, 6,
266, 243, 232, 209, 198, 175, 164, 141, 130, 107, 96, 73, 62, 39, 28, 5,
267, 242, 233, 208, 199, 174, 165, 140, 131, 106, 97, 72, 63, 38, 29, 4,
268, 241, 234, 207, 200, 173, 166, 139, 132, 105, 98, 71, 64, 37, 30, 3,
269, 240, 235, 206, 201, 172, 167, 138, 133, 104, 99, 70, 65, 36, 31, 2,
270, 239, 236, 205, 202, 171, 168, 137, 134, 103, 100, 69, 66, 35, 32, 1,
271, 238, 237, 204, 203, 170, 169, 136, 135, 102, 101, 68, 67, 34, 33, 0
};
fxdata.readBytes((char*)templeds, NUM_LEDS*3);
for (int k=0; k < NUM_LEDS; k++) {
leds[XYTable[k]] = templeds[k];
}
}
Здесь необходимо настроить под свою гирлянду.
И меняем массив на соответствующий вашей матрице
Делается это при помощи специальной программы.
Качайте .
Выставьте размер по вертикали и горизонтали соответствующие вашей реальной матрице.
Посленажатия кнопки ниже появится кусок скетча, сгенерированного под ваши конкретные параметры.
необходимо выделить из него массив с цифрами, и вставить в наш скетч.
Собственно всё!
Скетч готов к прошивке!
Для успешной прошивки я рекомендую удалить на время все библиотеки, которые находятся в соответствующей папке arduino ide. Скопируйте все содержимое папки libraries в другое место, а в освободившиюся папку вставьте содержимое этого архива . Это гарантировано избавит вас от проблем при компиляции.
О процессе прошивки я подробно рассказывать не буду, на сайте Бога об этом есть всё!
Отдадим ему должное и порадуем ru.lurk .
И схема
Со скетчем наверное всё. Если что то непонятно спрашивайте. Не стесняйтесь ходить по ссылкам. Я всю информацию нашел именно там. Завтра запишу видео о процессе создания эффектов и записи их на карту памяти. Там все достаточно просто, но мне по началу очень не хватало такого видео пришлось самостоятельно разбираться, а ваше время я постараюсь сэкономить.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Хотела нарисовать этот арт еще до начала нового года, но закончила только сегодня ночью
Теперь у меня есть достижение, которым не похвастаешься - рисовала один рисунок целый год))