ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

Разработка Android-контроллера для управления RGB светодиодной лентой. Часть 1

Журнал РАДИОЛОЦМАН, январь 2014

Вадим Колесник, Тирасполь

Android Bluetooth RGB controller - простое аппаратно-программное решение для управления RGB светодиодной лентой или RGB светодиодами посредством Android-устройства с поддержкой Bluetooth

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Статья носит ознакомительный характер, и в ней я постараюсь максимально подробно описать процесс создания простой системы, с помощью которой можно удаленно управлять RGB светодиодной лентой (или RGB светодиодами) посредством любого Android-устройства с интегрированным Bluetooth-модулем (Рисунок 1). Материал будет полезен не только начинающим радиолюбителям, осваивающим микроконтроллеры, но и профессионалам, интересующимся простым способом реализации беспроводного обмена данными Android-устройств с микроконтроллерными системами.

Внешний вид системы управления RGB светодиодной лентой по Bluetooth интерфейсу.
Рисунок 1. Внешний вид системы управления RGB светодиодной лентой по Bluetooth интерфейсу.

Общие сведения, состав аппаратной части и принципиальная схема.

Отличительной особенностью данного проекта является простота аппаратной и программой части системы, в состав которой входят Bluetooth-контроллер, портативное Android-устройство с установленным приложением (смартфон, планшет), выполняющее функции пульта ДУ, и источник питания 12 В/3 А (Рисунок 2). В статье мы рассмотрим в некотором роде демонстрационную версию системы, раскрывающей основные ключевые моменты аппаратной и программной реализации.

Bluetooth-контроллер представляет собой компактное устройство, состоящее из AVR микроконтроллера (МК) Atmel ATmega8, миниатюрного Bluetooth-модуля HC-05 [4], силовых N-канальных MOSFET ключей, интегральных регуляторов напряжения, светодиодов статуса и нескольких пассивных элементов.

Рисунок 2. Блок-схема системы управления RGB светодиодной лентой по Bluetooth интерфейсу.

Программа микроконтроллера очень проста и разработана в интегрированной среде разработки AVR Studio 4 на языке Си.

Программное приложение для Android-устройства разработано в несложном и легким в освоении, но при этом достаточно функциональном графическом редакторе MIT App Inventor Beta.

Основные характеристики системы:

  • аппаратная часть (Bluetooth-контроллер):
    • доступный, дешевый и простой в применении Bluetooth-модуль HC-05;
    • реализованные на МК 3 канала 8-разрядной ШИМ для управления светодиодами;
    • в качестве силовых ключей используются N-канальные MOSFET в корпусе для поверхностного монтажа;
    • автономная работа – не требуется постоянная связь по Bluetooth с Android-устройством;
    • дальность связи 10-15 м;
    • напряжение питания 12 В;
    • ток потребления Bluetooth-контроллера (без светодиодной ленты):
      • Bluetooth-модуль в режиме поиска: 55 … 60 мА;
      • при установленном соединении с Android-устройством и отсутствии команд: 22 … 27 мА;
      • прием и обработка команды: 38 … 42 мА;
    • два светодиода для индикации режима работы Bluetooth-контроллера;
    • возможность реализации 10-разрядного ШИМ управления;
    • возможность реализации управления различными световыми эффектами;
  • простое приложение для Android-устройства:
    • понятный и достаточно информативный графический пользовательский интерфейс;
    • отображение МАС адреса подключенного Bluetooth-контроллера;
    • возможность ручной установки MAC-адреса;
    • сервисные сообщения об ошибках соединения с Bluetooth-контроллером;
    • кнопки быстрого выбора цвета свечения;
    • возможность ручной установки цветовой гаммы;
    • информирование о состоянии подключения;
    • возможность наращивания функционала (потребуется модернизация программы микроконтроллера).

Изначально для разработки и отладки системы автор использовал МК серии ATmega128, установленный на отладочную плату собственной разработки. Принципиальная схема доступна для скачивания в дневнике автора на форуме сайта rlocman.ru [3]. Такой подход был обусловлен большим количеством свободных портов МК, достаточным объемом памяти и, самое главное, наличием в микроконтроллере отладочного интерфейса JTAG. При необходимости автор предоставит принципиальную схему и прошивку для этого МК.

Принципиальная схема Bluetooth-контроллера на микроконтроллере ATmega8 изображена на Рисунке 3, список примененных электронных компонентов приведен в Таблице 1. Схема и печатная плата разрабатывались в системе Proteus 7.7 SP2 [1]. Минимальное количество компонентов позволяет собрать схему на макетной плате или навесным монтажом.

Таблица 1. Список использованных компонентов
Обозначение
в схеме
Номинал Примечание
R1, R2 68 Ом Корпус SMD 1206
R3, R4, R5 10 кОм Корпус SMD 1206
R6, R7, R8,
R9, R10
220 Ом Корпус SMD 1206
С1 1000 мкФ 16 В  
С2 0.47 мкФ  
С3, C4, C5 100 мкФ 10 В Корпус SMD
U1 LM7805 Возможно применение
LM78L05
U2 UTC1117Y33 Или аналог
в корпусе SOT223-3
DD1 ATmega8 Корпус PDIP28
Q1-Q3 APM3055L Или аналог
в корпусе TO-252 
D1, D2 светодиод (3 мм)  
X1 кварцевый резонатор
11.0592 МГц
Опционально

 

Принципиальная схема Bluetooth-контроллера RGB светодиодной ленты.
Рисунок 3. Принципиальная схема Bluetooth-контроллера RGB
светодиодной ленты
.

Bluetooth-модуль HC-05 подключается к МК ATmega8 посредством интерфейса UART (порты PD0/RXD и PD1/RXD). О текущем режиме работы Bluetooth-модуля (поиск, установление соединения, режим AT команд) пользователя информируют два светодиода D1 и D2.

Стоит отметить, что в продаже доступны несколько вариантов Bluetooth-модулей, отличающихся конструктивным исполнением (Рисунок 4) и прошивкой. Чаще всего встречаются модули установленные на переходную плату с собственным регулятором напряжения, светодиодами статуса и выводами для подключения к МК. В авторском варианте схемы и печатной платы используется Bluetooth-модуль без переходной платы, который подключается к основной плате Bluetooth-контроллера с помощью гибкого шлейфа  (Рисунок 5). Другими словами, для такого решения потребуются установка микросхемы регулятора напряжения 3.3 В, светодиодов статуса и разъема для подключения к МК.

Внешний вид Bluetooth-модуля HC-05, установленного на переходную плату с регулятором напряжения и разъемом для подключения.
Рисунок 4. Внешний вид Bluetooth-модуля HC-05, установленного на переходную плату с регулятором напряжения и разъемом для подключения.
Bluetooth-модуль HC-05 в авторском варианте подключается к плате с помощью гибкого шлейфа
Рисунок 5. Bluetooth-модуль HC-05 в авторском варианте подключается к плате с помощью гибкого шлейфа.

На принципиальной схеме участок с регулятором напряжения 3.3 В на микросхеме серии UTC1117Y33 (или аналогичной, например, CYT8117T33) отмечен надписью «Опционально» именно из-за этих конструктивных особенностей Bluetooth-модулей. Если вы используете модуль с переходной платой, то указанный участок исключается из схемы, изменяется разводка разъема подключения и, соответственно, немного видоизменяется печатная плата [2]. Распайка гибкого шлейфа для подключения Buetooth-модуля к разъему на печатной плате изображена на Рисунке 6.

Рисунок 6. Схема распайки Bluetooth-модуля и его подключение к разъему на печатной плате.

Несмотря на то, что Bluetooth-модуль имеет напряжения питания 3.3 В, его цифровые входы/выходы являются 5 В совместимыми и могут подключаться к МК с напряжением питания 5 В без схем преобразования логических уровней.

Микросхема стабилизатора 5 В серии LM7805 используется для питания МК, а также в качестве предварительного понижающего регулятора напряжения для микросхемы стабилизатора 3.3 В (максимальное входное напряжение для этих микросхем не должно превышать 9 В). Однако возможно применение микросхемы серии LM78L05, ввиду того, что потребляемый МК и Bluetooth-модулем ток не превышает 65 мА. (Максимальный выходной ток LM78L05 составляет 100 мА). В ходе тестирования был выявлен незначительный нагрев микросхемы регулятора, когда Bluetooth-модуль находится в режиме поиска.

После программной инициализации периферии МК выходами 8-разрядных аппаратных блоков ШИМ назначаются порты PB1 (OC1A), PB2 (OC1B), PB3 (ОС2), к которым подключаются силовые N-канальные MOSFET ключи APM3055L с соответствующими резисторами в цепях затворов и между истоком и затвором. При работе с RGB светодиодной лентой длиной 5 м (светодиоды типоразмера 5050) нагрева силовых ключей не происходит. Также возможно применение любых мощных MOSFET в корпусе для поверхностного монтажа, например, транзисторов серии K3918. В процессе тестирования схемы в трех каналах ШИМ автор использовал указанные силовые ключи (один APM3055L и два K3918, что бросается в глаза на Рисунке 9), и разницы в установке цветовой гаммы и яркости не заметил.

