Оглавление:

Управление цветом светодиода RGB своими руками через Bluetooth: 5 шагов
Управление цветом светодиода RGB своими руками через Bluetooth: 5 шагов

Видео: Управление цветом светодиода RGB своими руками через Bluetooth: 5 шагов

Видео: Управление цветом светодиода RGB своими руками через Bluetooth: 5 шагов
Видео: 💡Делаем RGB контроллер и крутой свет для видео 2024, Июль
Anonim
Управление цветом светодиода RGB своими руками через Bluetooth
Управление цветом светодиода RGB своими руками через Bluetooth

В последнее время популярность умных лампочек растет, и они неуклонно становятся ключевой частью набора инструментов для умного дома. Умные лампочки позволяют пользователю управлять своим светом через специальное приложение на смартфоне пользователя; лампочку можно включать и выключать, а цвет можно изменять в интерфейсе приложения. В этом проекте мы создали контроллер умной лампы, которым можно управлять с помощью кнопки вручную или мобильного приложения через Bluetooth. Чтобы добавить немного изюминки в этот проект, мы добавили некоторые функции, которые позволяют пользователю выбирать цвет освещения из списка цветов, включенного в интерфейс приложения. Он также может активировать «автоматическое смешение» для создания цветовых эффектов и изменения освещения каждые полсекунды. Пользователь может создать собственное цветовое сочетание, используя функцию ШИМ, которая также может использоваться в качестве диммера для трех основных цветов (красного, зеленого, синего). Мы также добавили в схему внешние кнопки, чтобы пользователь мог переключиться в ручной режим и изменить цвет подсветки с внешней кнопки.

Это руководство состоит из двух разделов; дизайн GreenPAK ™ и дизайн приложения для Android. Дизайн GreenPAK основан на использовании интерфейса UART для связи. Выбран UART, потому что он поддерживается большинством модулей Bluetooth, а также большинством других периферийных устройств, таких как модули WIFI. Следовательно, конструкция GreenPAK может использоваться во многих типах соединений.

Для создания этого проекта мы собираемся использовать CMIC SLG46620, модуль Bluetooth и светодиод RGB. ИС «ГринПАК» будет ядром управления этого проекта; он получает данные от модуля Bluetooth и / или внешних кнопок, а затем начинает необходимую процедуру для отображения правильного освещения. Он также генерирует сигнал ШИМ и выводит его на светодиод. На рисунке 1 ниже показана блок-схема.

Устройство GreenPAK, используемое в этом проекте, содержит интерфейс подключения SPI, блоки PWM, FSM и множество других полезных дополнительных блоков в одной IC. Он также отличается небольшими размерами и низким энергопотреблением. Это позволит производителям создать небольшую практическую схему с использованием одной ИС, таким образом, производственные затраты будут минимизированы по сравнению с аналогичными системами.

В этом проекте мы управляем одним светодиодом RGB. Чтобы сделать проект коммерчески жизнеспособным, системе, вероятно, потребуется увеличить уровень яркости, подключив несколько светодиодов параллельно и используя соответствующие транзисторы; необходимо также учитывать силовую схему.

Вы можете пройти все шаги, чтобы понять, как чип GreenPAK был запрограммирован для управления цветом светодиода RGB через Bluetooth. Однако, если вы просто хотите легко запрограммировать ИС, не разбираясь во всех внутренних схемах, загрузите программное обеспечение GreenPAK, чтобы просмотреть уже заполненный файл дизайна GreenPAK. Подключите GreenPAK Development Kit к компьютеру и запустите программу, чтобы создать индивидуальную ИС для управления цветом светодиода RGB через Bluetooth.

Конструкция GreenPAK состоит из приемника UART, блока ШИМ и блока управления, описанных в шагах ниже.

Шаг 1: приемник UART

Приемник UART
Приемник UART

Во-первых, нам нужно настроить модуль Bluetooth. Большинство микросхем Bluetooth поддерживают протокол UART для связи. UART означает универсальный асинхронный приемник / передатчик. UART может конвертировать данные между параллельным и последовательным форматами и обратно. Он включает в себя приемник из последовательного в параллельный и преобразователь из параллельного в последовательный, которые синхронизируются отдельно.

