понедельник, 13 октября 2014 г.

Укрощение фонаря Element LLM-01


  Компания Element неплохо постаралась, когда разрабатывала эту реплику. Очень точное соответствие оригиналу: ИК и красный лазеры, ИК-подсветка и фонарь, переключение режимов, выделенная кнопка для фонаря - всё это реализовано просто шикарно. Почти. Есть несколько неприятных моментов, которые можно исправить теми или иными способами. Чем и займёмся.

Проблема 1: Косоглазие и двоение

  Лазеры косят. Не в том смысле, что сложно их привести к нужному знаменателю, просто рядом с нужным пятном есть еще и ненужное. Плюс со стороны очень хорошо видно работающий излучатель.
Причина - прозрачные окошечки, которыми закрыты лазеры.


Решение: удалить окошечки. Аккуратно отколупываем крышечки, которые снаружи налеплены, вытряхиваем стеклышки (которые прозрачные кусочки пластика, а не стеклышки), ставим крышки обратно (на клей). Опционально можно покрасить черной краской внешнюю поверхность лазера (разумеется, линзу красить не стоит).

Проблема 2: Синька 

  Всё хорошо в LED фонариках, кроме спектра. Об этом можно ругаться очень долго, но факт остаётся фактом - фонарики с ксеноном светят разборчивее. В смысле даже при меньшей яркости видно лучше, чем с вдвое более ярким LEDом. 
  Я заметил, что хорошие светодиоды Cree (последних серий) c более теплым свечением (цветовая температура до 3500К) более "разборчивы", чем чисто белые (6500К). Поэтому светодиод можно заменить на другой.
  Выкручиваем весь блок фонаря, раскручиваем морду, аккуратно вытряхиваем стекло и коллимационную линзу за ним и имеем доступ к смонтированному на теплоотводе светодиоду.
Отпаиваем провода и выковыриваем его (он приклеен теплопроводным компаундом), заменяем светодиод на приглянувшийся (я сажаю на теплопроводную пасту КПТ-8), подпаиваем провода соблюдая полярность и собираем всё взад. Скорее всего, новый светодиод не будет совпадать со старым по размеру и характеристике линзы. Поэтому световой конус получившегося гибрида нового светодиода и старой коллимационной линзы будет отличаться от оригинала. В моем случае область покрытия фонаря существенно увеличилась, как следствие упала яркость освещения, даже учитывая бОльшую светоотдачу применённого светодиода (Cree XT-E).
Так как примененный диод  имеет бОльшую мощность, то можно решить проблему, разогнав его. Для этого отколупываем "донышко" - на обратной его стороне собран драйвер (блок питания) этого самого светодиода.
  Надо найти токозадающий резистор. На фото он обведён. Ток определяется по формуле 215мВ/R. 205 - это константа из доки по чипу драйвера (). В моем стоял драйвер с буковкой А, поэтому там 205+-5%мВ. Берём наибольшее значение, чтобы ни в коем случае не спалить светодиод. Ток светодиода (максимальный) по доке светодиода 1.5А. 
  Осталось найти R=0.215/1.5=0.144 Ом. Надо заменить указанный резистор на другой резистор, с номиналом НЕ МЕНЕЕ 0.15 Ом. Чтобы не насиловать светодиод (и для экономии) был выбран номинал 0,18 Ом, что обеспечит ток порядка 1,14 А, чего более чем достаточно. Лишь бы батареи его отдали.
  Скажу сразу - результат ЧУДОВИЩЕН. Вроде бы и светит не так ярко, как те же реплики Surefire M300 (они сведены в очень узкий пучок), но покрывает просто огромную площадь. Очень хорош при охране баз ночью.