Тактирование МК осуществляется от внутреннего осциллятора 8 МГц, однако на схеме указан опциональный кварцевый резонатор 11.0592 МГц. Кварцевый резонатор позволит повысить надежность обмена данными по UART. Испытания системы при тактовой частоте МК 8 МГц и скорости работы UART 9600 бит/с показали, что обмен данными ведется достаточно надежно, и сбоев обнаружено не было.

Также на схеме изображена перемычка (джампер) J1, предназначеная для перевода Bluetooth-модуля в режим AT команд с целью его конфигурирования и определения текущих параметров.

Все предлагаемые варианты печатных плат являются односторонними (Рисунки 7, 8). Коннектор для внутрисхемного программирования в авторских вариантах схем отсутствует, что связано с желанием минимизировать размеры платы, поэтому микроконтроллер устанавливается в DIP колодку, чтобы его можно было его извлечь для программирования.

Вид печатной платы для авторского варианта схемы
Рисунок 7. Вид печатной платы для схемы, изображенной на Рисунке 3.
Вид печатной платы при использовании микросхемы регулятора напряжения 78L05 и варианта Bluetooth-модуля на переходной плате.
Рисунок 8. Вид печатной платы при использовании микросхемы регулятора напряжения 78L05 и варианта Bluetooth-модуля на
переходной плате.

Внешний вид готовой платы со стороны установки smd компонентов изображен на Рисунке 9. Как видно, печатная плата изготавливалась в домашних условиях по ЛУТ-технологии без лужения печатных проводников.

Вид авторского варианта печатной платы с установленными компонентами
Рисунок 9. Вид авторского варианта печатной платы
с установленными компонентами
.

Ссылки

  1. Принципиальные схемы и рисунки печатных плат для варианта Bluetooth-модуля без переходной платы (Proteus 7.7 SP2) – скачать
  2. Принципиальная схема и печатная плата для варианта Bluetooth-модуля на переходной плате (Proteus 7.7 SP2) - скачать
  3. Документация на модуль HC-05 и утилита для его настройки - скачать
  4. Отладочная плата на микроконтроллере ATmega128
  5. Калькулятор Fuse-битов AVR микроконтроллеров
 

