Носимая новогодняя гирлянда. С управлением по Bluetooth LE


А по мне, то лучший способ провести длинные тёмные зимние вечера — это за разработкой алгоритмов для праздничной иллюминации.

Представляю открытый проект новогодней гирлянды на основе LED ленты со светодиодами WS2812B. Гирлянда питается от 4-х AA аккумуляторов. С текущими настройками проект поддерживает 122 светодиода на ленте, но легко может быть расширен до 1000 светодиодов и более. Гибкий перенастраиваемый алгоритм генерации световых эффектов. Проект содержит программу управления гирляндой с телефонов или планшетов, компилируемую без модификаций под iOS, Android и Windows.

Управляется лента в моем проекте модулем
K66BLEZ[1] c микроконтроллерами семейства Kinetis.
Знакомство с модулем K66BLEZ1 было начато в статьях:

— Модуль универсального контроллера для интернета вещей. Вдыхаем жизнь
— Модуль универсального контроллера для интернета вещей. Тестирование FatFs
— Модуль универсального контроллера для интернета вещей. Основы программирования
— Схема модуля
— Репозитарий проекта[2][3][4][5][6]

Высокопроизводительный способ работы со светодиодной лентой на WS2812B был описан здесь[7]. В данном проекте я использую тот же принцип. Как и STM32 микроконтроллеры семейства Kinetis K66 имеют в себе таймеры с доступом по DMA (механизм прямого доступа к памяти минуя процессор). На этот раз я использую прерывания после окончания каждого цикла DMA чтобы обновить состояния светодиодов согласно алгоритму генератора эффектов.

К модулю присоединяемся через макетную плату:

Макетная плата практически ничего не содержит кроме двух разъемов. Один разъем предназначен для подключения аккумуляторов, другой для подключения ленты.

Ниже схема макета (кликабельно):


Интересной особенностью ленты является ее способность работать от гораздо более низкого напряжения чем написано в спецификации. Гирлянда сохраняет работоспособность при понижении напряжения на аккумуляторах до 2.9 В!

При свежих аккумуляторах гирлянда получает напряжение 5 В, но при этом управляющий сигнал подается напрямик с микроконтроллера и имеет амплитуду 3 В и сбоев в управлении светодиодами не происходит.

Так выглядит работа гирлянды на столе в режиме отладки:

Исходники проекта находятся здесь — Indemsys/K66BLEZ_WS2812B_LED_strip_control[8].

Проект состоит из 3-х программных частей:

  • Директория MK66 — содержит проект для микроконтроллера MK66FX1M0VLQ18 модуля K66BLEZ. Микроконтроллер выполняет основное приложение. Работа приложения базируется на операционной системе реального времени MQX.

    Помимо основного приложения проект содержит стеки USB, TCP/IP, файловую систему, отладочный монитор и многое другое. По сути это фреймворк для создания разнообразных приложений где управление гирляндой является просто некоторым простейшим демонстарционным приложением. Среда разработки — IAR 7.70.2.

  • Директория MKW40Z — содержит проект для микроконтроллера MKW40Z160VHT4 модуля K66BLEZ. Микроконтроллер занимается поддержкой связи по протоколу Bluetooth LE. Работа стека Bluetooth базируется на операционной системе реального времени FreeRTOS. Среда разработки — IAR 7.70.2
  • Директория PC_app содержит проект управляющей программы на PC в среде RAD Studio 10.1. Использован кросплатформенный фреймворк позволяющий компилировать приложение под Windows, iOS и Android.

Проект развивается. И надеюсь к следующему Новому году гирлянда будет управляться голосом и из облаков.

По теме: ( из рубрики )

    Оставить отзыв

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    *
    *

    11 + семнадцать =

    Top