Все началось с того, что я решил обзавестись беспроводной оптической мышкой. Передо мной встала нелегкая задача выбора. Прочитав в Интернете про преимущества и недостатки различных моделей, я отправился в торговый центр "Савеловский". Как говорится, лучше один раз пощупать, чем сто раз увидеть. И пал мой выбор на DEXXA Wireless Optical. Отличный дизайн, хорошо лежит в руке, укомплектована аккумуляторами и стоит не дорого. На самом деле была еще одна очень похожая модель – Maxxtro RF Opticl. Потом выяснилось, что эти модели похожи не только снаружи. У них абсолютно одинаковые внутренности, так что все написанное в данной статье можно отнести и к Maxxtro.
Я знал, что DEXXA очень быстро "впадает в спячку" и разбудить ее можно только лишь нажатием кнопки, но надеялся привыкнуть к этому недостатку. Но не сложилось – не привык. Кроме того, в процессе эксплуатации всплыл еще один минус – подзарядка начинается только тогда, когда аккумуляторы полностью разряжены. В общем, задумался я над усовершенствованием DEXXA.
Для начала разобрался со штатными режимами работы:
Режим | Активный | Ожидание | Спячка |
Действия в случае нажатия кнопки | Передает команды компьютеру | Переходит в режим "Активный" | Переходит в режим "Активный" |
Действия при движении | Передает команды компьютеру | Переходит в режим "Активный" | - |
Действия в случае отсутствия активности | Переходит в режим "Ожидание" через 1 сек. | Переходит в режим "Спячка" через 90 сек. | - |
Мощность "лазера" | Максимальная | Средняя | Выключен |
Да, не очень удобно. Не успеешь налить пивка и прикурить сигарету, как мышка уже крепко спит. Причем так, что не растолкаешь. Надо на кнопку давить.
Первое, что пришло в голову – увеличить продолжительность режима "Ожидание" хотя бы до 5 минут. Но, разобрав мышку, понял, что заменой нескольких пассивных элементов не обойтись – все интервалы времени отсчитывает процессор. Дальше было еще несколько утопических идей, на которые потрачена вся суббота, куча припоя и радиодеталей. Но к 4 часам утра было найдено решение, которое удалось реализовать в воскресенье к вечеру:
На диаграмме синим цветом изображены штатные модули DEXXA, а красным – модули, дополнящие мышку новым режимом работы, который я назвал "Дремота".
Принцип работы следующий. В режиме "Активный" (при движении мышки или нажатии клавиши) сигнал передатчика обнуляет таймер, который будет поддерживать работу "лазера" в течении последующих 20 минут. В случае отсутствия активности, процессор перейдет сначала в режим "Ожидание", а затем "Спячка". Но "лазер", запитанный через нештатный таймер, будет работать еще 18,5 минут и, при движении мышки, датчик будет посылать сигналы. Но не все так просто. Процессор уже спит и реагирует только на кнопки (на мой взгляд, производитель перестарался – зачем блокировать входы процессора, если датчик уже отключен?). Поэтому потребовался еще один блок – будильник, который при первом же движении мышки "нажмет" на пятую кнопку. При этом мышь перейдет в режим "Активный". Для того, чтобы будильник не давил на кнопку когда попало, он активизируется только тогда, когда процессор уснул.
Таким образом, алгоритм работы DEXXA дополнился четвертым режимом:
Режим | Активный | Ожидание | Дремота | Спячка |
Действия в случае нажатия кнопки | Передает команды компьютеру | Переходит в режим "Активный" | Переходит в режим "Активный" | Переходит в режим "Активный" |
Действия при движении | Передает команды компьютеру | Переходит в режим "Активный" | Переходит в режим "Активный" | - |
Действия в случае отсутствия активности | Переходит в режим "Ожидание" через 1 сек. | Переходит в режим "Дремота" через 90 сек. | Переходит в режим "Спячка" через 18 минут | - |
Мощность "лазера" | Максимальная | Средняя | Минимальная | Выключен |
Обратите внимание, что для экономии батарей в режиме "Дремота" добавлен новый режим работы "лазера".
Теперь о том, как это было реализовано:
Принцип работы следующий. Во время движения мышки или при нажатии на кнопку, с Q3 (управление передатчиком) поступают положительные импульсы. Транзистор T4 открывается и быстро заряжает конденсатор С1, который потом начинает медленно разряжатся через R3 и R5. До того момента, пока напряжение на С1 не опустится ниже порогового (около 20 мин.), Т3 и Т1 открыты, Т2 закрыт и на L2 (питание умножителя напряжения) подается +2,6 с аккумуляторов. Запитанный таким образом "лазер" светится минимально, но этого достаточно для работы датчика движения. Как только процессор перейдет в режим спячки, на Q2 (управление питанием) напряжение сменится с 0 на +2,6. Но при отсутствии движения, на J3-1 (выход датчика движения) напряжение не меняется и транзистор Т5 закрыт, Т6 открыт и напряжение с Q2 на J3-2 (процессорный вход пятой кнопки) не поступает. При первом же движении мышкой, транзистор Т5 откроется, Т6 закроется и на J3-2 поступит напряжение +2,6. Процессор воспримет это, как нажатие на кнопку и проснется. В тот-же момент напряжение на Q2 и, соответственно, на J3-2 упадет до нуля, что будет воспринято процессором, как отпускание кнопки.
А вот так выглядят платы до и после переделки (слева Maxxtro, справа DEXXA):
Изменяя номинал C1 и R3 можно задавать различную продолжительность режима "Дремота":
Продолжительность режима "Дремота" | C1 | R3 |
31 мин. | 470 мкФ | 2 мОм |
18 мин. | 470 мкФ | 1 мОм |
10 мин. | 220 мкФ | 1 мОм |
5 мин. | 100 мкФ | 1 мОм |
В режиме "Дремота" мышь потребляет немного меньше, чем в штатном "Ожидание". В режиме "Спячка" мышь стала потреблять на 0,87мА больше. В других режимах энергопотребление не изменилось. Такое незначительное увеличение энергопотребления в режиме "Спячка" практически не повлияло на продолжительность работы аккумуляторов, но неожиданно привело к приятному эффекту - если мышь, находящуюся в режиме "Активный", "Ожидание" или "Дремота" поставить на зарядку, то при переходе в режим "Спячка", начнется подзарядка аккумуляторов, даже если они заряжены на 50-60%. Если поставить на зарядку мышь, уже находящуюся в режиме "Спячка", то режим штатный - зарядка начнется только если аккумуляторы полностью разряжены.
Если прочитанная статья пробудила в Вас желание добавить в Вашу мышь режим "Дремота", то обязательно прочтите следующие комментарии и рекомендации:
1. Автор статьи не несет ответственности за порчу оборудования и какой-либо ущерб, нанесенный в результате повторения конструкции.
2. Бросьте эту затею, если слова «эмиттер-база-коллектор» Вы только что прочитали впервые.
3. Бросьте эту затею, если Ваш паяльник больше напоминает топор, чем авторучку.
4. Если предыдущие три пункта Вас не смущают, то начать лучше всего с изъятия аккумуляторов.
5. Теперь немного приятного: печатная плата довольно неплохого качества и выдержала многократные перепайки. Самоклеящиеся ножки, под которыми расположены шурупы, держатся даже после трехкратного отрывания.
6. Внутри мышки расположены две печатные платы. Все дополнительные детали монтируются на верхней стороне верхней платы. Но Q2 и Q3 находятся на обратной стороне. Между собой платы скреплены только разъемом, для разъединения которого потребуются усилия. Крепче держите нижнюю плату за кнопочные выключатели и, покачивая, тяните верхнюю плату. Иначе, при резком движении, оторвете провода питания.
7. Места расположения Q2 и Q3 показаны на рисунках:
8. Для удобства монтажа, с верхней стороны платы необходимо в трех местах (отмечено красными кружками) процарапать лак и сделать "земляные" площадки. У разъема J3 DEXXA на два контакта больше (отмечены синими точками), т.к. светодиод вынесен на нижнюю плату.
9. Необходимо отобрать транзисторы с коэффициентом усиления не менее 380. Подойдут любые n-p-n транзисторы небольшого размера.
10. Теперь, когда подобраны детали и припаяны провода к Q2 и Q3, необходимо поставить верхнюю плату на место, вставить аккумуляторы и проверить напряжения на Q2, Q3 и J3:
Q2 | Q3 | J3-1 | J3-2 | |
При движении | 0 | +2,6 | меняется от 0 до +4,8 | 0 |
При нажатии на пятую кнопку | 0 | +2,6 | не меняется | +2,6 |
В режиме "Ожидание" | 0 | 0 | не меняется | 0 |
В режиме "Спячка" | +2,6 | 0 | 0 | 0 |
Значения +2,6 и +4,8 могут меняться в зависимости от состояния аккумуляторов.
11. Теперь нужно вынуть аккумуляторы и можно приступать к монтажу.
В конце - немного дегтя. Чтобы сделать решение почти идеальным, я пробовал отключать передатчик на период нажатия будильником пятой кнопки. Но будильник нажимает кнопку в момент движения мышкой и на передатчик сразу за имульсами пятой кнопки поступют импульсы движения. При этом, если включить передатчик в момент поступления импульсов движения, приемник воспринимает это, как ошибку связи и нужно давить на reset.
Таким образом, остается два способа игнорировать фальшивые нажатия пятой кнопки:
1. Не ставить родные драйвера и использовать мышь, как стандартную трехкнопочную со скролингом.
2. Изменить функцию пятой кнопки на "horizontal scroll", которая не влияет на программы.
Лично я предпочитаю второй способ. Тем более, что пятой кнопкой все равно не очень удобно пользоваться, а четвертая вполне пригодна к употреблению.
Конечно, описанная переделка - дело достаточно хлопотное, но, на мой взгляд, овчинка выделки стоит. Пользоваться мышкой стало существенно удобнее и приятнее. DEXXA теперь "встает с той ноги" (руки?), и к тому же начинает "есть" не только тогда, когда ее уже "шатает от голода" :) В общем, и без того неплохая мышка стала еще лучше.