|
|
|
4484 4 2 0 |
|
Опции темы | Поиск в этой теме |
21.01.2013, 18:33 | 1 |
Можно спрашивать
Регистрация: 31.08.2011 Последняя активность: 10.07.2022 15:34 Адрес: Волгоград
Сообщений: 7594
Сказал(а) спасибо: 1793
Поблагодарили: 2512 раз(а) в 1343 сообщениях
|
Нестандартный алгоритм для кнопки обратного клика
Всем заготовить помидоры, но не кидаться, пока не прочитаете все.
Алгоритм придуман для фонаря с силовой кнопкой обратного клика. Основное назначение фонаря – хорошо светить на средних дистанциях, с возможностью «светануть подальше». Типичное применение C2, M1, L2, тысячи их. Родилось все это безобразие из опыта с фонарем C2, используемого в качестве велофары, и эпизодически в роли ручного фонаря. Вначале договоримся о терминах, чтобы не путаться.
«Логические режимы». Их три: «базовый», «альтернативный» и «максимальный». Звучит заумно, но не волнуйтесь, пользоваться ими куда проще, чем объяснить словами. Алгоритм иллюстрируется следующей диаграммой переходов (некоторые похожие связи не показаны, чтобы не загромождать схему): Фонарь всегда включается в базовом режиме, и это физический Mid1 (младший средний). То есть, памяти последнего режима нет. Из базового режима:
Если Med1 маловато, а Hi многовато, двойное нажатие переключает на Med2 и (внимание) делает его базовым, а Med1 – альтернативным. После этого одинарное нажатие включает Hi, а повторное возвращает не к Med1, как раньше, а к Med2. Следующее двойное нажатие опять меняет местами Med1 и Med2. Таким образом, при повторении одинарных нажатий получается кольцо MedX – Hi – MedX – Hi, где MedX – это Med1 или Med2, предварительно выбранный двойным нажатием. При двойных – кольцо Med1 – Med2 – Med1 – Med2. Двойное нажатие из любого режима работает одинаково – это смена базового и переход в него. Т.е., после двойного нажатия ты попадешь всегда в средний, но не тот, что был раньше, а альтернативный ему. Тройное нажатие всегда включает физический режим Lo. Даже если он и был выбран. Дело в том, что через две секунды после его активации фонарь коротко мигает и переходит в псевдорежим «Batt?» и в течение еще двух секунд ждет нажатия. Такое нажатие означает запрос состояния батареи. Если пользователь не нажимал кнопку, происходит окончательный переход в Lo. Если нажатие таки произошло, отрабатывается псевдорежим «Batt=» – фонарь мигает несколько раз, показывая уровень заряда. Громоздко и непонятно? Тогда следите за руками. Достаточно запомнить следующее: - из любого режима (кроме базового) одинарное нажатие всегда выводит в базовый средний, - из любого режима, без исключения, двойное нажатие всегда выводит на альтернативный средний, - из любого режима, без исключения, тройное нажатие всегда переводит в минимальный (после чего можно проверить остаток заряда), - из любого режима, без исключения, пятикратное нажатие всегда включает строб. - единственное исключение, одинарное нажатие из базового не переключает на него же, что не имеет смысла. Оно включает максимальный. Теперь можно метать помидоры. P.S. «Высасыватель батареи» предусмотрен, логику его работы опишу позже, с рисунками.
__________________
Никогда ничего не трогай на моей лодке! |
21.01.2013, 19:56 | 2 |
Новичок
Регистрация: 18.10.2011 Последняя активность: 25.07.2017 17:43
Сообщений: 19
Сказал(а) спасибо: 13
Поблагодарили: 18 раз(а) в 3 сообщениях
|
Re: Нестандартный алгоритм для кнопки обратного клика
Уже опробовали такую схему в железе?
На первый взгляд для велоприменения должно быть довольно удобно, единственное что мне не нравится - узнать отстаток батареи можно лишь после перехода в слабый режим (тоесть временно снизить видимость дороги) что есть не очень хорошо. Как вариант - вывести индикацию батареи на длинное (больше двух секунд например) (полу)нажатие в любом из режимов. |
21.01.2013, 19:59 | 3 |
Новичок
Регистрация: 18.10.2011 Последняя активность: 25.07.2017 17:43
Сообщений: 19
Сказал(а) спасибо: 13
Поблагодарили: 18 раз(а) в 3 сообщениях
|
Re: Нестандартный алгоритм для кнопки обратного клика
Еще програмная защита от дребезга и мощные пружины контактов батареи будут весьма кстати, учитывая качество наших дорог и вообще специфику применения такого света.
|
21.01.2013, 20:25 | 4 | ||
Можно спрашивать
Регистрация: 31.08.2011 Последняя активность: 10.07.2022 15:34 Адрес: Волгоград
Сообщений: 7594
Сказал(а) спасибо: 1793
Поблагодарили: 2512 раз(а) в 1343 сообщениях
|
Re: Нестандартный алгоритм для кнопки обратного клика
Нет, только вчера придумал. И дойдет ли дело до железа, еще вопрос. Надо программирование AVR осваивать, а мозги уже старые и ленивые.
Цитата:
Цитата:
Да, забыл упомянуть, все это безобразие планируется под народный драйвер AK-105C с минимальной доработкой напильником. Это само собой, но к алгоритму отношения не имеет. |
||
21.01.2013, 21:06 | 5 |
Можно спрашивать
Регистрация: 31.08.2011 Последняя активность: 10.07.2022 15:34 Адрес: Волгоград
Сообщений: 7594
Сказал(а) спасибо: 1793
Поблагодарили: 2512 раз(а) в 1343 сообщениях
|
Re: Нестандартный алгоритм для кнопки обратного клика
«Высасыватель батареи».
Принцип традиционный, последовательно блокируем старшие режимы по мере разряда. Когда для Hi режима напряжения уже недостаточно, он исключается из оборота. Вместо него логическим «максимальным» становится Med2. См. диаграмму: Двойное нажатие теряет смысл, поскольку уже нет двух средних, и обрабатывается точно так же, как одинарное. Строб не показан для простоты, но он пока остается. Таким образом, единственное отличие от полной схемы переходов – это исключение альтернативного среднего. Иными словами, раньше у нас был четырехрежимник со стробом, теперь трехрежимник со стробом. Сажаем батарейку дальше. Блокируется Med2. Место базового занимает Lo, а Med1 становится максимальным. Теперь у нас двухрежимник со стробом: Схема переключения остается похожей, но возникает вопрос, в чем теперь разница между Lo, который стал базовым, и Lo, оставшимся на своем месте (тройное нажатие). Разница в том, что вызов тройным нажатием дает возможность посмотреть остаток заряда точно так же, как ты это делал всегда. Помираем дальше; Исключается Mid1 и Strobe. В руках у нас остается бледный и печальный однорежимник, откликающийся на любые нажатия просьбой накормить. Та же просьба (короткая серия быстрых проблесков) будет повторяться раз в минуту. Про индикацию. Я думаю сделать ее не гашением света от 1 до 5 раз, а яркими проблесками, не отключая слабого. Яркими – это уровня Med1. Или, может быть, поменьше, отключая ШИМ 30% пр токе 350 (1х7135). Это касается четырех уровней:
|