Светодиодная звезда на ёлку к которой я руки приложил.


Наступила та самая пора, конец года снег праздники и хорошее настроение )) А какой (новогодний/рождественский) праздник без ёлки? А какая ёлка без украшения? Именно об украшательстве пойдёт речь, а точнее о финальном штрихе, так сказать о вишенке на торте точнее о звёздочке на ёлке. В общем милости просим под CUT.

Собственно была заказана у китайцев звёздочка для ёлки. В лоте есть выбор размеров всё как в советские времена: изделие №1 №2 №3 я заказал №2. Размер от кончика до кончика звезды 18см.
Звезда выполнена из прозрачного ломкого пластика, на поверхности много граней для преломления света.Собственно всё просто: две одинаковые половинки, сердцевина с электроникой, ножка-крепление для верхушки и переключатель.Так это выглядит во включенном состоянии.
Тут можно было бы завершить обзор, но так легко, дорогой читатель, тебе не отделаться)))
Я решил что хочу лучшего и я знаю как это получить из этого простого кусочка пластика. Да да вполне предсказуемое решение WS2812B — просто и красиво, но тут у меня свой подход.

1)Я не буду применять arduino или ESP.
2)Мне не нужны всякие ИК-приёмники, WIFI или Bluetooth, я не собираюсь сидеть под ёлкой и переключать цвета, это задача ПО.
3)Устройство будет выполнено на одной плате, а не из говна и палок разных модулей проводов и термоклея.
4)Я буду использовать PIC18F46J50 и сам напишу весь код на mikroC.
В общем такой олдскульный подход )))

Первым делом измеряем звезду и создаём плату в Altium.
Дальнейшее развитие событий тут
После примерки бумажной версии платы можно начинать создавать реальную плату из фольгированного текстолита. Достаём из заначки кусок и вырезаем заготовку под размеры.Будет применяться плёночный фоторезист и для успешной «накатки» необходимо очистить загрязнённую поверхность.(признаком загрязнений является скатывающаяся с платы вода)Берём губку для посуды и чистим абразивной частью, дополнительно можно применить средство с кислотой (например средство для чистки унитазов).Главное добиться результата, а способ которым он был получен нам не сильно важен.Успехом считается поверхность которая смачивается водой.(на фото не видно, но на всей плате сидит водная плёнка и вода не охотно покидает заготовку.)Теперь можно приступить к подгонке заранее заготовленных фотошаблонов.(Печатаются на прозрачной плёнке, для увеличения плотности можно применять пары растворителей и двойной слой шаблонов)«Накатываем» фоторезист, есть много разных способов. Я смачиваю заготовку, кладу заготовленный кусочек плёнки, выравниваю и выгоняю воду силиконовым шпателем.Далее кладу заготовку между двух листов бумаги и отправляю в ламинатор. (хочу отметить что есть множество способов выполнения данной процедуры) Устанавливаем лист между шаблонов убедившись в правильности размещения.Пришло время экспозиции.Спустя определённое время (индивидуально для каждого типа фоторезиста ламп и расстояний) вроде не наблюдаем результат, но если присмотреться есть изменения.Осталось аккуратно как археолог кисточкой эти изменения проявить в растворе слабой щёлочи (кальцинированной содой).После отмывки получаем маску, открытые участки меди будут удалены на следующем этапе «травлении» поэтому надо внимательно просмотреть маску и убрать «косяки» После травления получаем почти готовую плату.Далее применяем растворитель или сильную щёлочь (средство для чистки засоров) для удаления фоторезиста. Внимание при работе со щёлочью применяйте очки и перчатки для избежания химических ожогов и перманентного повреждения зрения. Теперь потихоньку видно результат от затраченного времени.Отрезаем всё лишнее, и примеряем плату на будущее место.Сверлим отверстия.Далее я решил залудить плату (припой конечно не хром, но металлический блеск мне пригодится)После лужения и очистки платы, производим сборку.Далее подсоединим БП(С ним был косяк, китайцы задрали напряжение до 5,4 пришлось немного его занизить поменяв номиналы задающих резисторов на TL431)
После всех мучений бинго.

Теперь осталось написать программу.
Требования простые много эффектов и рандомность их выбора. Для управления светодиодами я применял SPI подробнее под спойлером.
Кратко о программировании
Если заглянуть в описание, то для управления ws2812B применяются сигналы равного периода, но разной продолжительности уровня логической единицы «1» и нуля «0», стоить отметить что сигналы управления довольно быстрые с допусками в 150нс.Однако есть одна фишка,ws2812b не сильно требовательный к соблюдению этих допусков и критичным является только длительность высокого уровня, низкий уровень может серьёзно отклоняться от заданных требований.Это позволяет применять SPI для отправки данных.Если установить правильную частоту SPI, то можно отправлять одним байтом два сигнальных бита, собственно этим я и воспользовался.В моей конструкции 2 стороны (они параллельны), на каждой стороне 15 светодиодов последовательно, зная что каждый ws2812b имеет по 3 байта для кодирования цвета (это 12 байт через SPI), то получаем что на всё необходимо 180 байт оперативной памяти («видео память»).Следовательно, для вывода цветов необходимо создать массив из 180 байт, менять значения для создания рисунка и отправлять эти 180 байт по SPI.

После того как разобрались как управлять конфигурируем микроконтроллер и пишем несколько функций

Обновление звезды — вывод «видеопамяти»
Установка цвета определённого пиксела (для удобства я ввёл систему координат кольцо звезды и луч)
Копия цвета пиксела
Установка цвета всей памяти,
Установка цвета луча,
Установка цвета кольца,
Вращение лучей,
«Втягивание» и «отталкивание» колец относительно центра звезды.

Эти 8 функций позволяют создавать различные эффекты.Применяя рандомность и математику я создал 15 различных режимов.Для произвольной генерации эффектов и выбора последовательности эффектов, я применял псевдорандом(генерация случайных чисел), для избежания повторений при повторном включении можно задать начальную точку генерации для этих целей я использовал сумму ячеек видеопамяти сразу после начала работы микроконтроллера когда в ней содержится различная произвольная информация.

В итоге вот что у меня получилось. (здесь я включаю и выключаю звёзды что бы показать режимы)

Ну пожалуй на этом можно откланяться надеюсь тебе дорогой читатель понравился обзор.А на десерт праздничная гифка)

Планирую купить +18 Добавить в избранное +100 +169
+
avatar
  • yuramur
  • 22 декабря 2017, 21:02
+8
Какие же у людей руки прямые )) Завидую! Плюс однозначно!
+
avatar
+8
Зато с порядочностью проблемы

Собственно была заказана у узкоглазых звёздочка для ёлки.
Дальше обзор не читал. Не понимаю, куда смотрит администация.
+
avatar
  • admin
  • 23 декабря 2017, 06:01
+7
Дальше обзор не читал. Не понимаю, куда смотрит администация.
Администрация — это не робот который 24x7 читает обзор, администрация это живые люди которые не вычитывают каждый обзор до буквы. Как получили информацию, что в обзоре что-то не так — так принимаем меры.

PS: заменили слово в обзоре
+
avatar
0
Пардон. Я почему-то считал, что все обзоры прочитываются администрацией перед публикацией.
+
avatar
  • Multik
  • 23 декабря 2017, 12:43
0
Неделю назад ездили на рынок купили ёлку, проверили её чисто так, разрезав коробку и подключив в розетку.
Когда приехали домой, звезда была сломана, залита китайскими «соплями». Да ещё так криво, что я сразу оторвал их и пошёл за суперклеем.
+
avatar
  • Sras
  • 22 декабря 2017, 21:05
+3
Фальшивая ёлка — фальшивый новый год! :))
+
avatar
  • SAIRUS
  • 22 декабря 2017, 21:07
+11
Главное что бы снегурочки не искусственные были )))
(не минусите человека он же в шутку сказал)
+
avatar
  • Kirillko
  • 22 декабря 2017, 21:15
+2
Главное чтобы у снегурочек не было кадыка и «нюансов»
+
avatar
  • SAIRUS
  • 22 декабря 2017, 21:20
+10
Нефиг по Тайландам шастать )))
+
avatar
  • Demz
  • 22 декабря 2017, 21:32
+3
да ну вас, а то еще до безалкогольного пива дойдете… или вообще до безалкогольного вина…
+
avatar
0
безалкогольное вино- это компот. А без него, на столе, скучно
+
avatar
  • Fodex
  • 22 декабря 2017, 21:24
0
Без кадыка это типа искусственная? Потому как он у всех есть.
+
avatar
  • Alaket
  • 23 декабря 2017, 09:27
+1
Это уж кому что нравится ))
+
avatar
  • Bald
  • 22 декабря 2017, 21:08
+5
Главное водка настоящая. А искусственная ёлка — дерево останется
+
avatar
  • Bald
  • 22 декабря 2017, 21:09
0
Я не догадался купить у китайцев звезду и поменять начинку. Печатаю свою на 3д
+
avatar
  • SAIRUS
  • 22 декабря 2017, 21:13
