LED-контроллер для WS2812

Здравствуйте, решил собрать себе под новый год так сказать управлятор для линеек WS2812. По началу присматривался к проектам на ARDUINO, но как то там все разбросано и всегда для меня чего то не хватало. В итоге решил попробовать объединить несколько проектов в один и вот что получилось. Прошу строго не судить, впервые работаю с WS2812 да и прошивка еще не окончательный вариант. И да здесь присутствуют эффекты из проекта AlexGyvera

В качестве основы был выбран PIC18F27K42, изначально предполагалось что он прекрасно подойдет для данного проекта, но с ростом возможностей контроллера к сожалению его функций стало не хватать ( в дальнейшем есть планы перейти на PIC18F27Q43 либо что еще лучше dsPIC), но проект все еще остался самодостаточным хотя и лишился такой хорошей фишки как DMA с CLC.

После долгих раздумий и переживаний бала создана данная схема.

Схема.

Плата верх.

Плата низ.

Благодаря Китайским братьям из компании JLCPCB были получены вот такие платки.

 

 

И все скомпоновалось вот в этот корпус.

И вот что получилось.

Как уже писалось выше сердцем данного контроллера является PIC18F27K42, для управления был выбран TFT сенсорный экран ILI9341 с разрешением 320х240. Данный экран очень хорошо помог в разгрузке портов МК, избавив управление от кнопок. Для работы с аудио был выбран семи полосный спектроанализатор MSEGQ7 (тут возможна лотерея, из 6 китайских нормально запустились только два), в качестве предусилителя была выбрана классическая схема компрессора взятая отсюда, за исключением того что в качестве ОУ был применен MCP602 с real-to-real выходом. Источником звука может служить как линейный вход так и китайский микрофонный модуль ADMP401

, я бы очень рекомендовал именно этот модуль так как с ним удалось добиться наименьших помех при работе. В качестве регулятора громкости было выбрано электронное сопротивление MCP41100 на 100 кОм с 256 шагами перестройки, поначалу были сомнения в его работе но все обошлось да и самое главное его достоинство нет механических частей значит нет сопутствующих проблем.

Для работы в режиме GLEDIATOR к разъему XP4 необходимо подключить пин TXD разъема XP4 с таким же пином TXD какого либо конвертара USB — TTL(RS232) в моем случаи это модуль на основе FT232 и установив перемычку используемого напряжения в положение 3.3 вольта.

Далее идет модуль ESP8266, он в первую очередь использован для работы в режиме WiFi и задел на будущее для разработке управления через тот же WiFi. Для того чтобы данный модуль корректно работал на нем должна быть установлена at прошивка для esp8266. Затем необходимо установить скорость работы по UART равную 1000000  бод и аппаратное управление потоком, для этого подключаем модуль ESP8266 к компьютеру, а в программе терминала, после установки связи с модулем, вводим команду AT+UART_DEF=1000000,8,1,0,3.

Прочитав много информации в интернете, было принято решение использовать собственный источник питания для платы контроллера, в качестве него хорошо подошел HLK-5M03

Для полной развязки контроллера и ленты была использована оптопара ACPL-772L-000E, в общем то можно обойтись и без нее установив перемычку между 2 и 6 выводом колодки оптопары, но я всетаки настоятельно рекомендовал установить её.

И последним остался модуль для работы с SD картами, были опробованы несколько их видов и выбор был остановлен на данном варианте.

Для работы в режиме чтения SD карт, необходимо использовать карты 10 класса размером не превышающем 32 гигабайта, в частности были проверены карты на 8 и 6 гигабайт.

Ну а теперь по работе с контроллером.

После включения мы видим следующее сообщение.

Выбираем использовать текущие настройки или нет, если выбрали нет то попадаем в настройки матрицы.

Настраиваем матрицу под себя, при необходимости сохраняем настройки либо сбрасываем их до состояния настроек которые были получены до входа в меню настроек матрицы. Далее после выхода изменю или подтвердив начальные настройки необходимо выбрать один из режимов работы.

Первый режим, это режим с ручным переключением эффектов, то есть выбрав один определенный он будет работать все время.

Далее следует режим авто смены эффектов, здесь мы можем в режиме настройке эффекта настроить последовательность выполнения эффектов и их продолжительность, на момент выхода статьи поддерживается изменение длительности для всех эффектов.

Далее следует режим чтения SD карт. Здесь считываются данные с sd карты, пока работает чтение только одного файла, в дальнейшем хочется сделать режим с несколькими файлами, изначально хотел сделать так чтобы система не была особо привязана к названиям файлов, название файлов не должно превышать 18 символов вместе с расширением (в конце текстовой строки названия файла, если название меньше 18 символов, необходимо поставить прямоугольник с крестом),фактически так и получилось, но встала трудность с набором файлов и только недавно посетили мысли как это все можно организовать, в общем это будет сделано в будущей версии прошивки.

WiFi artnet, самоназвание в общем то говорит само за себя, данный режим был опробован в программе jinx led matrix control и показал себя с хорошей стороны, хотя мне все еще кажется что стоит приподнять скорость общения по uart между ESP8266 и PIC18f27K42.

Как всегда при старте данного режима выбираем подключится к WiFi по текущем настройкам либо изменить их.

После удачного подключения видим следующие.

Как было замечено в настройках JINX желательно использовать небольшое число universe с большим количеством каналов.

Режим Glediatir, подключились к компьютеру по usb кабелю, настроили программу JINX или GLEDIATOR по себя и наслаждаемся зрелищем.

И последний режим это режим АУДИО, пока есть только один эффект это спектроанализатор на 7 полос. Дальше я думаю будет больше.

Никаких особых настроек мой проект не требует и должен заработать сразу.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
R1 Резистор 200 кОм 1 SMD 1206
R2, R3 Резистор 470 Ом 2 SMD 1206
R4, R17, R18 Резистор 1 кОм 3 SMD 1206
R5, R8 Резистор 10 кОм 2 SMD 1206
R7, R9, R10 Резистор 100 кОм 3 SMD 1206
R11, R16 Резистор 22 кОм 2 SMD 1206
R12, R13, R14 Резистор 2 кОм 3 SMD 1206
C1 Конденсатор 100uF 16V 1 16SEPC100MW
C2 Конденсатор 100nF 50V 1 К10-17Б
C3 Конденсатор 56uF 25V 1 25SEF56M
C4, C6, C10, C13, C14, C17, C18, C20 Конденсатор 1uF 50V 8 SMD 1206
C5 Конденсатор 33pF 50V 1 SMD 1206
C7 Конденсатор 100nF 50V 1 К10-17Б
C8 Конденсатор 100nF 50V 1 SMD 1206
C9, C15, C16 Конденсатор 47uF 12.5V 3 ECASD61B476M020K
C11 Конденсатор 1.5uF 50V 1 SMD 1206
C12, C23 Конденсатор 10nF 50V 2 SMD 1206
C19 Конденсатор 100uF 16V 1 16SEPC100MW
С21, C24 Конденсатор 22uF 16V 2 ECAP (К50-35 мини), 22 мкФ, 16 В, 4х7мм
C22 Конденсатор 27nF 50V 1 SMD 1206
C25 Конденсатор 1uF 63V 1 ECAP (К50-35 мини), 1 мкФ, 63 В, 4х7мм
D1 Защитный Диод SM2T3V3A 1 DO-216AA
FU1 Предохранитель 0.315 А 1 ВПТ19
FU2 Предохранитель 0.75 А 1 MF-MSMF075
LCD Модуль LCD ILI9341 320×240 1 http://ali.pub/441par
SD модуль SD модуль чтения SD карт 1 http://ali.pub/441pcb
U1 Блок питания HLK-5M03 1 http://ali.pub/441pe2
U2 Спектроанализатор MSGEQ7 1 http://ali.pub/441pgl
U3 PIC PIC18F27K42-I/SP 1
U4 Цифровой потенциометр MCP41100 1
U5 ESP8266 модуль ESP8266 1 http://ali.pub/441pix
U6 Операционный усилитель MCP602 1
OP1 Оптопара ACPL-772L-000E 1
ICSP Разъем программирования PLS-6 1
XP1 Разъем питания GMKDS 3_2 1
XP2, XP3, XP5 Разъем PLS-3 3
XP4 Разъем PLS-2 1
Корпус G1183GUL 1 https://www.chipdip.ru/product/g1183gul