Данные, полученные в модуле Bluetooth, будут переданы на наше устройство GreenPAK. Состояние ожидания для контакта 10 - ВЫСОКИЙ. Каждый отправленный символ начинается с логического стартового бита LOW, за которым следует настраиваемое количество битов данных и один или несколько логических HIGH стоповых битов.

Передатчик UART отправляет 1 бит START, 8 бит данных и один бит STOP. Обычно скорость передачи данных по умолчанию для модуля UART Bluetooth составляет 9600. Мы будем отправлять байт данных из Bluetooth IC в блок SPI GreenPAK ™ SLG46620.

Поскольку блок SPI GreenPAK не имеет управления битами START или STOP, мы будем использовать эти биты вместо этого для включения и отключения тактового сигнала SPI (SCLK). Когда контакт 10 переходит в низкий уровень, мы знаем, что получили бит START, поэтому мы используем детектор спадающего фронта PDLY для определения начала связи. Этот детектор спадающего фронта синхронизирует DFF0, что позволяет сигналу SCLK синхронизировать блок SPI.

Наша скорость передачи составляет 9600 бит в секунду, поэтому период SCLK должен быть 1/9600 = 104 мкс. Поэтому мы установили частоту OSC на 2 МГц и использовали CNT0 в качестве делителя частоты.

2 МГц-1 = 0,5 мкс

(104 мкс / 0,5 мкс) - 1 = 207

Следовательно, мы хотим, чтобы значение счетчика CNT0 было 207. Чтобы гарантировать, что мы не пропустим никаких данных, нам нужно задержать тактовый сигнал SPI на половину тактового цикла, чтобы блок SPI синхронизировался в нужное время. Мы достигли этого с помощью CNT6, 2-битного LUT1 и внешних часов блока OSC. Выход CNT6 не становится высоким до 52 мкс после тактовой синхронизации DFF0, что составляет половину нашего периода SCLK в 104 мкс. Когда CNT6 имеет высокий уровень, 2-битный логический элемент LUT1 AND позволяет сигналу OSC 2 МГц проходить в EXT. Вход CLK0, выход которого подключен к CNT0.

Шаг 2: блок ШИМ

Блок ШИМ
Блок ШИМ

Сигнал ШИМ генерируется с использованием ШИМ0 и связанного с ним генератора тактовых импульсов (CNT8 / DLY8). Поскольку ширина импульса регулируется пользователем, мы используем FSM0 (который может быть подключен к PWM0) для подсчета пользовательских данных.

В SLG46620 8-битный FSM1 может использоваться с PWM1 и PWM2. Модуль Bluetooth должен быть подключен, что означает, что должен использоваться параллельный выход SPI. Биты параллельного вывода SPI с 0 по 7 мультиплексируются с DCMP1, DMCP2 и OUT1 и OUT0 LF OSC CLK. PWM0 получает свой вывод от 16-битного FSM0. Если не изменить, это приводит к перегрузке ширины импульса. Чтобы ограничить значение счетчика 8 битами, добавляется еще один конечный автомат; FSM1 используется как указатель, чтобы узнать, когда счетчик достигает 0 или 255. FSM0 используется для генерации импульса PWM. FSM0 и FSM1 должны быть синхронизированы. Поскольку оба конечных автомата имеют предустановленные параметры синхронизации, CNT1 и CNT3 используются в качестве посредников для передачи CLK обоим конечным автоматам. Два счетчика установлены на одно и то же значение, равное 25 для данной инструкции. Мы можем изменить скорость изменения значения ШИМ, изменив значения этих счетчиков.

Значение конечных автоматов увеличивается и уменьшается с помощью сигналов «+» и «-», которые исходят от параллельного вывода SPI.

Шаг 3: блок управления

Устройство управления
Устройство управления

В блоке управления полученный байт передается от модуля Bluetooth к параллельному выходу SPI и затем передается соответствующим функциям. Сначала будут проверяться выходы PWM CS1 и PWM CS2, чтобы увидеть, активирован ли шаблон PWM или нет. Если он активирован, он определит, какой канал будет выводить ШИМ через LUT4, LUT6 и LUT7.

LUT9, LUT11 и LUT14 отвечают за проверку состояния двух других светодиодов. LUT10, LUT12 и LUT13 проверяют, активирована ли кнопка Manual или нет. Если активен ручной режим, то выходы RGB работают в соответствии с состояниями выхода D0, D1, D2, которые меняются каждый раз при нажатии кнопки Color. Он изменяется с нарастающим фронтом, исходящим от CNT9, который используется в качестве дебаунсера нарастающего фронта.