Проблема 3: Чревоугодие

  К сожалению это самая большая проблема. Или инженеры компании конченые лохи, или отдел маркетинга перестарался со снижением себестоимости. Как бы там ни было, а факт остаётся фактом: фонарь активно жрёт энергию даже в выключенном состоянии. Фактически, он съедает комплект свежих батарей чуть больше чем за сутки, а комплект аккумуляторов - за ночь простоя. Единственный способ избежать этого - вытаскивать батареи во время неиспользования. Для оперативности можно подложить кусочек пластика под контакт батареи и перед ночной фазой его вытянуть. Но это не наш метод. Надо разобраться и победить.
  Вскрываем пациента. 



 
  Анализ потрохов показал, что схема с микроконтроллером (современная инкарнация древнего, как бивни мамонта микроконтроллера… а, собственно, какая разница что там стоит). Для питания оного контроллера стоит простой, как три копейки стабилизатор reg1117-3.3 (выходное напряжение 3.3 вольта). Вполне хороший стабилизатор, надежный и с малым падением напряжения, но для носимых применений не подходит: он сам по себе потребляет порядка 4 мА тока. То есть для батарейки емкостью около 1000 мА/ч (это очень неплохие батареи) он "выжрет" весь запас за 250 часов. Вроде неплохо, 10 дней в режиме ожидания уже хлеб.
  Далее, микроконтроллер. Видимо, мама не научила программистов, что в микроконтроллерах есть режимы пониженного энергопотребления, сна и глубокого сна, поэтому микроконтроллер потребляет еще порядка 20мА чисто для ядра. Вместе с батарейкой они съедят  батарейки за 41 час. А вот это уже похоже на ту ситуацию, что мы имеем.

  Итак, надо заменить стабилизатор, перешить микроконтроллер на программу с использованием режимов ожидания и ура - можно получить шикарный дивайс. И всё бы ничего, да не умею я работать с этим самым микроконтроллером. Зато я могу написать программу для микроконтроллеров семейства AVR или ARM Cortex-М. Осталось подумать и выбрать чего применить.

  Собственно, выбирать тоже не придётся, т.к. паять на коленке те же STM32F10xx на ядре ARM та еще радость. Поэтому взял я простой и проверенный не в одном проекте Atmel tiny2313 и пошел выбирать схему и остальные ништяки.

  Со стабилизатором не всё так гладко. Надо найти такой стаб, который:

  1. имеет сверхмалое собственное потребление;
  2. работает с микротоками, так как не все стабилизаторы умеют стабилизировать малые токи, та же 1117 требует потребления нагрузкой порядка 5мА для уверенной работы;
  3. доставаем, так как к примеру хорошие полевики надо заказывать за границей, сюда их просто не возят.
  После извращённо долгих поисков и шатаний по интернету стаб был найден случайно: пришел со списком в местное отделение Промэлектроники и начал спрашивать подходящие стабы… К десятой отсутствующей позиции менеджер предложил просто найти подходящее из имеющегося. 
  Этим стабом оказался LP2980 - микромощный стабилизатор от Texas Instruments. Отдаёт 50 мА в нагрузку, имеет очень малое падение напряжения (от 7 до 120 мВ при нагрузке 1 и 50 мА соответственно), работает при нагрузке от микроампер, потребляет порядка 100мкА сам… Да ещё и места на плате не занимает - корпус sot23-5, то есть 3х3мм с выводами. Правда, в наличии были только на 3.8В, но так даже интереснее.

  Далее, по включению фонаря. Надо минимизировать потери, чтобы можно было выдаивать батареи почти насухо. Для этого надо ключать полевиками. Выбор пал на N-канальные IRLML2502. Тот же крохотный корпус - sot23 (но с 3 выводами), ток до 4А, внутреннее сопротивление 45мОм.

  Тактование микроконтроллера - внутреннее, меньше паять. Особой точности измерения времени всё равно не надо. Частота - 4 МГц, что даёт при питании в 3.8В собственное потребление около 3 мА. Это в активном режиме, в режиме сна это уже 1 мА, а в режиме глубокого сна 2 мкА. Итого, в режиме отключки всё наше хозяйство будет потреблять около 0.1мА, так что той самой батареи в 1000мА/ч теоретически хватит на 10 тысяч часов. Почувствуйте, как говорится, разницу. Даже в ждущем режиме (без фонарей и лазеров) его теоретически хватит более чем на 334 часа или ровно неделю. Это без учёта экономии за счет входа в режим сна.

  Из 50мА, которые стабилизатор выдаёт гарантированно у нас задействовано всего 3мА, поэтому мы можем подключить лазеры непосредственно к выводам микроконтроллера.  
  Собственное потребление у красного лазера 7 мА, а у ИК лазера 14 мА. Подсветку для ПНВ можно накормить стандартными 20мА, использовав интегральный источник тока NSIC2020BT от ON Semiconductor (или поставить банальный резистор на нужный ток). Питание основного светодиода требует нулевых затрат: полевик в открытом состоянии не потребляет ток от управляющей цепи, а само питание пойдёт напрямую от батареек.

  Режимы решил оставить прежними, причем в среднем положении переключателя устройство уходит в глубокий сон, просыпаясь при переключении режима. В остальных режимах по возможности переходит в режим сна.

  Так как используется другой микроконтроллер и вообще всё другое, то была изготовлена соответствующая плата с обвязкой. Не обошлось без проводочков, т.к. не было возможности (или желания?) делать двухстороннюю плату.