Содержание цикла «Разработка Android-контроллера для управления RGB светодиодной лентой»

  1. Часть 1
  2. Часть 2
  3. Часть 3
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Здравствуйте! Если можно скиньте описание монтажной платы авторского варианта и фото самого устройства. Заранее благодарен!!!
  • вопрос собственно к кому?
  • Здравствуйте. Просьба к автору.Вы не могли бы выложить на форум - исходники проекта для Atmega128.Хотелось бы глянуть. Дело в том,что я хочу переложить проект на Atmega328.А у нее по-моемому схожи названия регистров.
  • Если я их найду, то выложу. А по большому счету, там то и "перекладывать" нечего...
  • Нашел... Сразу оговорюсь, в исходниках много лишнего, что-то ненужное закомментировано, что-то нет...
  • Здравствуйте. Не получается настроить Таймер2 для Atmega328,под данную схему : Функция PWM_init : Чувствую неправильно прописан TCCR2A.Не подскажите?
  • я постараюсь завтра вам помочь. Изначально думал сразу скомпилить под mega328.
  • Извините, что задержался с ответом. Дело в том, что таймер 2 в мк ATmega328 имеет два канала ШИМ. Нам нужно использовать из них только один. Для конфигурирования таймра 2 используются два регистра: TCCR2A, TCCR2B. Например, если будем использовать канал ШИМ OC2A, то нужно записать в регистры таймера следующие значения: TCCR2A=0x83; TCCR2B=0x01;
  • Спасибо. В протеусе заработало.Разбираюсь дальше...
  • Добрый день! Выложите пожалуйста полный список необходимых комплектующих. И возможно ли приобрести данное устройство и в какую цену.
  • Список использованных комплектующих приведен в Таблице 1 в [URL="http://www.rlocman.ru/shem/schematics.html?di=151052#A3"]первой части статьи[/URL]. К этому списку добавьте Bluetooth модуль HC-05. Насчет того, чтобы приобрести устройство - подобное решение я увидел в китайских интернет-магазинах уже после выхода статьи. Я может быть и смог бы изготовить мелкую серию этих устройств, но как выяснилось основная проблема - доставка. Почтовые отправления и курьерские службы доставки твердят одно - с моего региона в страны таможенного союза электронные устройства не принимаются для доставки (от частного лица к частному). Устройство довольно простое в сборке, и не обязательно делать печатную плату для него - я думаю многие смогут самостоятельно его собрать. В большинстве случаев трудности только с программированием микроконтроллера.
  • на андроид 4.4.2 не работает, ошибка 503 ((
  • почиму можыт возникать ошыбка 504 и 503?
  • Прошу прощения, что оперативно не смог ответить на вопросы.... Итак, ошибка 503 и 504 обозначают, что проблема в соединении смартфона/планшета с Bluetooth-модулем. В частности, например если неправильно указан MAC-адрес Bluetooth-модуля, либо этот адрес не добавлен в список подключенных устройств в системе (см. настройка и подключение Bluetooth устройств в смартфоне/планшете). Сейчас проверил на ОС Android 4.4.4 - все работает, правда пришлось повозится с подключением и добавлением нового Bluetooth-устройства в телефоне, и подтверждения достоверности соединения (ну... как-то так)
  • Блогадорю вас за отве!! В меня возникла проблема з работой схемы, я ток начинающий и много чево непонимаю. Зделал плату, вместо APM3055L использовав LR2805, стабилизатор на 3.3 В выбросил (Bluetooth модуль HC-05 на переходной плате брал [url]http://arduino-ua.com/prod999-bluetooth-modyl-hc-05[/url]), прошыл микроконтролер спомощю саморобного програматора USBasp ([url]http://easyelectronics.ru/usb-programmator-avr-usbasp.html[/url]). Нажаль схема неработает незнаю почиму(смартфон подключилса к нормально Bluetooth но на команды схема нериагирует (лента несветитса ниодним цветом, напряжения на выходах управления польовиками(на затворах) равно 0. Проверить параметры Bluetooth модуля нечем:(, можыт ли он быть причиной? Ещо вопрос в стате сказано: "Чтобы не вводить известный MAC адрес каждый раз при запуске приложения, необходимо внести значение переменной BT_address в исходном коде приложения (MAC адрес вашего Bluetooth-модуля), скомпилировать его уже с новым параметром и переустановить приложение на своем телефоне/планшете" я нерозбираюся MIT App Inventor 2 (впервые столкнулса ) можете написать подробно как ето зделать, бажано скриншоты, если вам нетежело, нет то нет:). Большое спасибо!!!!
  • Хорошо, в данный момент времени я не могу рассказать вам как проверить, но постараюсь в скором времени подготовить описание процесса проверки и наладки схемы и приложения.
  • Привет парни ! Помогите с советом ! Собрал сию схему все работает кроме команд на установку яркости ! Я так понимаю что за яркость отвечает символ S, в hex это 53. Помогите мне разобраться. Спасибо !
  • Нет, символ "S" - это идентификатор режима работы, в данной прошивке не используется. Команда установки яркости (но это не отдельные команды, чтобы вы понимали) - при управлении слайдами каналов RGB, формируются стандартные команды @RxGxBxSxMx, в которых меняются значения параметров R, G, B - эти значения и устанавливаются в ШИМ контроллера, соответственно меняется яркость того или иного канала...
  • Спасибо за ответ ! В своей проге на андроид для управления диодами я так и сделал регулировку яркости, при изменении ползунка просто минусовал или плюсовал значения переменных RGB. Режим яркости работает. Скажите а вы не могли бы скомпилить прошивку и с режимами S и М ? Хотелось бы сделать приложение в котором есть режим рандомного выбора цвета и уровня яркости ! По сути под вашу прошивку на мегу нужны только параметры R G и B. Плату переделал под себя , HC-05 использовал без переходной платы ! Ключи использовал L2203n при токе 10 ампер на ленте 5 метров в режиме белого цвета нагрева совсем нет ! Мега8 TQFP32. Выкладываю печатку ! Спасибо за статью !!!!
  • Дело не в том чтобы ее скомпилировать с этими режимами... Режимы еще нужно придумать и написать, а уж потом компилировать ))) При всем желании, но на данный момент просто нет времени... Можете попробовать сами...
Полный вариант обсуждения »