Контакт 20 настроен как вход и используется для переключения между ручным управлением и управлением через Bluetooth.

Если ручной режим отключен и активирован автоматический режим микширования, то цвет меняется каждые 500 мс с нарастающим фронтом, исходящим от CNT7. 4-битный LUT1 используется для предотвращения состояния «000» для D0 D1 D2, так как это состояние вызывает выключение светового индикатора в режиме автоматического микширования.

Если ручной режим, режим ШИМ и режим автоматического микширования не активированы, то красный, зеленый и синий команды SPI поступают на контакты 12, 13 и 14, которые настроены как выходы и подключены к внешнему светодиоду RGB.

DFF1, DFF2 и DFF3 используются для построения 3-битного двоичного счетчика. Значение счетчика увеличивается с импульсами CNT7, которые проходят через P14 в режиме автоматического микширования, или с сигналами, поступающими от кнопки Color (PIN3) в ручном режиме.

Шаг 4. Приложение для Android

Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android
Приложение для Android

В этом разделе мы собираемся создать приложение для Android, которое будет отслеживать и отображать выбранные пользователем элементы управления. Интерфейс состоит из двух разделов: первый раздел содержит набор кнопок с заранее заданными цветами, так что при нажатии любой из этих кнопок загорается светодиод того же соответствующего цвета. Вторая часть (квадрат MIX) создает смешанный цвет для пользователя.

В первом разделе пользователь выбирает вывод светодиода, через который должен проходить сигнал ШИМ; сигнал ШИМ может быть передан только на один вывод за раз. Нижний список контролирует два других цвета, логически включаемые / выключаемые в режиме ШИМ.

Кнопка автоматического микшера отвечает за запуск схемы автоматической смены света, при которой свет будет меняться каждые полсекунды. Раздел MIX содержит два списка флажков, чтобы пользователь мог решить, какие два цвета смешивать вместе.

Мы создали приложение, используя веб-сайт изобретателя приложений MIT. Это сайт, который позволяет создавать приложения для Android без предварительного опыта работы с программным обеспечением с использованием графических программных блоков.

Сначала мы разработали графический интерфейс, добавив набор кнопок, отвечающих за отображение предопределенных цветов, мы также добавили два списка флажков, и каждый список состоит из 3 элементов; каждый элемент выделен в отдельную рамку, как показано на рисунке 5.

Кнопки в пользовательском интерфейсе связаны с программными командами: все команды, которые приложение будет отправлять через Bluetooth, будут в байтовом формате, и каждый бит отвечает за определенную функцию. В таблице 1 показана форма командных кадров, отправленных в GreenPAK.

Первые три бита, B0, B1 и B2, будут удерживать состояние светодиодов RGB в режиме прямого управления кнопками предварительно определенных цветов. Таким образом, при нажатии на любую из них будет отправлено соответствующее значение кнопки, как показано в Таблице 2.

Биты B3 и B4 содержат команды «+» и «-», которые отвечают за увеличение и уменьшение ширины импульса. Когда кнопка нажата, значение бита будет 1, а когда кнопка будет отпущена, значение бита будет 0.

Биты B5 и B6 отвечают за выбор вывода (цвета), через который будет проходить сигнал ШИМ: цветовые обозначения этих битов показаны в таблице 3. Последний бит, B7, отвечает за активацию автоматического микшера.

На рисунках 6 и 7 показан процесс связывания кнопок с программными блоками, которые отвечают за отправку предыдущих значений.

Чтобы увидеть полный дизайн приложения, вы можете загрузить прикрепленный файл «.aia» с файлами проекта и открыть его на основном сайте.

На рисунке 8 ниже показана принципиальная электрическая схема верхнего уровня.

Шаг 5: результаты

Контроллер был успешно протестирован, и было показано, что смешение цветов, наряду с другими функциями, работает надлежащим образом.

Заключение

В этом руководстве была построена схема умной лампы для беспроводного управления с помощью приложения Android. CMIC GreenPAK, использованная в этом проекте, также помогла сократить и встроить несколько важных компонентов для управления освещением в одну небольшую ИС.

Рекомендуемые: