Беспроводной/USB RGB-контроллер
В ранних статьях был рассмотрен контроллер трех цветного светодиода/линейки… На его основе был построен новый RGB контроллер, управлением которым осуществляется с компьютера по USB или, без проводов, по bluetooth.
Контроллер в работе
Такое управление раскрывает большие возможности по применения такого контроллера: задание приятного светового оттенка с компьютера, цветомузыка, световые шоу, динамическая фоновая подсветка…
Устройство построено на основе UART и поэтому ему всё равно по чему именно будет передаваться сигнал: COM порт или используя виртуальный COM порт на компьютере, а на контролере UART – USB или bluetooth. Т.к. основная часть в обоих схемах будет одинаковая её рассмотрим отдельно, а кирпичики связи, по средствам которых контролер сопрягается с компьютером по отдельности.
Основная схема RGB контроллера
Всё построено на основе микроконтроллера PIC16F628A. RGB каналы коммутируются ключами IRL2203N, которые управляются логическим уровнем. Напрямую к их выходам можно подключать светодиодные ленты, для подключения отдельного RGB светодиода или 3-х разноцветных диодов понадобятся тока ограничители каждому из каналов, об этом подробнее можно прочитать в соответствующей статье посвящено светодиодам. Так же подключение полупроводниковых светоизлучателей к контроллеру было подробно описано в первой статье. Светодиод LED1 информирует о приятом пакете. Стабилизатор VR1 7805 понижает напряжение до 5В, от которого питается МК. Далее рассмотрим средства связи этого контроллера с компьютером.
Основная часть платы
Основная часть содержит следующие детали: микроконтроллер PIC16F628A, кварц на 20МГц с двумя конденсаторами C1 и C2 0805 по 22пкФ. Резистор R1 4,7к 0805, резистор R2 на 470Ом 0805, любой светодиод типоразмера до 0805 с током до 15мА. Стабилизатор 7805 в корпусе SOT-87 и обвязкой в виде двух конденсаторов C3 и C4 по 0,1мкФ 0805 и C5 чип тантал на 10мкФ типоразмера A. Ключи IRL2203N (замена IRL3103, IRL3705N), можно другие со схожими параметрам. Резисторы R3, R4, R5 – 680 Ом, а R6, R7, R8 – 10 кОм. Три клеммника 340-021-12 или два 340-031-12.
USB RGB-контроллер
Всё построено на маленькой микросхеме CP2102 от SiLabs, что это и как с ней работать уже было рассмотрено в соответствующей статье — USB-UART на cp2102. Немного упростив оригинальную схему, убрав обратную связь и гальванически развязав контроллер с компьютером, был получен следующий переходник:
Схема USB-UART
Плата с ним выглядит следующим образом:
Плата USB RGB контроллера (вид со стороны выводных деталей)
В преобразователе USB-UART с гальванической развязкой применены следующие детали: конденсатор C1 0,1 мкФ 0805, C2 чип-тантал типоразмера A на 4,7мкФ. Резистор R1 на 470 Ом, ограничивает ток, протекающий через светодиод LED1. Резистор R2 на 0 Ом 1206 выполняет роль предохранителя. Резисторы R3 и R4 по 4,7 кОм в корпусах 0805 и 1206. Сама микросхема преобразователя в корпусе QFN28 CP2102. Оптопара KP814, можно применить COSMO KP1010, так же, в ущерб гальванической развязке, её можно заменить перемычкой с выхода Tx микросхемы cp2102 на RB2 микроконтроллера, при таком включение надобность в резисторах R3 и R4 отпадает. Разъём mini-USB. И две перемычки, одна из которых выполнена резистором на 0 Ом в корпусе 1206.
Внимание! USB разъём не должен замыкаться с + шиной, которая подходит под ним.
Bluetooth RGB-контроллер
Этот вариант контроллера построен на базе ранее рассмотренного Bluetooth модуля HC-05 . Как и предыдущая схема в этой отсутствует обратная связь с компьютером. Преимущество этого варианта в том, что его можно забросить почти куда угодно и подцепившись к нему с компьютера наслаждаться светопредставлением. Модуль должен быть запрограммирован как Slave со скоростью 9600.
Схема Bluetooth – UART
Схема такого интерфейса ещё проще: беспроводной модуль, стабилизатор и два делительных резистора.
Плата Bluetooth RGB контроллера (вид со стороны выводных деталей)
В беспроводном варианте принимающая сторона состоит из следующих деталей: синий зуб HC-05 с прошивкой Linvor v1.5. Стабилизатор на 3,3В 78L33 в корпусе SOT-87 с обвязкой в виде двух конденсаторов в корпусах 0805 на 0,1 и 1 мкФ. Резисторы R1 и R2 на 3,3-4,7 кОм 0805.
Перед началом работы второго варианта, возможно, придётся немного понастраивать «синий зуб», а именно подключить его к компьютеру через UART и произвести следующею настройку. Специально для этого на плате предусмотрена обратная связь с контролером, хоть и не используется в основной схеме. Удалить с платы микроконтроллер, подключить UART преобразователь (USB-UART или COM-UART) к 7 (Tx преобразователя), 8 (Rx), 5 (общий) и 13 (+ питания) выводам микроконтроллера. Подать питание. Произвести диалог, по средством AT команд. Китайские HC-05 с DealExtreme приходят с прошивкой Linvor V1.5 со следующими настройками: Slave 9600 9N1, пароль 1234.
После включения RGB контроллера, с ним нужно установить связь, после чего он будет готов к работе.
Протокол управления
Контроллер управляется по USB или Bluetooth, оба эти средства на компьютере используют виртуальные COM порты, а у микроконтроллера UART. Контроллер настроен следующим образом: скорость 9600, 8N1.
Контроллер принимает команды следующего вида – @xhcсссс , где @ — стартовый байт, x – байт, количество байт в посылке (до 10), h – байт, контрольная сумма (сложены все байты посылки), ссссc – данные.
Список команд контроллера:
- Rx – установить насыщенность красного, x – байт (принимает значения от 0 до 255)
- Gx – установить насыщенность зеленого
- Bx – установить насыщенность синего
- Mi – выбор режима работы, i – номер эффекта в ASCII коде (доступны 6 эффектов, см ниже)
- Dx – установка скорости проигрывания спецэффекта, x – байт (принимает значения от 0 до 255, по умолчанию 40)
Модуль умеет проигрывать следующие эффекты:
- 0 – эффект не выбран, просто горит заданным цветом
- 1 – плавное переливание одного из базовых цветов
- 2 – плавное переливание любых цветов
- 3 – разгорание и гашение любого цвета
- 4 – разноцветный стробоскоп
- 5 – смена цветов
Примеры команд:
@06hD8hRяGяBя – установит белый цвет, если выключены световые эффекты
@02h81hM4 – включает стробоскоп
Программа
Для работы с ним была написан специальная программа, которая может задавать цвет и яркость, включать световые эффекты, запрограммированные в контролере, и устроить цветомузыкальное представление, получая звуковой спектр с любого из выходов звуковой карты. Подробнее о ней читайте в соответствующей статье — Al RGB Controller – программа для RGB контроллера, здесь же покажу видео работы контроллера:
Цветомузыка на RGB контроллере
Скачать прошивку от 10.11.2013
Убрано свечение на 0 яркости.
Скачать старую версию прошивки
Прошивка обновлена 10.11.2013
Alex_EXE | 18.12.2011 | Светотехника |
vladimir пишет 02.01.2012 в 18:38 #
прикльная штука!, автор молодца!, хочу использовать для подсветки двухуровнего потолка, только вот немогу нигде на сайте отыскать программу для синезуба !?, может была, удалили !?, ткните в сцылко.
Alex_EXE пишет 03.01.2012 в 19:25 #
Статья с программой ещё не готова, если контроллер уже собран, то могу то, что есть скинуть на мыло.
vladimir пишет 03.01.2012 в 20:22 #
Alex_EXE схему сегодня дособеру, плата готова, новый год из колеи выбил :)), скинь то что есть, а то невтерпёж как любопытно !
vladimir пишет 07.01.2012 в 02:52 #
Alex_EXE супер!, класс !, собрал запустил, пока модуля блютуз нету, тестирую на шнурке usb-uart от сот-телефона на чипе pl2303 , позже сделаю полный отчёт, поскольку собираюсь использовать схему в подсветке потолка, очень огорчило отсутствие запоминания настроек при отключении, и последующем вкл, Alex_ может можно это поправить малой кровью, былоб вааще супер pleease !?
Alex_EXE пишет 08.01.2012 в 02:24 #
Сохранять настройки в контроллере проблематично, не очень доверяю EEPROM при частой его перезаписи. Но последние значения можно сохранять в программе на ПК, только это не будет относиться к цветам во время проигрывания спецэффектов.
Сергей пишет 22.01.2012 в 16:29 #
Мне очень понравилась статья. Но возможности собрать схему сейчас самому нет. и тут возникает вопрос — есть ли у Вас возможность выслать по почте готовую систему беспроводного контроллера с голубым зубом и какая цена вашего изделия ? Алексей, а есть ли возможность все это соединить по Ethernet интерфейсу ?
Alex_EXE пишет 23.01.2012 в 15:15 #
Ответил, смотрите почту
Сергей пишет 24.01.2012 в 03:45 #
ссылка на прошивку не работает
Alex_EXE пишет 24.01.2012 в 16:15 #
В конце следующей недели файл добавлю, сейчас прошивка на доработке.
Alex_EXE пишет 14.02.2012 в 20:46 #
Прошивку и программу выложил, информацию немного обновил.
harpjke пишет 29.02.2012 в 21:26 #
Какой нагрев у транзисторов, если подключить 5метровую RGB ленту? Кто собирал, проверял? Потребляемая мощность при 9А 108 Вт?
Alex_EXE пишет 29.02.2012 в 21:59 #
На токах порядка 5А ключи холодные.
10А эти ключи потянут, они до 82А, только проводники на плате усилить не забудьте.
Борисыч пишет 21.06.2012 в 03:01 #
Ой братцы, крепко я сомневаюсь что при таком включении полевика, в затворе с килоомом да еще и прямо с ноги ПИКа Вы сможете прокачать серьезный ток, через киолоом емкость затвора будет довольно долго заряжаться, транзистор в полуоткрытом состоянии будет довольно долго, перегрев обеспечен. Если гговорит о токах больше 5 ампер нужен драйвер перд затвором, хоть пару транзючков поставить pnp npn.
Сергей пишет 21.06.2012 в 14:15 #
Основательно так, со всех сторон проработано 🙂 Автору — respect!
Вопросик: на какой частоте работает ШИМ для управления СД?
Alex_EXE пишет 25.06.2012 в 01:29 #
Частота ШИМа около 300-333Гц со скважностью 255.
То что не идеально подобрал резисторы в ключах — этого не исключаю, схема на практике работает.
Николай пишет 04.08.2012 в 03:15 #
Здравствуйте.Такая проблема-спалил один из портов выхода.Случайно задел проводом 12 вольт.Вы мне как-то высылали исправленную прошивку с работой от кнопки и начальное свечение убирали.Можно будет обратится к вам на днях?Просто нужно будет поменять в прошивке одну лапу на другую.Спасибо.
Alex_EXE пишет 08.08.2012 в 03:01 #
Письмо отправил
Евгений пишет 20.12.2012 в 18:32 #
Здравствуйте, Алекс. возможно ли подключить Ваше устройство к JDM программатору (для управления), max232 на нем присутствует
Alex_EXE пишет 21.12.2012 в 00:03 #
На счёт программатора не знаю, а через max232 пожалуйста.
Только в схеме есть 3 небольшие критические ошибки, по которым отправил статью на доработку, — отсутствуют биполярые ключи коммутирующие истоки мосфетов к линии «+ питание».
Евгений пишет 22.12.2012 в 00:52 #
а исходники программы появятся на свет?
Василий пишет 11.04.2013 в 20:23 #
Печатка на качается.
Василий пишет 21.04.2013 в 00:44 #
Ау. Есть кто ни будь живой?
Alex_EXE пишет 16.09.2013 в 23:19 #
Статья обновлена, ошибки исправлены, исправленные файлы возвращены на место.
Алексей пишет 10.11.2013 в 14:20 #
Здравствуйте!!! Alex_EXE Конструкцию повторил КЛАСС сделал на 9 светодиодах 3w RGB вмонтировал в софит, буду еще делать 3 таких.
единственное что не понравилось это отключение цвета на температуре и когда включаешь по одному цвету в рисунок а так большой респект автору.
Alex_EXE пишет 10.11.2013 в 17:53 #
Обновил прошивку.
Алексей
Отклонение цвета может быть вызвано неправильным питанием диодов, например преобладание красного говорит о недостатке напряжения. Так же сами светодиоды имеют небольшие цветовые отклонения, наиболее это может быть выражено это у диодов из разных партий.
И цветовые палитры приведены примерные (точнее идеальные), для полного соответствия нужно учесть кучу параметров (вплоть до настроек монитора) или цветовые палитры корректировать для диодов.
Ярослав пишет 25.11.2013 в 03:58 #
Я немного не понял по протоколу управления. Произвожу посылку строки «@0281M4» на контроллер по Bluetooth через терминал на компьютере (виртуальный COM-порт), а он не зажигает светодиоды, только реагирует на стартовый бит (мигает красный индикатор).
Alex_EXE пишет 25.11.2013 в 23:17 #
Срабатывает ли посылка на установление белого цвета? Попробуйте послать такую посылку: @03hBChM4; (64 3 188 77 52 59 (int))
Терминал поддерживает отправку байтов?
Ярослав пишет 26.11.2013 в 22:12 #
Посылка на установление белого цвета не срабатывает. На посылку @03hBChM4 — результат тот же. Контроллер зажигает светодиоды только с помощью Вашей программы Al_RGB_Controller. Но мне необходимо управление через терминал. Я пользуюсь Вашей программой — AL Terminal. Настройки по умолчанию.
Alex_EXE пишет 26.11.2013 в 23:53 #
Если команду вводите так, как написали в сообщении — то неверно, Вы вводите все это ASCII символами. Ввод байтов осуществляется через доллар ($), при его нажатии открывается окно с выбором символов, где нужно вводить или @$003$188M4; в режиме [int] (выбор способа ввода в правом нижнем углу) или @$03$BCM4; в режиме [hex]. Так же не забываем про точку с запитой в таком варианте посылки.
В статье же команду @02h81hM4 привел в более привычном виде, как мне кажется.
Ярослав пишет 29.11.2013 в 16:33 #
Благодарю Вас за помощь! Ваш подробный ответ мне помог разобраться с протоколом управления. А если не секрет, как Вы в своей программе управления светодиодной подсветкой (AL_RGB_controller), преобразуете команду для управления контроллером в нужный вид перед отправкой? Ведь нам надо преобразовать посылку в HEX коды, верно? Дело в том что я начинающий программист, разрабатываю программу управления для Аndroid и мне любопытно узнать…
Alex_EXE пишет 01.12.2013 в 16:33 #
На Си примерно будет так выглядеть:
unsigned char mas[8],Length,i,hesh;
// Формирование посылки
mas[0]=’R’;
mas[1]=переменная со значением красного цвета;
mas[2]=’G’;
mas[3]=переменная со значением зеленого цвета;
mas[4]=’B’;
mas[5]=переменная со значением синего цвета;
Length=6; // известная длина команды
// Отправка посылки
hesh=0;
for(i=0;i < Length ;i++) hesh+=mas[i];// может немного и не оптимально, что расчёт хэша тут, но этот протокол был сформирован давно.
send_Usart(’#’);
send_Usart(Length);
send_Usart(hesh);
for(i=0;i < Length;i++) send_Usart(mas[i]);
Ярослав пишет 02.12.2013 в 14:50 #
Спасибо большое Alex_EXE!
Дмитрий пишет 13.12.2013 в 03:12 #
Немного запутался с подсчётом контрольной суммы посылки. Если брать Ваш пример из статьи (установка белого цвета), то сумма получается 3D8 а не D8, если сложить все байты: 52 FF 47 FF 42 FF (R 255 G 255 B 255). Почему так?
Alex_EXE пишет 13.12.2013 в 12:51 #
Для хранения и пересылки хэша используется одно байтовая переменная, которая может принимать значения от 0 до FF, а всё что больше она просто отбрасывает.
Alexsl пишет 11.02.2014 в 18:10 #
Здравствуй!!! Alex_EXE повторил конструкцию респект и уважуха решил сделать небольшие софиты для оформления сцены получилось классно но вот вопрос если возможность доработки схемы для работы в DMX.
Alex_EXE пишет 12.02.2014 в 00:31 #
С DMX не работал и пока что не собираюсь, но есть вариант схемы, правда уже устаревший, для работы по Rs485 по своему протоколу.
Alexsl пишет 14.02.2014 в 18:54 #
не но если посмотреть как делают китай то там только все в прошивки укладывается да и микроконтроллер другой марки от атмелла вот ссылка http://elwo.ru/forum/58-527-1 ну а мне как бы не хотелось покупать новые микроконтроллеры и ставить взамен пикушек как и если возможность все это дело влюбить.
Alex_EXE пишет 16.02.2014 в 23:40 #
Вы мне хотите предложить переписать прошивку на DMX протокол? Потратить время на изучение нового для меня протокола и переработку кода, в то время когда данные разработки у меня не лежат даже в ближайших планах и сейчас по уши занят какими-то своими делами, что даже временно перестал писать новые материалы для сайта.
Alexsl пишет 18.02.2014 в 17:41 #
Ну тогда придется переводить на атмелы для работы в DMX тк я сам не силен с прошивками и их писанием пытался как то вникнуть в написание программа для микроконтроллера, мозги закипели да и вас понимаю это трудоемкий труд и терпения.
Alex_EXE пишет 20.02.2014 в 22:41 #
Мне многое интересно и многое бы хотелось сделать, но всё упирается во время, его на все и всех не хватает.
Serg пишет 14.11.2014 в 20:15 #
Отлично сделано! Будет ли ли вариант управления с пультика + цветомузыка с микрофона? чтобы обходиться без компьютера
Alex_EXE пишет 15.11.2014 в 02:13 #
Ближайшее время нет. Нет необходимости и наработок. Пробел восполнить не желаете?
руслан пишет 24.12.2015 в 02:09 #
Подскажите а можно ли его посекундно запрограммировать? Хочу сделать костюмы для светового шоу
Alex_EXE пишет 27.12.2015 в 00:05 #
По моему такой функционал в программу не закладывал.
При большом желании такую прошивку написать можно, но или выйдет немного, или эффекты нужно делать простые, или МК пожирнее взять, или со внешней памятью…
миша пишет 01.01.2017 в 01:22 #
на схеме с оптопарой я так полагаю ошибка, так как сигнал ведь будет инвертирован…
Виктор пишет 30.07.2018 в 19:09 #
Добрый день!
Собрал схему все как бы работает, спасибо вам !
Но вот я хочу немного разобраться с отправкой команд с мобыльного по БЛЮ ТУЗ.
Поясните как правильно формировать команды ?
Спасибо !!!
Alex_EXE пишет 31.07.2018 в 01:08 #
Смотрите раздел — Протокол управления
Виктор пишет 03.08.2018 в 12:25 #
Добрый день !
С отправкой команд разобрались ! Спасибо !
Но команды работают только с терминала на компе где создан виртуальный COM порт БлюТуза. С терминала на андроиде команды не работают. Я так понял что все связанно именно с COM портом ?
Помогите мне понять принцип работы устройства в плане сотрудничества Отправитель-БлюТуз-PIC16. НС-05 выполняет только передачу данных, в каком виде она поступает на НС-05 с компа ?
СПАСИБО !
Alex_EXE пишет 17.08.2018 в 03:16 #
Для отправки команд на блютуз модуль нужно сделать несколько вещей, т.е. подготовить модуль:
1. Сначала подключить только один модуль к терминалу и настрить на нём: название, пин код, скорость по умолчанию 9600 8N1.
2. Далее проверьте, работает ли он по умолчанию на приём. Подключитесь теперь к нему с телефона и проверьте, ка он принемает команды, если все хорошо то
3. Подключите настроенный модуль к контроллеру
4. сопрягите с ним источник команд.