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



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

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

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

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

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

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



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

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



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


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

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

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



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

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

    Проект развивается. И надеюсь к следующему Новому году гирлянда будет управляться голосом и из облаков.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 21
    • +1
      Носимая новогодняя гирлянда.

      Для шагающей ёлки?
      А собссно по сабжу — красиво и добротно сделано.
      Респект.
      • +1
        Например приманка для отлова гиков
        https://geektimes.ru/post/252988/
        image
      • 0

        Замеры потребления гирлянды делали?
        По грубым прикидкам на таком световом паттерне хороших батарей должно хватить максимум на 40-60 минут.

        • 0
          Интересно то, что выключенная лента с 122 светодиодами потребляет около 20 мА.
          Показанный на гифке паттер потребляет 800 мА.
          • 0

            Каждый адресуемый контроллер 2812 потребляют постоянно, даже если управляемый им светодиод не горит.

      • 0
        Носимая — это что бы носить с собой или на себе, верно? Ну, например, как детали одежды, так? Хватит аккумуляторов, примерно, на час. Далее так и вижу:

        Подожди, я сейчас платье подзаряжу и пойдём!

        Ну или можно сделать зарядку от движений. Картинка номер 2:

        — а чего это её так колбасит?
        — да она платье заряжает.

        Ну это я так, чисто поржать))
        • 0
          Не понимаю, как это работает. Что за хитрая светодиодная лента с тремя выводами, позволяющая добиться разного цвета светодиодов в одной ленте?
          Обычно у RGB-лент 4 вывода — земля и 3 анода R, G, B.
          • 0

            В каждом отрезке чип, который управляет цветом на своем участке

            • 0
              Вся магия в светодиодах WS2812B.
            • 0
              То, что у вас нет сбоев при управлении лентой уровнем 3в — сущее везение. Будет работать через раз(от экземпляра к экземпляру).
              • 0
                На таком принципе сделано около сотни устройств.
                Отказов ни разу не было.
                С даташитом все согласуется. Согласно нему граница логических уровней лежит в пределах 2 В при питании 5 В.
                Обычный TTL уровень.
                • 0
                  Все так, вот только TTL логика это 5В, а не 3,3… и по документации уровень самой плохой лог. 1 получается 0,7*Uпит~3,5В. Поэтому я вам и говорю, что вам чисто повезло (скорее всего у вас питание проваливается при работе и логический уровень начинает совпадать).
                  • 0
                    TTL вполне себе стабильно работает и при лог.1 равной 2.5В. Правда есть некоторые «НО», например, потребление самого контроллера и цепей управления растет, что ощутимо для портативного устройства с батарейным и питанием. Ну и конечно это все работает пока в радиусе нескольких метров не появится источник помех — тогда-то все и накроется)))
                    Для игрушки это приемлемо, для китайцев это тоже приемлемо, для серьезного продакшена уже разумеется нет.
                    • 0
                      Надо документацию смотреть в таком случае… я вот не посмотрел — 300 устройств с ws2812 дорабатывать пришлось, хотя до этого от 3,3в управления работало и макет нормально работал, а продакшн не заработал. Хорошо, что малой кровью отделались.
                      • –1
                        Скорее всего проблема была в способе управления. Время рефреша, согласование с волновым сопротивлением кабеля и проч.
                        Уверяю вас от 3 В работает железно. Уж более года производим.
                        • 0
                          Скорее всего, но как изменение уровня управления повлияло на эти вещи? И получается, что документация врет??

                          Я вас уверяю, что вам повезло(такое часто бывает)… либо у вас питание ленты не 5В, а ниже.
                          • –1
                            Не врет, а просто ее надо правильно понимать.
                            Возьмите Vil (уровень логического нуля ) и добавьте Vh (гистерезис) и получите уровень переключения.

                            • 0
                              Пусть будет по вашему.
                              • +1
                                Все классно… уровень нуля… гистерезис… только «мертвую зону» вы учли? «VIL + VH» — это лишь нижняя границы «зоны неопределенности». Вы хоть документацию правильно интерпретируйте. Производитель не гарантирует стабильность работы в данной границе, любые помехи и наводки будут искажать состояние линий и вызывать ошибки, а значит это очередной «хуяк, хуяк и в продакшен» — чисто российско-китайский подход.
                • 0
                  Я измерю и думаю уровень будет еще ниже. Поскольку логика скорее CMOS.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое