Решил поделиться результатами своего-хобби проекта, возможно кто-то из любителей DIY найдет это интересным и захочет повторить или как-то использовать. Был у меня такой фонарик "Космос 6011LED", его все еще можно купить на ozon или wildberries (и не только там). Однажды он сломался, я его разобрал и увидел что корпус очень хорошо подходит для модификации - все модульное, есть свободное место и можно заменить его электронную начинку своей собственной: поменять светодиоды на цветные, добавить микроконтроллер для "умного" управления их яркостью и в итоге сделать его многоцветным и многорежимным.

В оригинале фонарик дает холодный белый свет. Слева на фото оригинальный экземпляр, справа - модифицированный.

Оригинальный фонарик (слева) и модифицированный (справа)
Оригинальный фонарик (слева) и модифицированный (справа)

Подробно о процессе переделки - в это видео

По светодиодам - выбор пал на LED формата "пиранья", они хорошо вписываются в этот корпус и дают достаточно яркий свет. По высоте в каждую линейку помещается как раз 8 светодиодов, 4 пары: красный, желтый, зеленый и синий. Желтый я добавил к стандартному RGB трио для того, чтобы сместить цветовую температуру в "теплую" сторону.

Далее на очереди был вопрос с микроконтроллером - какой выбрать. Семейство STM32 для меня было безальтернативным выбором, поскольку уже был опыт работы с ними, а на изучение чего-то нового (arduino например) не было времени и желания. Внутри линейки STM32 - я ранее работал с STM32F407, но его я счел избыточно мощным для такого проекта. Было важно, чтобы у выбранного чипа было доступно 16 выходов ШИМ (для управления 4 линейками LED, по 4 пары светодиодов в каждой). В итоге выбор пал на STM32F103RBT6. При относительно маленьком корпусе LQFP64 - у него доступны те самые 16 выходов ШИМ, по 4 на каждый таймер TIM1 .. TIM4.

В оригинальном фонарике используется свинцово-кислотный аккумулятор на 2 Ач, я решил использовать более емкий литий-ионный на 5 Ач, подходящий по размерам. Оказалось, что не так-то просто подобрать компактный контроллер заряда для литиевой батареи. Сначала я попробовал контроллер MCP73831T-2ACI - он работает, но выдает ток заряда всего 500 мА (маловато для 5Ач) и сильно греется для такого маленького корпуса (sot-23-5). В итоге подошел контроллер TP4056 - он выдает ток зарядки около 1А, если немного позаботиться о теплоотводе (детали на видео, 23:20).

Далее - рутинная работа по дизайну принципиальных схем, разводке печатных плат, подбору элементов. Первая итерация получилась наполовину удачной, (допустил несколько ошибок), но со второго раза получилась практически "чистая" сборка.

Отдельно отмечу момент с питанием микроконтроллера, т.к. здесь я сначала "прокололся" - поставил линейный регулятор на 2.5V, но не посмотрел на его падение напряжения, а оно оказалось огромным - около 1.1V. Как следствие - при разряде литиевой батареи до 3.1V напряжение на выходе регулятора падало до 2V, что является минимально допустимым напряжением питания для этого МК. Ниже - микроконтроллер начинает уходить в reset. Вылечилось заменой на другой линейный регулятор с более низким падением напряжения, около 0.4V. Тогда даже при нижнем напряжении на выходе литиевой батареи, около 3V, на выходе регулятора все еще имеем стабильные 2.5V.

И самый интересный (для меня по крайней мере) блок работ - это разработка прошивки, особенно ее алгоритмической части, определяющей, как светодиоды будут мигать и менять яркость. На базовом уровне управление яркостью идет с помощью ШИМ и таймеров. Каждый таймер управляет яркостью одной светодиодной линейки, но скважностью импульса по каждому из 4-х выходов таймера можно управлять независимо. Далее, "уровнем выше" алгоритм определяет, как будет меняться яркость во времени. Пожалуй самый интересный режим, ради которого я все это делал - это имитация пламени - такое теплое, пульсирующее свечение. С точки зрения алгоритма - яркость каждого столбика меняется по кусочно-линейной функции, с элементом случайности (см. видео, 20:30). Это дало неплохой результат, при том что сам алгоритм несложный.

Неожиданным для меня моментом было то, что этот микроконтроллер "не умеет" нативно работать с числами float - они там эмулируются, и это в разы медленнее, чем операции с числами int (сразу вспомнились компьютеры 386SX без сопроцессора). Пришлось переписать всю математику с использованием только чисел integer, и это сработало.

С самого начала это задумывалось как хобби проект и я не собирался его монетизировать (дорого, нерентабельно), хотелось только сделать несколько таких фонариков на подарки друзьям, что я и сделал (к новому году - самое оно). Файлы проекта я выложил в открытый доступ.

В архиве - принципиальные схемы и печатные платы (разработаны в KiCAD), проект прошивки (разработан в Visual Studio 2015 с плагином Visual GDB). В принципиальных схемах я указывал ссылки на даташиты, почти все можно купить в Чип и Дип. Кое-что пришлось заказать на aliexpress (провода с разъемами JST XH например).

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

Комментарии (10)


  1. Pochemuk
    02.01.2022 11:50

    Осталось прикрутить светомузыку :)


    1. graywolf2004 Автор
      03.01.2022 11:57
      -1

      ну может когда нибудь в следующий раз. Если делать по фен шую, с разделением аудио по частотам, то этот МК stm32f103 вряд ли потянет, а вот F4 думаю справится )


      1. Pochemuk
        03.01.2022 12:56

        Только желтый канал сделать на фон. И чтобы авторегуляция по суммарной яркости была.

        Лет 40 назад светомузыку на тиристорах КУ202Н не делали только совсем ленивые :) Не обошло это и меня стороной.
        Понял, что резкие смены яркости для домашнего использования совсем не смотрятся. Должен меняться цвет, а не яркость.


        1. graywolf2004 Автор
          03.01.2022 18:13

          Я тоже светомузыку делал лет 25-30 назад, куда ж без этого. Модель тиристоров не помню, но были 3 цвета с разделением "басы-средние-верхние" на простых RC-фильтрах (наверное это классика жанра). Пробовал помимо ламп накаливания прикручивать фотовспышки ифк-120 - оно работало и давало прикольный эффект стробоскопа в темноте, но вспышки быстро изнашивались - чернели внутри.


          1. Pochemuk
            04.01.2022 22:00

            Самыми ходовыми были как раз КУ202Н — они работали по переменному напряжению до 400В. Хотя могли применяться и что-то пожиже — до 300В. Но я их и в продаже не видел.

            Ну, разумеется, на самых примитивных фильтрах. Три канала — красный на басах, желтый на средних, зеленый на высоких. И лунный матовый на фоне — он закрывался, когда другие открывались.

            Самое сложное было — цапон-лаком лампы красить. А он тоже со временем темнел от нагрева.


  1. GennPen
    02.01.2022 13:55
    +2

    Неожиданным для меня моментом было то, что этот микроконтроллер "не умеет" нативно работать с числами float - они там эмулируются

    Странно что это было такой неожиданностью, вполне ожидаемо, что младшие модели не имеют такой аппаратной поддержки. С float аппаратно умеют работать F4 и выше.

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


    1. graywolf2004 Автор
      03.01.2022 11:54

      Я до этого имел дело только с F4 и только в рамках другого хобби проекта и думал что поддержа float это само собой, оказалось нет. Насчет резисторов - это потому что могут быть пиковые превышения тока из за паразитных емкостей на затворах кмоп? Тоже не знал, спасибо за инфо. Тут я думаю что вряд ли что то выгорит из за этого, я 5 экземпляров собрал, пока все работают.


      1. GennPen
        03.01.2022 12:09

        Ну, паразитной емкостью не совсем правильно называть, потому как по сути затвор сам по себе является конденсатором.


  1. gameplayer55055
    02.01.2022 16:28
    +1

    Сделай гайвер лампу. Корпус маленький, можно использовать адресную ленту там где диоды поплотнее


    1. graywolf2004 Автор
      03.01.2022 12:28

      О! Интересный проект, не знал про него, спасибо за инфо. Я бы конечно не стал так заморачиваться, особенно с приложением для Андроид. Адресную ленту тут можно конечно, тогда будут RGB столбики по всем линейкам, а у меня напрямую с МК и 16 каналов ШИМ это максимум что оттуда удалось выжать. Зато интересно было поиграться с разными частотами ШИМ, то что на ШИМ примерно в 1 кГц был отчетливо слышен свист проводов - меня удивило.