0
На самом деле можно купить тут по месту… правда цену заломят и появляются относительно поздно. Брал в Китае всё заранее, ещё осенью заморочился.
+
avatar
0
Воронежская область, город около 60тыс населения. Такая звезда у палаточников на донер (с работой от 220в) стоит 50 рублей.
Хотел тоже переделывать как Вы, уже и материал нашёл… но моя лень меня поборола и я купил у них же вариант с яркими светодиодами трех цветом, размером 20-25см. Работает от сети 220в. Там видимо МК стоит (затёрт), меняет режимы работы. В общем просят они за них 200-250рублей, но после обеда прогуливаясь, долго любовался у одной палатки гирляндами и уговорил женщину продать звезду за 150рублей.
+
avatar
0
В фикспрайсе брал такую за 50 рублей :)
+
avatar
+1
А кодом не поделитесь?
+
avatar
  • SAIRUS
  • 22 декабря 2017, 21:24
+2
Вам исходник или сразу HEX?
+
avatar
0
Добрый день,
дайте, пожалуйста, исходники на микроС почитать?
Хочу реализовать такую же на том, с чем дружит мой старенький Pickit2
+
avatar
+1
Лучше HEX.За ранее благодарен.
+
avatar
  • SAIRUS
  • 22 декабря 2017, 21:42
+4
PIC18F46J50
применяется встроенный осциллятор
включен WDT
Выход с RC7 pin#1
www.dropbox.com/s/7i9sbvjvvkw01r9/star%20PIC18F46J50%20internal%20osc.hex?dl=0
+
avatar
  • tysem
  • 22 декабря 2017, 22:19
0
Тогда уж и печатку до комплекта пожалуйста.
+
avatar
  • SAIRUS
  • 22 декабря 2017, 22:24
+2
аппетиты растут во время еды ))))
Герберы подойдут?
+
avatar
  • Kartus
  • 22 декабря 2017, 23:17
+7
Герберы подойдут?
Не, это сложно. Нужно уже распаяную отправлять)))
+
avatar
  • tysem
  • 23 декабря 2017, 11:19
0
Вполне
+
avatar
  • SAIRUS
  • 23 декабря 2017, 17:13
+2
www.dropbox.com/s/bafkoeso0fj50bq/123.rar?dl=0
readytbl readytbm — готовые файлы для печати фотошаблонов (шаблоны прикладываются напечатанным к плате)
+
avatar
0
Спасибо!
+
avatar
  • mirson
  • 22 декабря 2017, 22:05
0
с ардуино нано китайским кто балуется так? Кодом поделитесь?
+
avatar
  • yualeks
  • 22 декабря 2017, 23:33
+1
Набери в поисковике — 122-Эффектор с выходом на умную ленту WS2812. Там всё есть И схему можно упростить оставив пару кнопок.
+
avatar
  • koticik
  • 22 декабря 2017, 23:33
+1
если покажите свою смеху могу попробовать помочь с кодом. Пишите в личку
+
avatar
  • maksyola
  • 22 декабря 2017, 23:06
+25

Вот звезда на елку, а все остальное компромисс :)
+
avatar
  • ALexus
  • 22 декабря 2017, 23:31
+5
Опередили! Только хотел написать, что «наша», т.е. в «наше»...., была красной! :)
+
avatar
  • yualeks
  • 22 декабря 2017, 23:35
+2
Этой звезде лет тридцать как минимум.
+
avatar
  • skif31
  • 23 декабря 2017, 00:10
+2
И ещё столько же проживёт
+
avatar
0
Некропост (точнее коммент), но не смог удержаться.
Попалась мне такая звезда, но к сожалению не рабочая, однако у меня нашёлся донор — из «красной» лампы для фотодела достал точь в точь такие же лампы, заменил и звезда продолжает успешно радовать всех на новый год. :)
Возможно кому-то пригодится.
+
avatar
0
У меня расплавилась.
+
avatar
  • serenya
  • 23 декабря 2017, 09:46
+1
я такую другу переделывал с неона, правда гораздо проще чем у Тс. Белые светодиоды и тини13.
+
avatar
  • serenya
  • 23 декабря 2017, 10:20
+2
Результат не фоткал, а платы остались.
+
avatar
  • Kiril22
  • 24 декабря 2017, 18:55
0
Точно такую же оживлял! Видео ниже.
+
avatar
0
Есть такие 2 шт, вот почитал обзор и теперь думаю и себе переделать.
+
avatar
  • SAIRUS
  • 27 декабря 2017, 18:40
0
до нового года время ещё есть ;-)
+
avatar
  • yualeks
  • 22 декабря 2017, 23:22
+1
Звезда хороша, гирлянды не дотягивают.
+
avatar
  • skif31
  • 23 декабря 2017, 00:09
0
PIC18F46J50 отстой
+
avatar
  • SAIRUS
  • 23 декабря 2017, 09:11
0
Почему?)
Есть у меня и код под PIC18f4455
+
avatar
+2
Теперь надо елку по феншую
+
avatar
  • ABATAPA
  • 23 декабря 2017, 06:10
+1
Тогда уж вот такую (уже устал кидать эту ссылку):

github.com/evilgeniuslabs/tree-v2

