RSS блога
Подписка
Светодиодная звезда на ёлку к которой я руки приложил.
- Цена: $1.54
- Перейти в магазин
Наступила та самая пора, конец года снег праздники и хорошее настроение )) А какой (новогодний/рождественский) праздник без ёлки? А какая ёлка без украшения? Именно об украшательстве пойдёт речь, а точнее о финальном штрихе, так сказать о вишенке на торте точнее о звёздочке на ёлке. В общем милости просим под CUT.
Собственно была заказана у китайцев звёздочка для ёлки. В лоте есть выбор размероввсё как в советские времена: изделие №1 №2 №3 я заказал №2. Размер от кончика до кончика звезды 18см.
Звезда выполнена из прозрачного ломкого пластика, на поверхности много граней для преломления света.Собственно всё просто: две одинаковые половинки, сердцевина с электроникой, ножка-крепление для верхушки и переключатель.Так это выглядит во включенном состоянии.Тут можно было бы завершить обзор, но так легко, дорогой читатель, тебе не отделаться)))
Я решил что хочу лучшего и я знаю как это получить из этого простого кусочка пластика. Да да вполне предсказуемое решение WS2812B — просто и красиво, но тут у меня свой подход.
1)Я не буду применять arduino или ESP.
2)Мне не нужны всякие ИК-приёмники, WIFI или Bluetooth, я не собираюсь сидеть под ёлкой и переключать цвета, это задача ПО.
3)Устройство будет выполнено на одной плате, а неиз говна и палок разных модулей проводов и термоклея.
4)Я буду использовать PIC18F46J50 и сам напишу весь код на mikroC.
В общем такой олдскульный подход )))
Первым делом измеряем звезду и создаём плату в Altium.
После всех мучений бинго.
Теперь осталось написать программу.
Требования простые много эффектов и рандомность их выбора. Для управления светодиодами я применял SPI подробнее под спойлером.
В итоге вот что у меня получилось. (здесь я включаю и выключаю звёзды что бы показать режимы)
Ну пожалуй на этом можно откланяться надеюсь тебе дорогой читатель понравился обзор.А на десерт праздничная гифка)
Собственно была заказана у китайцев звёздочка для ёлки. В лоте есть выбор размеров
Звезда выполнена из прозрачного ломкого пластика, на поверхности много граней для преломления света.Собственно всё просто: две одинаковые половинки, сердцевина с электроникой, ножка-крепление для верхушки и переключатель.Так это выглядит во включенном состоянии.Тут можно было бы завершить обзор, но так легко, дорогой читатель, тебе не отделаться)))
Я решил что хочу лучшего и я знаю как это получить из этого простого кусочка пластика. Да да вполне предсказуемое решение 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 различных режимов.Для произвольной генерации эффектов и выбора последовательности эффектов, я применял псевдорандом(генерация случайных чисел), для избежания повторений при повторном включении можно задать начальную точку генерации для этих целей я использовал сумму ячеек видеопамяти сразу после начала работы микроконтроллера когда в ней содержится различная произвольная информация.
После того как разобрались как управлять конфигурируем микроконтроллер и пишем несколько функций
Обновление звезды — вывод «видеопамяти»
Установка цвета определённого пиксела (для удобства я ввёл систему координат кольцо звезды и луч)
Копия цвета пиксела
Установка цвета всей памяти,
Установка цвета луча,
Установка цвета кольца,
Вращение лучей,
«Втягивание» и «отталкивание» колец относительно центра звезды.
Эти 8 функций позволяют создавать различные эффекты.Применяя рандомность и математику я создал 15 различных режимов.Для произвольной генерации эффектов и выбора последовательности эффектов, я применял псевдорандом(генерация случайных чисел), для избежания повторений при повторном включении можно задать начальную точку генерации для этих целей я использовал сумму ячеек видеопамяти сразу после начала работы микроконтроллера когда в ней содержится различная произвольная информация.
В итоге вот что у меня получилось. (здесь я включаю и выключаю звёзды что бы показать режимы)
Ну пожалуй на этом можно откланяться надеюсь тебе дорогой читатель понравился обзор.А на десерт праздничная гифка)
Самые обсуждаемые обзоры
+59 |
1422
57
|
Дальше обзор не читал. Не понимаю, куда смотрит администация.
PS: заменили слово в обзоре
Когда приехали домой, звезда была сломана, залита китайскими «соплями». Да ещё так криво, что я сразу оторвал их и пошёл за суперклеем.
(не минусите человека он же в шутку сказал)
Хотел тоже переделывать как Вы, уже и материал нашёл… но моя лень меня поборола и я купил у них же вариант с яркими светодиодами трех цветом, размером 20-25см. Работает от сети 220в. Там видимо МК стоит (затёрт), меняет режимы работы. В общем просят они за них 200-250рублей, но после обеда прогуливаясь, долго любовался у одной палатки гирляндами и уговорил женщину продать звезду за 150рублей.
дайте, пожалуйста, исходники на микроС почитать?
Хочу реализовать такую же на том, с чем дружит мой старенький Pickit2
применяется встроенный осциллятор
включен WDT
Выход с RC7 pin#1
www.dropbox.com/s/7i9sbvjvvkw01r9/star%20PIC18F46J50%20internal%20osc.hex?dl=0
Герберы подойдут?
readytbl readytbm — готовые файлы для печати фотошаблонов (шаблоны прикладываются напечатанным к плате)
Вот звезда на елку, а все остальное компромисс :)
Попалась мне такая звезда, но к сожалению не рабочая, однако у меня нашёлся донор — из «красной» лампы для фотодела достал точь в точь такие же лампы, заменил и звезда продолжает успешно радовать всех на новый год. :)
Возможно кому-то пригодится.
Есть у меня и код под PIC18f4455
github.com/evilgeniuslabs/tree-v2
Повторяю на sk6812 + ws2812b
Расскажите, пожалуйста, в чём отличие sk от ws?
Встречаю иногда упоминание о не-ws светодиодах, но в чём разница не понял (другой протокол?)
SK6812 — RGBW (дополнительный чисто белый), соответственно, чуть меняется кадр (данные для 4 «цветов», а не 3). Разумеется, белый на них выглядит лучше. Ну, ещё есть невидимые отличия (вообще, это совсем разные чипы), например, разный порядок «цветов», чуть иные тайминги. Ещё есть чипы с защитой от «обрыва» при отказе одного диода в цепочке (т. е. гаснет только один, а не все за ним). Всё это легко гуглится.
Можно было сделать что-то подобное.
Ресурсы
Used RAM (bytes): 328 (9%) Free RAM (bytes): 3427 (91%)
Used ROM (bytes): 18228 (28%) Free ROM (bytes): 47300 (72%)