Да будет плата!

  Плата была разработана в Cadsoft Eagle, так как он весьма хорош, бесплатен для хобби-применения и я с ним уже не один десяток плат наколбасил, что немаловажно.
  Плату делал по подобию формы родной платы, в остальном - всё без фанатизма, с подгонкой по месту и ручной разводкой проводников. Получилось вот что:

  После лазероутюжного наколеночного изготовления, травления, сверления и прочей канетели получена плата. Обратная сторона требует ручной доводки (ох уж эта моя лень).
 

  Надо монтировать в фонарь...

Монтаж.

  Разбираем фонарь, откручиваем все саморезы, отпаиваем обвязку. Снимаем ручку с переключателя режимов и осторожно вынимаем основную плату с платой переключателя в сборе. Можно, конечно, и демонтажной оплёткой отпаять плату переключателя…

 

  Берем нашу новую плату. подгоняем положение в корпусе и отверстия под саморезы и переключатель.
 



  Переносим пружины с родной платы.
 
 Не забываем про проводку питания (лень частенько боком выходит).



  Установка в фонарь. Защитное покрытие - опционально.


 

 Осталось смонтировать детали и подпаять кабель программирования (после написания и отладки программы его можно будет отпаять).

  Ну вот, осталось всего ничего, написать программу и отладить её.

Программа.

  Всё просто и без изысков: в основном цикле программы почти ничего, там разве что в режим сна всё переводится. Реакция на кнопки и переключение режимов через прерывания. В целом работает как классический автомат состояний, переход по кнопкам и прочим фигням. Плюс таймер (чисто чтобы был).
  Полученный объем программы со всем функционалам реплики Element'а получился порядка килобайта. А в наличии есть еще цылый непаханный килобайт! И тут Остапа понесло…..
  В результате в килобайт было всунуто еще:
1) изменение яркости фонаря (с помощью ШИМ, таймер как раз пригодился).
2) переключение режима лазера: обычный и мигающий (он заметнее), с возможностью изменения частоты мигания.

  Осталось отпаять шлейф программирования и наслаждаться результатом.

Результат.

  Он достигнут. Получен агрегат с тем же функционалом, бонусами в виде новых режимов и главное: со сверхнизким потреблением в выключенном состоянии. По измерениям оно составило 170 мкА. В режиме ожидания (когда не включены лазеры и фонарь) ток 1,5 мА. Даже в этом режиме батарей хватит на 500+ часов.

  Не буду рассказывать, что я пробовал прождать столько времени для проверки, но несколько месяцев с момента установки батарей и лежания на полке уже прошло. Всё до сих пор включается, и фонарь и лазеры. Батареи вроде бодрые, 3.01В и 2.97В (стоит китайский литий, не аккумы).