Повторяю на sk6812 + ws2812b
+
avatar
  • Kartus
  • 23 декабря 2017, 07:35
-1
При выключенном звуке магия исчезает — повторенье мать мученья)
+
avatar
  • webtest
  • 28 февраля 2018, 15:46
0
Оба видео отличные, на самом деле. Плюсанул оба.
Расскажите, пожалуйста, в чём отличие sk от ws?
Встречаю иногда упоминание о не-ws светодиодах, но в чём разница не понял (другой протокол?)
+
avatar
  • ABATAPA
  • 02 марта 2018, 13:23
0
Буквы — это на совести компании-разработчика чипа.
SK6812 — RGBW (дополнительный чисто белый), соответственно, чуть меняется кадр (данные для 4 «цветов», а не 3). Разумеется, белый на них выглядит лучше. Ну, ещё есть невидимые отличия (вообще, это совсем разные чипы), например, разный порядок «цветов», чуть иные тайминги. Ещё есть чипы с защитой от «обрыва» при отказе одного диода в цепочке (т. е. гаснет только один, а не все за ним). Всё это легко гуглится.
+
avatar
+3
За руки конечно плюс, но по мне дак вы только испортили внешний вид. В оригинале свет расходился по лучам, а у вас одни точечные источники видно. Нужно было развивать идеи заложенные и конструкции изначально. Ну или диффузор хотя бы в свой вариант. И диоды я бы взял максимально широкоугольные. Короче, над оптической нужно было подумать. А за адекватный не олдскульный, а инженерный подход к управляющей части отдельный плюс.
+
avatar
+2
Вот прилично выглядящая звезда, хотя и не идеал

Можно было сделать что-то подобное.
+
avatar
  • SAIRUS
  • 23 декабря 2017, 09:58
0
Так в оригинале светодиоды сузким углом. А более широкоугольного чем smd светодиод без линз врятли что существует…
+
avatar
+1
Спасибо, было интересно почитать. Не люблю резкие мигалки. Писал для адафрутовской верхушки-цветка (3d модель есть на thingiverse), ws2811 + arduino mini свои эффекты с радугой, переливами и т.п. Мне было очень по кайфу :)
+
avatar
  • serg_mur
  • 23 декабря 2017, 07:59
0
Мандаринами запахло. За обзор плюс!
+
avatar
  • boutko
  • 23 декабря 2017, 11:17
+2
«Мандаринами» нужно исправить, NemojGusar может подумать, что вы про китайских чиновников пишите.
+
avatar
0
А я вообще не про китайцев подумал там, а про казаха-хирурга, который спас моего друга.
+
avatar
  • boutko
  • 23 декабря 2017, 11:38
0
Тогда понятно ваше возмущение.
+
avatar
0
Когда меня вштырило реализовывать эффекты на WS2812B мне постоянно не хватало производительности чипа и объема памяти на корректное управление диодами, без кварца вообще печаль была, но все равно. Потом конечно у меня появились атмеги, там всего хватало, но уже была копеечная ардуина с адафрутом и повторять уже созданное кем-то не было смысла.
+
avatar
  • SAIRUS
  • 24 декабря 2017, 17:20
0
на PIC18F46J50 всторенный кварц на 8МГц умножаем его через PLL до 48МГц.После этого пришлось даже понизить частоту SPI в двое. Эффекты у меня в основном генерируются циклами и генератором случайных чисел.
Ресурсы
Used RAM (bytes): 328 (9%) Free RAM (bytes): 3427 (91%)
Used ROM (bytes): 18228 (28%) Free ROM (bytes): 47300 (72%)
+
avatar
  • Kiril22
  • 24 декабря 2017, 18:14
+5
Года три назад занялся поиском красной звезды из моего детства, хотелось показать своим детям. Как назло нашел только 30-го декабря вечером и в убитом состоянии — грязная, со сгоревшими неонками и подпалинами. Но отступать было некуда, всю ночь чистил, паял, программировал. В составе то, что было под руками ночью — atmega328, горсть ярких красных светодиодов в 10-ти группах и прочие мелочи. Работает и на этот Новый год
Видео снято в 2015 г.
+
avatar
  • SAIRUS
  • 24 декабря 2017, 18:47
+2
У звёзд из обзора был предшественник нарядил я ёлку 30.12.2016 была хорошая гирлянда и прозрачная звезда с лампочками которая загоралась и тухли. Время было 1800 глянул я на звезду и подумал унылое Г… и принялся за работу… макетирование плата программирование но до 1800 31.12.2016 у меня была одностороня звезда (на pic18f4455) с несколькими эффектами и море гордости за самого себя в новогоднюю ночь )
+
avatar
  • Kostja
  • 08 января 2018, 19:24
0
Прикольно. А скетч какой? На следующий НГ сделаю )))