RSS блога
Подписка
Очередная новогодняя снежинка на WS2812B
- Цена: $14.32
- Перейти в магазин
Ну вот, приближается Новый год, а значит и наступает пора гирлянд и световых эффектов.
Покопавшись по закромам нашёл метр светодиодной ленточки на WS2812B и россыпь Arduino Nano. Погуглив решил сделать из них красивую снежинку.
Что из этого получилось — под cut'ом
Идея проекта взята отсюда:
mysku.club/blog/aliexpress/36695.html
Заниматься лазерной резкой мне было лень, зато под рукой был 3D принтер с полем печати 200х200. С небольшим запасом нарисовал снежинку размером 180х180 и напечатал. Нижняя часть — обычный белый (нейтральный) пластик, верхняя часть — прозрачный ABS.
Далее много фоток процесса:
Ну что же, всё железо собрано в кучу, переходим к программированию. Изначально я хотел использовать оригинальный скетч, но у автора использовалась ленточка с 60 LED/метр, у меня же оказалась 144 LED/метр, что дало 10 светодиодов на луч. И хотя у автора заявлялась универсальность скетча для любого размера — на деле в теле кода оказалось много всяких констант, жёстко привязанных к размеру луча.
Кроме того, поиграв с эффектами — мне очень не понравился «строб» при эффекте движения — бьёт по глазам.
Решил всё переписать и переписал :)
Что нового:
Как выглядят эффекты:
ShowMode1:
ShowMode2:
ShowMode3:
ShowMode4:
ShowMode5:
Скетч и STL файлы для принтера сложены сюда:
drive.google.com/open?id=0B4WG5OG778SzM3lJLW9fVmZGYXM
Печатаю слоем 0.2, заполнение 15%, без поддержек, с охлаждением. Перед печатью делаю масштабирование 101% (для компенсации усадки при охлаждении).
С НОВЫМ ГОДОМ!
Покопавшись по закромам нашёл метр светодиодной ленточки на WS2812B и россыпь Arduino Nano. Погуглив решил сделать из них красивую снежинку.
Что из этого получилось — под cut'ом
Идея проекта взята отсюда:
mysku.club/blog/aliexpress/36695.html
Заниматься лазерной резкой мне было лень, зато под рукой был 3D принтер с полем печати 200х200. С небольшим запасом нарисовал снежинку размером 180х180 и напечатал. Нижняя часть — обычный белый (нейтральный) пластик, верхняя часть — прозрачный ABS.
Далее много фоток процесса:
Много фоток
Получилось вот так. Нижняя часть:
Верхняя (рассеивающяя) часть:
Режем ленту на кусочки по 10 светодиодов:
Наклеиваем на нижнюю часть и делаем разводку питания и управления:
В отличии от оригинала я не стал клеить контроллер прямо на снежинку — он у меня болтается отдельно в отдельном корпусе. Контроллер и снежинка соединяются 3-х проводным кусочком шлейфа. Ввод шлейфа в снежинку для прочности залит термоклеем, на контроллере шлейф притянут стяжкой на специальном выступе.
Собираем всё вместе:
Верхняя (рассеивающяя) часть:
Режем ленту на кусочки по 10 светодиодов:
Наклеиваем на нижнюю часть и делаем разводку питания и управления:
В отличии от оригинала я не стал клеить контроллер прямо на снежинку — он у меня болтается отдельно в отдельном корпусе. Контроллер и снежинка соединяются 3-х проводным кусочком шлейфа. Ввод шлейфа в снежинку для прочности залит термоклеем, на контроллере шлейф притянут стяжкой на специальном выступе.
Собираем всё вместе:
Ну что же, всё железо собрано в кучу, переходим к программированию. Изначально я хотел использовать оригинальный скетч, но у автора использовалась ленточка с 60 LED/метр, у меня же оказалась 144 LED/метр, что дало 10 светодиодов на луч. И хотя у автора заявлялась универсальность скетча для любого размера — на деле в теле кода оказалось много всяких констант, жёстко привязанных к размеру луча.
Кроме того, поиграв с эффектами — мне очень не понравился «строб» при эффекте движения — бьёт по глазам.
Решил всё переписать и переписал :)
Что нового:
- полное отсутствие констант в коде — должно работать с любым количеством светодиодов
- добавлена возможность регулировки яркости
- эффекты перемещения сделаны со сглаживанием, в результате частота обновления картинки 100Гц — полное отсутствие скачков яркости, заметных на глаз
- цвета генерируются случайно
- последовательность эффектов случайна, причём не может быть два раза подряд одного и того же эффекта
- постарался сделать код максимально читаемым
Как выглядят эффекты:
ShowMode1:
ShowMode2:
ShowMode3:
ShowMode4:
ShowMode5:
Скетч и STL файлы для принтера сложены сюда:
drive.google.com/open?id=0B4WG5OG778SzM3lJLW9fVmZGYXM
Печатаю слоем 0.2, заполнение 15%, без поддержек, с охлаждением. Перед печатью делаю масштабирование 101% (для компенсации усадки при охлаждении).
С НОВЫМ ГОДОМ!
Самые обсуждаемые обзоры
+76 |
3882
147
|
+57 |
4040
71
|
Приятно глянуть на прямые руки.
Пойду код курить)
Дело в том, что камера обычно настраивается по среднему, поэтому небольшое количество светодиодов в темноте на видео уходят в пересвет и все становятся белыми. Я специально подсвечивал снежинку во время съемки чтобы хоть как-то цвет было видно.
1. покажи как это в темноте выглядит!
2. видно светодиоды, слишком сильно. нужен нормальный матовый рассеиватель, а не сетка.
3. надо добавить в каждые 2 лучика отходящих от каждого из 6 лучей кусок ленты, чтоб одновременно свет бежал по 3 маленьким лучикам от (или к) центрального луча.
4. ну и вишенкой должны стать заглушки на шляпки винтов, раз принтер есть, то проблем не будет.
В таком виде как есть, линейки просто не сочетаются с снежинкой.
Сорь за критику, постарался конструктивно. А то затраченные силы превосходят результат, надо всего лишь «допилить» ;)
Upd. попробуй наклеить через белый (строительный) 2х сторонний скотч (я не знаю какого цвета клеевая основа на ленте, белый чтоб сливался) к рассеивателю снутри, чтоб светодиоды смотрели на то место, где сейчас наклеена лента. Если высота хотя бы 1.5см, то может даже получше смотреться будет. Хотя из за сетки по центру может быть темные полосы, но ты поробуй хоть с 1 лучем
2. Я пробовал — мне не понравилось. Как ни странно эффекты лучше «читаются» именно при ясно видимых светодиодах.
3. Лень :) Туда больше пары светиков не влезут, для основных эффектов их добавление не сильно изменит картинку.
4. В живую они совсем не бросаются в глаза. Поэтому можно, но лень :)
Я живу в Москве, не маленькая деревня. На заднице не сижу. Ныть не приучен. Есть авито. Есть Яндекс.
Я второй месяц не могу вырезать тонированное оргстекло на приборную панель. 15 см стёклышко. Либо «покупайте лист три метра, мельче не продаём», либо «меньше, чем за 5 тыщ ЧПУ даже не включим» — минимальный заказ.
Печать на 3D принтере — трёхграммовые деталюшки. Нет, управляющая программа от 500р, обработка эскиза от 500р, плюс материал, плюс работа станка.
Что это за мифы про добродетельных рекламщиков?
Ps. Да, в регионах конторы есть, и они действительно хотят работать. Но доставка в Москву всё сводит на нет.
и это не рекламщики
Ну вот, прямо пройти мимо охранника/ЧОПовца, да?
— Вы куда, молодой человек — мне в цех надо; где у вас тут цех, где ЧПУ?
И стоит, такой, мастер возле станка, работает — подхожу я, по-шпионски подмигнув, спрашиваю, не хочет ли он закалымить и где у них тут обрезки?
Я себе с трудом представляю такую картину :)
Возможно, тут действительно многое от географии зависит. Но в Москве я буду банально послан. Поэтому все реплики типа «да в любой рекламной конторе гору подарят забесплатно», на поверку, сводятся исключительно к «у меня есть знакомый рекламщик». Ну.., вот у меня лично такого нет.
Я их гружу своими идеями, из которых, они иногда что-то черпают для себя.
За это я вдоволь ковыряюсь в их мусорке и ухожу с довольно большими кусочками пластика. 200х200 вполне можно найти.
Или сразу договариваюсь по обрезке.
Лазерную резку у нас тоже можно найти без охранника, причем со свои материалом. Ограничение минимального заказа нет, но маленькие заказы можно ждать долго, пока у них совоболится станок от крупных
Мне сначала в одной конторе посчитали 600 руб\штука, в другой 400.
Случайно нашел контору acryplast.ru
В итоге мне в 420 руб обошлись 4 снежинки (105 штука). Делали при мне. Материал их.
Не подумайте, это не реклама. Просто те, кто ломит цены — офигели!
пс рязань
2. оторвать задницу от стула 2800)
Обыскался: отложилось в голове — "огурчиков малосольненьких не изволили спрашивать?"
всю книжку перечитать надо бы, конечно…
Начал искать — нашел оригинал.
И понял, что очень давно не перечитывал Гиляровского…
Меня интересует прежде всего возможность запитать десяток таких снежинок, и сделать, чтобы они вспыхивали белым цветом по очереди, либо цвет бежал по снежинкам. Например, сначала первая красным, затем вторая, а первая в это время оранжевым, затем третья красным, вторая оранжевым, первая — желтым, и т.п…
А почему 10 снежинок нельзя последовательно включить? До 1024 светодиодов можно.
Ваша же задача решается обычными RGB ленточками. Далее. Если нужно каждой снежинке задать свой цвет, то на 10 снежинок надо 30 PWM каналов. Сама по себе одна arduino столько не потянет. Здесь есть несколько возможных выходов. Самый простой — несколько arduino, синхронизирующих свои действия по некоему протоколу. Nano стоит копейки и имеет 6 PWM выходов — её хватит на пару звёзд. Плюс нужны будут драйвера для раскачки до 12В (питание ленточек). Второй вариант — специализированные внешние PWM экстендеры. Например — такие: www.adafruit.com/product/815
В принципе — adafruit'овская библиотека поддерживает и несколько выходов (Can I have multiple NeoPixel objects on different pins? Certainly! Each requires its own declaration with a unique name):
learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library
В случае использования Arduino в качестве контроллера — вообще не имеет значения — каждый сегмент висит на своём пине или в общей цепочке, так как adafruit библиотека просто не умеет параллельно выдавать сигнал на несколько пин. То есть каждый вызов strip.show() тупо забирает столько времени, сколько надо на «выдавливание» данных в строку. Реальный выигрыш по производительности можно получить если написать свою библиотеку, работающую в многоканальном режиме по прерываниям. Займётесь? :)
Сделать класс — сегмент.
Написать в нем методы — эффекты.
И манипулировать этими эффектами в главном цикле, а еще лучше по таймеру.
А вот писать программы копированием одного кода на много пинов — говнокод и полчим
Пришли светодиоды WS2812 россыпью (на подложках), хочу спаять в матрицу 10х10. Есть ли готовые скетчи со световыми эффектами 2D? Или какая-нить программа, преобразующая двумерный массив переменных в одномерный, чтобы, например, солнышко с лучами нарисовать.
learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library
А я нынче пошел по пути минимализации ))) Кризис все таки
Запихал скетч в тиньку 13 и 8 диодов в елочку
samopal.pro/ws2812-attiny13a/
Эффект метеора вверх — получилась ракета. Больше одного эффекта в тиньку 13 запихать не смог. (((
А это радуга
На тиньке 85 сделал несколько эффектов и управление хлопками. Чуть позже статью выложу.
уберите у остальных паузу — будет намного приятнее выглядеть
а так — самоделка отличная :) +++
За обзор спасибо.
Жаль от меня разработка с ардуинами примерно также далеко, как пройтись пешком в Киев.
Люди и дальше ходили...
Свет делать на индивидуально адресуемых? Ну, как бы странно. А для чего еще может быть нужен отдельный белый?
Если включить все 3 RGB, то потребление будет больше, чем один W. Да и W тут чистый будет. Уже плюс.
Про отдельно белый тоже не понятно зачем. Может кому то больше хочется с белым эффекты )
(аналогия°: отдельный чёрный в офсетной печати)
° они всегда плохонькие, но иногда бывают полезны
тут редко бываю, но буду просматривать данный пост. лучше свяжитесь со мной по почте register1977СОБАКАbk.ru
всё заработало отлично с первого раза.
Нужно смотреть то, что собрано фактически…