- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

Напряжение питания

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

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

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

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

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

Проект состоит из 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.

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

Автор: Indemsys

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/227906

Ссылки в тексте:

[1] K66BLEZ: https://geektimes.ru/post/274100/

[2] — Модуль универсального контроллера для интернета вещей. Тестирование FatFs: https://geektimes.ru/post/274416/

[3] — Модуль универсального контроллера для интернета вещей. Основы программирования: https://geektimes.ru/post/276098/

[4] — Схема модуля: https://github.com/Indemsys/K66BLEZ1/blob/master/PCB/K66BLEZv1.pdf

[5] — Репозитарий проекта: https://github.com/Indemsys/K66BLEZ1

[6] здесь: https://geektimes.ru/post/255548/

[7] Indemsys/K66BLEZ_WS2812B_LED_strip_control: https://github.com/Indemsys/K66BLEZ_WS2812B_LED_strip_control

[8] Источник: https://geektimes.ru/post/284248/