Что же делать? Интернет предлагает такие варианты:
- Использовать программные средства фильтрации лишних кликов. Но это не решение проблемы, а лишь борьба с симптомами, к тому же только под Windows, так что этот вариант я отмёл.
- Подогнуть пружину микровыключателя.
- Кое-кто даже грешит на клавиатуру. Я даже ради приличия проверил — результат ожидаемо отрицательный.
- Большинство же советует просто заменить микровыключатель. Что я и сделал, поставив кнопку от старой мышки.
Но радость моя была недолгой — через несколько дней двойной клик вернулся. Пораскинув мозгами, я решил, что дело в механических вибрациях, и наклеил под кнопку толстый скотч. И снова это помогло лишь на несколько дней. Стало ясно, что надо искать радикальное решение. А для этого надо сначала понять, что происходит.
Как обычно делаются кнопки у цифровой электроники? Приблизительно так:
Вверху питание, внизу земля, вправо — провод ко входу процессора. А на входе у него — затвор полевого транзистора. В нашем случае можно считать, что это попросту идеальный измеритель напряжения. Напряжение больше заданного — значит, делает вывод процессор, на входе единица, а если меньше — то ноль.
Но если вход у процессора идеальный, то выключатель таковым при всём уважении считать не получится. Когда выключатель замыкается — это означает, что один кусок металла соприкасается с другим куском металла. Но между состояниями «выключено» и «включено» есть тот неловкий момент, когда эти два куска соприкасаются едва-едва. И если сейчас контакт есть, то через микросекунду он может пропасть, а затем снова восстановиться. А порой и вовсе один контакт ударяется об другой и по законам Ньютона отскакивает от него, а то и несколько раз. Что подумает
Постойте, ничего не напоминает? Ах да, аналогичный случай как раз произошёл с нашей мышкой! Значит, наша рабочая гипотеза будет в том, что разработчики мышки либо вовсе не вспоминали про возможность дребезга, либо их старания по борьбе с ним были тщетны. И нам придётся побороться с этим врагом за них.
Заметим две вещи. Во-первых, скорость нашего кликания ограничена. Вряд ли мы будем нажимать на мышь более десяти раз в секунду. Во-вторых, выключатели стараются делать так, чтобы момент дребезга проходил как можно скоротечнее, и уж наверняка за одну десятую секунды кнопка мыши успеет успокоиться. Таким образом, наша задача сводится к отделению высокочастотных нажатий от низкочастотных, то есть нам нужен фильтр низких частот. Простейший способ это сделать — впаять конденсатор:
Именно этим мы и займёмся.
Вот она — наша кнопка:
А это она же, но без крышки:
Подпишем номера контактов для удобства:
Принцип работы налицо — в состоянии покоя замкнуты контакты 1 и 3, при нажатии кнопки на некоторое время все контакты размыкаются, а затем замыкаются контакты 1 и 2. При отжатии происходит всё то же в обратном порядке.
Вскрыли мы кнопку не для того, чтобы что-то подгибать, а для того, чтобы воочию увидеть, как она работает, а если повезёт, то и посмотреть на дребезг. А поможет нам в этом фотоаппарат Samsung WB2000 и объектив И96У. Упомянутый аппарат умеет снимать видео с частотой 1000 кадров в секунду. Правда, не ахти как, но, как говорится, чем богаты.
Сложнейшая установка для высокоскоростной съёмки:
И, собственно, кино:
Как видим, контакт успевает пролететь всё положенное расстояние за пять кадров (сиречь 5 миллисекунд), и никакого видимого дребезга не наблюдается. Возможно, дребезг можно было бы увидеть на осциллограмме, но, к сожалению, я вспомнил о том, что у меня есть осциллограф, только тогда, когда мышь была уже собрана. Но так или иначе понятно, что характерное время дребезга явно меньше, чем минимальное время клика, и что граница между ними проходит приблизительно на пяти миллисекундах.
Лирическое отступление. Как бы я сделал мышь, если бы у меня был выключатель вышеприведённой конструкции? А вот так:
Дёшево и сердито. Вход процессора — это не только идеальный вольтметр, это ещё и конденсатор на несколько пикофарад. Так что за те миллисекунды, пока один контакт летит от второго к третьему, напряжение не успеет заметно измениться, а когда он прилетит, конденсатор зарядится, и даже если контакт будет прыгать, разрядиться он всё равно не сможет, так что никакого дребезга не будет. Ну разве что только он подпрыгнет ажно до противоположного контакта, но это, как мы видели, крайне маловероятная ситуация.
Но доблестные разработчики мыши, как мы сейчас увидим, не ищут лёгких путей.
Измерим наш выключатель мультиметром. Во-первых, находим, что ни один из контактов не закорочен на питание. Ну да ладно. В состоянии покоя на втором контакте 2,5 вольта питания, на остальных — ноль. В нажатом состоянии на всех контактах ноль. Это говорит о том, что разработчики не пошли по моему пути, и входом процессора, видимо, служит второй контакт, а третий контакт вовсе не используется. Но самое смешное — после отжатия кнопки ноль на втором контакте сохраняется ещё пять секунд! К сожалению, механизм работы и преимущества такого решения и мотивация разработчиков остаются для меня тайной. Надеюсь, кто-то из сведущих людей меня просветит.
Таким образом, вся наша стройная схема борьбы с дребезгом разбивается о глухую стену непонимания современных схемотехнических решений. Но, в самом деле, не останавливаться же, когда дело почти сделано. Так что будем паять без понимания.
Паять конденсатор будем между контактами 1 и 2. А для измерения эффекта воспользуемся скриптом наподобие вот такого, слегка его подправив так, чтобы он реагировал как на отжатие, так и на нажатие кнопки, и убрав искусственные ограничения по времени.
Конденсатор в 0,1 мкФ даёт время клика 600 мс. То есть как бы быстро мы ни жали, кнопка «отлипнет» не ранее чем через 0,6 секунды. Это многовато. Методом линейной экстраполяции предполагаем, что 3,3 нФ дадут время в 20 мс. Паяем — и видим время около 100 мс. Но это время включает в себя и время собственно движения пальцем, и без конденсатора оно ненамного меньше. Перепробовав ещё несколько номиналов, я решил остановиться на 3,3 нФ.
Поскольку SMD-конденсаторов не было, пришлось паять ногастый:
На этом, собственно, всё. Мышь была успешно собрана и продолжает свою нехитрую, но ответственную службу. Надеюсь, вышеприведённый рецепт будет полезен не только моей мышке.
УПД: Совсем забыл. Есть ещё один бич мышиных кнопок, так и не всплывший в обсуждении, пока я не вспомнил. Ощущается это так — на кнопку приходится давить с большей силой, клик уже не такой чёткий, как раньше, и порой кнопка подаёт сигнал об отжатии, пока она нажата. А разгадка одна — та пластмасска, которая давит на выключатель, может со временем стираться, тогда в ней образуется такое красивое углубление, которое и не даёт кнопке нажиматься до конца. Лечится это просто — надо эту пластмасску либо доработать напильником, чтобы она вновь стала плоской и параллельной кнопке, либо приклеить к ней тонкую плоскую пластмасску в тех же целях.
Также может показаться, что я против методов, «альтернативных» описанному в статье, однако это не так. Но каждый метод имеет свою сферу применения. Коли мышь сделана так, что малейший дребезг воспринимается как нажатие — вы так и будете каждую неделю чистить контакты и/или менять выключатель.
УПД2: Оказалось, что не всё так просто. Читайте продолжение истории!
Комментарии (101)
solalex
22.08.2015 10:16Скорее всего дребезг начинается из-за истирания пяток контактов со временем, либо их окислением. Таким образом механически контакт есть, но сопротивление гораздо выше того, что было первоначально. Я бы начал с протирки контактной группы. А вообще, дешевые мыши и дорогие как раз отличаются надежностью кнопок.
wormball
22.08.2015 13:18+1> дешевые мыши и дорогие как раз отличаются надежностью кнопок.
Тут не так давно жаловались на двойной клик у логитеха. http://geektimes.ru/company/mvideo/blog/253460/ На мой взгляд, главная проблема именно в схемотехническом решении, а дребезг у выключателя всегда будет.
Ivnika
22.08.2015 14:53+1«Вы его напрасно прелестным ругаете ...» (С)
По своему опыту общения с более менее дорогими логитеками и дешевыми мышами я бы сказал что все с точностью до наоборот- производители дешевых мышек не заморачиваются с таким определением как «запланированное устаревание» — какие были микрики, такие ставят. И как раз наоборот брендовые производители следят за этим- далеко ходить не нужно, прочитайте форумы про логитеки- стирающееся покрытие, дохнущие кнопки и все это очень часто через год работы (срок гарантии).
У самого были логитеки (3 штуки) у всех примерно через чуть больше года появились баги и в противовес оптическая мышь неизвестного производителя (лет 5 ей еще с проводом) до сих пор работает и валяется как запасная.darkfrei
22.08.2015 19:12+1Проводные мыши всегда лучше беспроводных, скорость включения и реакции гораздо выше. Ну и никогда не паришься с её поиском и аккумуляторами в ней.
Ganster41
22.08.2015 12:16+2Паяльщик от бога.
Хоть бы выводы залудил, не говоря уже от неотмытом флюсе.wormball
22.08.2015 13:06+1Я залудил, честное слово! Только с той стороны, которая к плате повёрнута. А флюс называется «безотмывочный», потому и не стал отмывать. Только потом уже понял, что не очень красиво смотрится.
Skerrigan
22.08.2015 13:55+1Первое правило IT-шника: «Работает? Не трогай!».
А если серьезно, то в целом согласен, было бы неплохо скилл пайки чутка поднять.
*буду обновлять комментарии, прежде чем оставить свой
PretorDH
22.08.2015 12:41+4Только что проделал процедуру с двумя мышками на которих БЫЛ дребезг. Уже его нет. Процедура достаточно проста.
Открываем мышку.
Открываем микропереключатель — аркуратно подевая лепестки защелок. Не потеряйте кнопочку.
Режем бумажную полосу 2мм шириной и 50мм длинной. Смачиваем полосу в спирте. Засовываем между контактами. Сначала с одной стороны (в отпущеном состоянии) потом с другой (в нажатом) и отпустив или нажав на пружинку протягиваем бумажку 5-10 раз, я делаю пока спирт заметно не испарится.
После чистки на бумажке видны полосы окиси.
Кладем кнопочку в крышку микрика. Держа мышку перевернутой защелкиваем кришку микропереключателя.
Собираем мышку. Вуаля, все работает.PretorDH
22.08.2015 12:49+1P.S. Рецепт статьи — временное решение!!!
Двоение это симптом того, что нагар и окислы портят контакт. Впоследствии микрик перестанет работать совсем или замкнется. Нужно будет чистить или перепаивать микрик, а то и выбросить девайз.wormball
22.08.2015 13:01Ну так это, ничто не вечно под луной. Вот и замена выключателя в моём случае помогла на меньшее время, чем хотелось бы. На мой взгляд, конденсатор должен помочь на большее время. Ибо дребезг — это свойство любого механического выключателя, и замена одного на другой — это шило на мыло.
isden
22.08.2015 14:23По идее, нужно туда поставить что-то совсем другое, хоть на системе геркон-магнит. Правда тут всю механику перепиливать нужно, если совсем заменять. Но можно попробовать повесить систему параллельно штатному переключателю (микро-герконы, вроде таких), если место позволяет.
ploop
22.08.2015 15:19Геркон — тоже механика, хоть и более надёжная. Придумали бы какую-нибудь оптику + тактильную часть, тогда да. Но кому оно надо…
isden
22.08.2015 15:25+1В герконах дребезг минимален, контакты стягиваются магн. полем. Плюс нет окисления. Плюс это можно сделать в домашних условиях с минимальными усилиями. Пара хороших микро-герконов, правда, стоит как новая мышка :)
А еще есть герконы со смоченными ртутью контактами, у них дребезга вообще нет.
С оптикой особо и придумывать не нужно, только на постоянно горящий светодиод будет энергия расходоваться.
Еще можно подумать на предмет связки магнит + датчик Холла.
Shirixae
22.08.2015 15:24Да сразу оптический энкодер. Чтоб вечный был.
isden
22.08.2015 15:26На любой лишний светодиод уходит энергия батарейки.
Shirixae
22.08.2015 15:28Если вопрос в хороше игровой мышке — то там батарейка (даже без подсветки) всё равно на день-два, как в смартфоне. Ибо злой проц, высокая частота опроса, много электроники. А если об эконом-классе вида «мышь ноутбучная» — то там, обычно, всё равно, батарейку раз в 4 месяца менять или раз в 2. Другое дело, что эконом-класс долгоиграющим делать невыгодно, или планируемое устаревание будет в области механики / прочности.
isden
22.08.2015 15:30Фигасе эконом-класс, приличная ноутбучная мышка стоит чуть ли не дороже игровой. Упомянутый мной выше vx nano я в свое время покупал за эквивалент примерно 150 баксов (о чем, кстати, ниразу не пожалел, прослужила 8+ лет, жива до сих пор, хоть пластик облез местами немного).
Meklon
22.08.2015 17:34Маленькие мышки — смерть для суставов. Это прямой путь к туннельному синдрому.
ploop
22.08.2015 17:43Не скажите.
У меня лапа большая, и всегда пользовался большими мышками. Постоянно болела рука. Попробовал маленькую (относительно) — оказалось у меня хват совсем другой! Мыша между большим пальцем и мизинцем, запястье лежит на столе, угла поворота ладони хватает для перемещения курсора на полтора экрана.
Всё, дискомфорт пропал! Так что индивидуально.
isden
22.08.2015 17:48+1Я, собственно, от мышек по этой причине и отказался (пробовал, кстати, и большие мышки и трекбол, особо не помогало). Перешел полностью на тачпад — прямо за неделю практически прошли боли.
ploop
22.08.2015 15:54Оптический энкодер стоит в логитече М705. Одной АА-батарейки хватает на год. А туда две вставить можно (правда слишком тяжелая получается, ставлю одну)
Так что проблема решаема.isden
22.08.2015 15:58Да понятно, что решаема. Я же не говорил, что это невозможно, просто будет больше расход батарейки. А если там, допустим, одна ААА — то это уже может быть вполне заметно.
ProVal
22.08.2015 16:06Вот на этой самой М705 у меня последние пару лет проблема с прокликиванием :( Разбирал, оказалось протёрся пластик, который давит сверху на микрик. Подклеивал туда тонкие металлические пластинки, чтобы скомпенсировать, на какое-то время помогло, но сейчас опять. Надо разобрать переключатель, наверное.
А по батарейке действительно мышь крутая. Вставил самую дешевую АА и забыл на несколько месяцев даже при интенсивном использовании.ploop
22.08.2015 16:17Я в ней добиваю батарейки, которые уже нигде не работают (даже в часах). Вставишь — 15% показывает, а месяца три ещё проработает на ней.
Под столом ящичек с кучкой дохлых батареек от всех родственников :)
Gordon01
22.08.2015 15:13-3Целую статью может заменить один поисковый запрос «подавление дребезга контактов».
По теме: кондер параллельно кнопке на антидребезг допустимо только в дешевой радиоэлектронной аппаратуре. В мышке контакты скоро умрут. В районе недели.wormball
22.08.2015 15:49+2> Целую статью может заменить один поисковый запрос «подавление дребезга контактов».
Понимаете ли в чём дело, те, у кого заглючила мышь, скорее всего, не додумаются до такого запроса. А те, кто додумаются — тем и так ничего не надо объяснять.
> кондер параллельно кнопке на антидребезг допустимо только в дешевой радиоэлектронной аппаратуре
Интересно, а где проходит граница между дешёвой и дорогой радиоаппаратурой? И что произойдёт, ежели нарушить эту заповедь и поставить конденсатор в дорогую аппаратуру? И каковы ваши альтернативы? Триггер Шмитта туда впаивать? Помимо того, что его ещё надо рисовать, травить, паять и т. п., обращаю ваше внимание, что поскольку там какая-то неведомая схема узнавания состояния кнопки, то с оным триггером она далеко не факт, что вообще будет работать.
> В мышке контакты скоро умрут. В районе недели.
Ну ок, ставки приняты, через месяц отпишусь.Gordon01
22.08.2015 18:26-6Кондеры ставят только начинающие радиолюбители, которые не осилили программное подавление дребезга, сканирование кнопок или триггер шмидта.
Я везде делаю сканирование, работает идеально.
>И каковы ваши альтернативы?
Гугл ответит на ваши вопросы, смысл обсуждать это 123456й раз?
>Помимо того, что его ещё надо рисовать, травить, паять и т. п
Ничего этого не надо, берете микруху в so-корпусе и паяете навесом. 4 проводка.wormball
22.08.2015 18:50+4> программное подавление дребезга
Вы предлагаете подпаиваться к мышке, реверсить её прошивку и вносить необходимые изменения? Боюсь, что я не настолько крут. Ежели вы такое можете — напишите свою статью. Ну и потом,лекция для колхозниковстатья для простых людей, обладающих лишь базовыми познаниями в электронике, чтобы они сами смогли починить свои мыши. Мне отчего-то кажется, что перепрошивать контроллеры может меньшее количество народа, чем припаивать конденсаторы. Да и по трудоёмкости не сравнить.
> берете микруху в so-корпусе и паяете навесом. 4 проводка.
Ага, ещё эту микруху искать, покупать, резать дороги на плате, думать, как сделать, чтобы эти проводки не порвались. А потом выяснить, что кнопка с ним не работает.Gordon01
23.08.2015 04:57-3> Вы предлагаете подпаиваться к мышке, реверсить её прошивку и вносить необходимые изменения?
Предлагаю вам не косить под дурачка, а потом можно уже будет по теме поговорить.
> статья для простых людей, обладающих лишь базовыми познаниями в электронике, чтобы они сами смогли починить свои мыши
не я один вам сказал, что то что вы предлагаете — вредный совет.
> Ежели вы такое можете — напишите свою статью
За статью тут дают меньше плюсов в карму, чем минусов за один мой комментарий выше. Нет никакого смысла тратить силы на написание статей на русском.ploop
23.08.2015 11:58не я один вам сказал, что то что вы предлагаете — вредный совет.
Я уже говорил, что в данном случае, когда нет запасного переключателя, это решение оптимально.
Foreglance
23.08.2015 09:08те, у кого заглючила мышь, скорее всего, не додумаются до такого запроса
Поддерживаю — пару недель назад появился эффект двойного клика на удобной беспроводной мыши Logitech M325 — с сожалением отложил ее, заменив на другую (из комплекта к клавиатуре — не очень удобную). Решение с конденсатором — работает, если перестанет — заменю контакт.
Интересное видео со скоростной съемкой. Внешний объектив, похоже, от старого фотоувеличителя.
Спасибо за статью.wormball
24.08.2015 04:26Спасибо за комментарий! Вы пока что единственный, кто рискнул опробовать рецепт на себе.
> Внешний объектив, похоже, от старого фотоувеличителя.
Ага, он даже так называется — Индустар 96 от Увеличителя.
Arezus
22.08.2015 15:37Мне кажется, что первостепенно, это нагар или окислы на контактах, а с кондером получилось, что мы дырку в заднем правом крыле залепили газеткой и покрасили все это папье-маше в цвет кузова.
По поводу схемотехники, я не понимаю, почему при наличии трех контактов кнопки не использовать RS-триггер, я в своем серийном приборе боролся с кнопками СТАРТ-СТОП пока не поставил CD4011 в прослойку по схеме 2И-НЕ, проблема решилась четко и бесповоротно.wormball
22.08.2015 16:16> а с кондером получилось, что
Вот не соглашусь. Так, чтобы совсем перестать работать — кнопка ещё долго может засираться. А для дребезга много не надо. Посему я считаю, что лучше дребезг отфильтровывать, чем пытаться его искоренять. Вот и авторы статей по вышеприведённому запросу «подавление дребезга контактов», похоже, со мной согласны.
> я не понимаю, почему при наличии трех контактов кнопки не использовать RS-триггер
А меня больше интересует, чем при наличии трёх контактов плоха та схема, которую я нарисовал. В частности, чем RS-триггер лучше неё.vmchaz
22.08.2015 16:49Посему я считаю, что лучше дребезг отфильтровывать, чем пытаться его искоренять
Вот этого я, кстати, не понимаю. Если какая-то проблема может быть решена, причём достаточно дёшево и полностью, зачем применять фильтрацию вместо полного решения?
Тем более, во всяких геймерских мышках дребезг по частоте может быть сопоставим со скоростью нажатия на кнопку — там фильтр дребезга может привести к неправильному считыванию нажатия.wormball
22.08.2015 17:22+1> Если какая-то проблема может быть решена, причём достаточно дёшево и полностью
Вот насколько я понимаю, фильтровать в данном случае — и дешевле, и надёжнее. А сделать механический выключатель, вовсе не подверженный дребезгу — я не уверен, что такое вообще возможно. По крайней мере, за разумную цену.
> во всяких геймерских мышках дребезг по частоте может быть сопоставим со скоростью нажатия на кнопку
При всём уважении не думаю, что геймеры могут жать на мышь 100 раз в секунду. Даже ежели бы такой геймер существовал — конструкция выключателя всё равно бы ему это не позволила. А дребезг, как видно из видео, происходит на куда большей частоте.
Arezus
22.08.2015 17:58+1Тем, что рс-триггер на то и рс-триггер, расшифровуется как Reset-Set trigger, пока не наступит сброс, сигнал установки не пропадет. То же самое со схемой 2И-НЕ на 4011, пока не замкнется верхний контакт, там хоть миллион раз пусть дребезжит на нижнем, а выходное значение не поменяется. А кондер — это больше костыль, все равно нужно чистить контакты, тогда и кондер, может, не нужен.
wormball
22.08.2015 18:21-1Я, собственно, не напайку конденсатора имел в виду, а вот эту картинку:
Ну то есть понятно, что она в отличие от триггера не притягивается сама к конечным значениям напряжения, но по идее «промежуточные» значения там должны случаться настолько редко, что о них можно не думать.Halt
22.08.2015 20:15+5Два вам по схемотехнике.
В такой схеме вывод будет некоторое время висеть в воздухе. У вас будет такое веселье на осциллограмме, что волосы дыбом встанут. Никогда нельзя оставлять висеть выводы микросхем в воздухе! Даже нерабочие! Обязательно притягивать или к земле или к питанию.
Самое безобидное что вы сможете там поймать это наводку 50 Гц.
Если схему делать совсем по уму то нужен еще и третий резистор в цепи ноги, ом 200.wormball
22.08.2015 20:50-3> вывод будет некоторое время висеть в воздухе
Некоторое время — это 5 миллисекунд. Накрайняк можно конденсатор напаять.
> Если схему делать совсем по уму то нужен еще и третий резистор в цепи ноги, ом 200.
Куда именно? И почему так мало?Halt
22.08.2015 20:58+3Из-за этого «накрайняк» ракеты падают. Бывает что и на голову. Это правило хорошего тона, написанное кровью из глаз разработчиков :)
Разумеется, в случае мыши мы максимум что получим это ложное срабатывание. А вот в цепях сигналов и прочих шинах такое может стать фатальным. Выбросы перехо?дных процессов могут достигать киловольт в пикосекундных интервалах.
Резистор ставится последовательно ноге. Номинал практически не важен, поскольку тут по постоянке работаем. Гасит как раз выбросы переходных процессов и прочий шум, поскольку энергии колебаний не хватает на то, чтобы нагреть резюк и пролезть дальше в микросхему.wormball
22.08.2015 21:23> Из-за этого «накрайняк» ракеты падают.
Ну я вроде не рвусь ракеты делать. А ежели бы рвался — то постарался бы это дело учесть. А вот разработчики обсуждаемой мыши, на мой взгляд, совершили более тяжкий грех, нежели моя схема из трёх проводов.
> Резистор ставится последовательно ноге.
Ну ок, договорились, ставим RC-цепь около ноги процессора. Всё проще, чем триггер городить. Тем паче, насколько я помню, например, у атмеги и так входы работают как триггер Шмитта.ploop
22.08.2015 21:27Ну ок, договорились, ставим RC-цепь около ноги процессора
Резистор не нужен, внутри всё равно подтяжка есть. Если уж городить задержку — ваш вариант из поста оптимальный.wormball
22.08.2015 21:30Ну вот у атмеги нет подтяжки. Как у других — не знаю.
ploop
22.08.2015 21:30Как это нет? Куда она делась? :)
Порядка 100к всегда была.wormball
22.08.2015 21:35+1Вот что умные люди пишут:
> Когда ножка настроена на вход, то если PORTxy=0, то вывод в режиме Hi-Z. Если PORTxy=1 то вывод в режиме PullUp с подтяжкой резистором в 100к до питания.
easyelectronics.ru/avr-uchebnyj-kurs-ustrojstvo-i-rabota-portov-vvoda-vyvoda.html
То бишь подтяжку можно включить или отключить.ploop
22.08.2015 21:41То бишь подтяжку можно включить или отключить.
:)
Естественно. Если пин подключен к цифровому порту другого устройства, то подтяжка тупо будет мешать — потреблять лишний ток. К тому же подтяжки бывают не только к VCC, но и к земле. Потому на МК их статичными не делают, они программно отключаемы.
Комбинациями всех возможностей портов ввода-вывода люди чудеса творят.
Halt
22.08.2015 20:19+1Вот до кучи осциллограмма с форума радиокота одной и той же кнопки, нажатой 5 раз:
Ужас электронщикаploop
22.08.2015 21:15Ну там не такая кнопка, а тактовая. Я участвовал в той теме. Она дребезжит гораздо сильнее, так как тут усилие на контактах фиксированное, а у тактовой зависит от внешних механических усилий/колебаний.
ploop
22.08.2015 16:19По поводу схемотехники, я не понимаю, почему при наличии трех контактов кнопки не использовать RS-триггер
Потому, что там стоит контроллер, который вполне эффективно может подавить дребезг программно. Ну а коль программа кривая, то…
vmchaz
22.08.2015 16:46Полностью согласен. Тоже удивляюсь, т.к. это бы решило подобную проблему раз и навсегда. А уж для дорогих мышек вообще можно было бы использовать оптические контакты, где щелчок нужен только для тактильной отдачи, а сигнал посылается перекрытием оптических датчиков.
TigerClaw
22.08.2015 18:41+1Кстати по поводу износа, у меня на логитеке к примеру появился двойной клик на правой кнопке мыши, которая редко используется, но из-за того стало практически невозможно пользоваться контекстными меню. Что намекает, на то что дабл клик не связан с количество кликов. Да логитек мне заменили мышку по гарантии (g500 на g502).
maaGames
22.08.2015 19:11Уже не помню сколько лет пользуюсь мышью «A4Tech X7». Из практических соображений сразу вынул из неё утяжелитель и она до сих пор служит верой и правдой, без намёков и проблем. Так называемая «змеинная кожа» уже успела поменять цвет и наполовину слезть (руки потеют во время особо рьяных баталий и покрытие размокло), но ни с лазером, ни с механникой проблем нет, армированный провод не оторвался. Хотел заменить на другую, ведь облезлая мышь — не эстетично… Но не смог придумать, на что её заменить, кроме точно такой же, но новой. Сейчас они стоят дешевле (в рублях), чем я покупал много лет назад.
А вообще, у меня была мечта сделать дверной звонок из мыши, но я рукожоп.Anisotropic
22.08.2015 22:37+3У них энкодер в колесе умирает. У самого уже две сдохло, и на третьей появилось :(
ploop
22.08.2015 23:32Аналогично, тоже две валяются. Восстанавливать — менять шило на мыло, тоже сдохнет. Хотя сами мыши хорошие, нравились мне.
vlivyur
24.08.2015 17:08Я своей уже лет 7 пользуюсь, вроде X-710BK. Сильно не играю, но использую много. Утяжелители оставил, провод обычный, ещё долазерная. Проблема с дребезгом появилась лишь недавно и пока сильно не беспокоит, но видимо придётся почистить её. Ну и стоят они теперь в полтора раза дороже, чем тогда (около 700 рублей отдал).
b3nd3r
22.08.2015 21:13+1В универе у нас был курс программирования на VHDL для FPGA. И дребезг контактов на тактовых кнопках мы лечили программным методом, но я уже и не помню в чем суть была. А почему на мышках никак нельзя программно это обрабатывать? Могу только предположить, что может зарежка увеличиться.
Есть ли вообще мышки, которые не подвержены этому? Судя по отзывам на Я.Маркете даже топовые модели Логитека страдают от такой болезни.ploop
22.08.2015 21:17+2Да есть там программное подавление, полюбому, так как дребезжат даже новые кнопки. Просто оно рассчитано на определённое время дребезга, а по мере износа это время возрастает. Когда выйдет за допустимые пределы — фиксируется два нажатия.
wormball
22.08.2015 21:27Вот я не сторонник теорий заговора, но единственное, что мне в связи с этим приходит на ум — это запланированное устаревание. Ибо побороть этот эффект — проще некуда, что я, собственно, и хотел показать в статье.
DanilinS
23.08.2015 19:28+2Мой совет: флюс отмывать обязательно:
1) Неизвестно что намешали в это «безотмывочный» флюс. Реальность такова, что да-же в «фирменном» магазине можно купить неизвестно что.
2) Нередко «безотмывочный» флюс для радиолюбителей — это расфасованный по мелкой упаковке промышленный «безотмывочный» флюс в большой упаковке по несколько литров. Но в производстве его наносят совсем немного и он полностью выгорает при пайке волной. Естественно он «безотмывочный». А если дома мазать щедро и не отмывать — будут проблемы. Ибо флюс далеко не нейтральный.
А основные причины «дребезга» — грязь на контактах и усталость пружинных контактов микровыключателя. Из-за усталости материала падает сила прижима перекидного контакта. И получаем затянутый по времени процесс «прыгания» контакта. Сам видел неоднократно микровыключатели, у которых пружина просто разваливалась на куски…
Конденсатором конечно можно «придавить» дребезг, но это не на долго. Проще заменить микровыключатель. Стоит — копейки, хватает на долго.
Рекомендации:
1) Купить нормальные микровыключатели с большим ресурсом. И перепаять. Но обычно ресурс компонентов мыши примерно одинаков. Заменить микровыключатель — потом порвется хвост, потом пластиковые подшипники протрутся до дыр, энкодер умрет… Т.е. если дешевая мышь умерла — значит умерла. Хороним и покупаем новую.
2) Либо купить хорошую мышь. Лучше всего «игровую». У неё обычно ресурс гораздо выше обычной офисной. Мышь нормального производителя. У самого сейчас «A4TECH BLOODY V7». Уже 2 года. И такое чувство, что еще прослужит долго. Шнур в оплетке, кнопки без намека на дребезга. А раньше сынок в сетевые шутеры мышь убивал за полгода. Правда мышь не дешевая.immaculate
24.08.2015 01:16А какой флюс лучше использовать? Я 100 лет не паял, сейчас начал снова, в магазине стопятьсот видов флюса, что брать непонятно. И как его отмывать? Зубной щеткой?
Foreglance
24.08.2015 23:32Использую обычно канифоль — отмывается спиртом (ватной палочкой или щеткой, хоть и с трудом). Бывало использовал что-то вроде ЛТИ 120 (жидкий, для радиокомпотентов — удобно наносить кисточкой). Наверное посовременнее есть средства.
wormball
24.08.2015 02:20> A4TECH BLOODY V7
О, а у неё кнопки перепрограммируются из-под линухи? А то у меня уже лет семь мышь Oklick 710L, датчик так себе, зато у неё есть киллер-фича — кнопка alt+tab там, где у вашей мыши кнопка 3. Я рассматривал варианты покупки «дорогих» мышей, но вот не смог найти ничего похожего. Либо дополнительные кнопки расположены так, что за ними надо тянуться, либо напротив, что можно их ненароком нажать, либо не перепрограммируются (и назначено на них совсем не то), ну или перепрограммируются, но только под виндой. Я готов выложить за мышь 3000 рублей (может быть, даже 5000), но не готов выкладывать 3000 рублей за мышь, в которой не будет того, что я хочу. Вот ваш вариант неплохо выглядит, ежели можно alt+tab на третью кнопку назначить. Ну или аналогичная мышь R8.
> Заменить микровыключатель — потом порвется хвост, потом пластиковые подшипники протрутся до дыр, энкодер умрет…
Ну не знаю, я с подобным не сталкивался. Виденные мною мыши по многу лет в основном работают. Те, которым я хвост укорачивал — тоже после этого работают ничуть не хуже. Так что я считаю, что ремонт в данном случае оправдан. Без учёта фотографирования и написания статьи на всё про всё у меня ушло от силы полчаса. И я бы ещё за это время успел контакты почистить, ежели бы не хотел соблюсти чистоту эксперимента. А поход за мышью занял бы не в пример более, плюс стоимость самой мыши. Ну и время, затраченное на выбор этой самой мыши, и/или вероятность жестокого разочарования в таковой. Разве что сразу пучок мышей покупать и использовать ту, которая больше понравилась, но это уже связано с дополнительными финансовыми затратами. В общем, как ни крути, а ремонт здесь — оптимальный выход, ежели только вы не можете послать персонального лакея в мышехранилище за новой мышкой.
> Из-за усталости материала падает сила прижима перекидного контакта. И получаем затянутый по времени процесс «прыгания» контакта. Сам видел неоднократно микровыключатели, у которых пружина просто разваливалась на куски…
Ну это уже другой вопрос. Вот, например, тот выключатель, который в статье — на нём признаков износа не заметно. А дребезг есть. А ежели приходится давить всем своим весом, чтобы кнопку нажать (бывает и такое) — то конечно, выключатель на выкидку. Хотя… есть ещё такой прикол — та пластмасска, которая давит на выключатель, может со временем стираться, тогда в ней образуется такое красивое углубление, которое и не даёт кнопке нажиматься до конца. Вот, в частности, с упомянутой мышью 710L так было, я эту пластмасску подпилил — и мышь стала как новая. Надо это будет в статье упомянуть.
> Купить нормальные микровыключатели с большим ресурсом. И перепаять.
Ну это опять же надо их искать и покупать. И заранее нельзя сказать, у какого будет большой ресурс, а у какого маленький. И чтобы их перепаивать — надо обладать несколько большим мастерством, нежели для напаивания конденсатора, а желательно — ещё и паяльным феном. Так что круг потенциального применения этого метода сужается.ploop
24.08.2015 08:57+2О, а у неё кнопки перепрограммируются из-под линухи?
xbindkeys — какую угодно кнопку на что угодно.wormball
24.08.2015 16:14Боюсь, что она не выполняет тех функций, которые я от неё ожидал. Обычные мышиные кнопки вообще не воспринимает, кнопки вперёд-назад у дефендера — тоже, а у оклика на вперёд и назад выдаёт решительно один и тот же текст. Даже на клавиатуре не все кнопкосочетания воспринимает. А xbindkeys-config вообще регулярно валится на ровном месте. Даже ежели бы всё перечисленное выполняла — всё равно получилось бы так, что при перепрограммировании кнопки на мыши перепрограммировалось бы и аналогичное сочетание на клавиатуре, чего в общем случае не хотелось бы.
ploop
24.08.2015 16:24+1В смысле не работает? Запускаете утилиту xev (X events), записываете коды нужных кнопок, а затем в xbindkeysrc вешаете на них любые клавиатурные сочетания.
wormball
24.08.2015 16:48А яндекс мне выдал статью, где предлагается использовать xbindkeys -k или xbindkeys-config для этих целей. Попробую, спасибо. Хотя всё равно хочется, чтобы непосредственно в мышке можно было кнопки перепрограммировать.
ploop
24.08.2015 17:38Вот мой xbindkeysrc для M705, я повесил три браузерных команды: колесо влево — новая вкладка, колесо вправо (на себя) — обновить, кнопка под большим пальцем — закрыть вкладку.
Кнопки вперёд/назад оказалось работают изначально.
ploop
24.08.2015 22:52+1Разобрал сейчас М705 — тоже кнопка глючила, только не основные, а та, что на колесе нажатие влево отрабатывает. Точнее не глючила, давить очень сильно надо было. Уже полгода такая фигня.
Короче прозвонил — да, проблема в кнопке. Найти такую нереально, только заказывать. Решил расковырять — сломаю так и чёрт с ней. Как ни странно — вскрыл, внутренности простые, жестяной кругляш, над ним резинка и пластиковая нахлобучка. Этот кругляш окислился. Почистил, собрал обратно — как новая.
С удивлением обнаружил, что мыша работает на Atmega16 :)Foreglance
24.08.2015 23:40С удивлением обнаружил, что мыша работает на Atmega16
Интересно. А в этой (youtube) Atmega32 используется.ploop
24.08.2015 23:56Тут 16я в QFN корпусе (7х7 мм), два кварца. Для чего второй (похож на часовой на 32768) — не понял, может обеспечивает ждущий режим, на пониженной тактовой частоте. И всё это работает от 0.9 вольт… Разработчикам респект!
wormball
25.08.2015 00:22А я вот с удивлением обнаружил (при помощи xev), что теперь при нажатии правой кнопки мыши одновременно нажимается и левая. :( Чувствую, придётся опровержение писать. Зато вроде понял, как оно работает. А контроллер там nRF24LE1.
ploop
25.08.2015 00:31что теперь при нажатии правой кнопки мыши одновременно нажимается и левая
о_О Так ведь контекстное меню вызвать нельзя будет.
xev отлавливает как событие нажатия, так и отпускания. Вот как у меня:
ButtonPress event, serial 72, synthetic NO, window 0x4000001, root 0x9f, subw 0x0, time 25032217, (98,43), root:(147,545), state 0x10, button 1, same_screen YES ButtonRelease event, serial 72, synthetic NO, window 0x4000001, root 0x9f, subw 0x0, time 25032365, (98,43), root:(147,545), state 0x110, button 1, same_screen YES ButtonPress event, serial 72, synthetic NO, window 0x4000001, root 0x9f, subw 0x0, time 25035123, (98,43), root:(147,545), state 0x10, button 3, same_screen YES ButtonRelease event, serial 72, synthetic NO, window 0x4000001, root 0x9f, subw 0x0, time 25035303, (98,43), root:(147,545), state 0x410, button 3, same_screen YES
button 1 — левая, buntton 3 — правая. Курсор не в квадрате, а на окне.wormball
25.08.2015 00:39> Так ведь контекстное меню вызвать нельзя будет.
Оказывается, можно, но не везде. В хроме, например, на странице можно, а в заголовке нельзя.
> Вот как у меня:
Вот у меня аналогично, только 1, 3, 3, 1. Выпаял конденсатор — вновь стало только 3.ploop
25.08.2015 07:30Вот у меня аналогично, только 1, 3, 3, 1. Выпаял конденсатор — вновь стало только 3.
Вот блин… это каким-же они хитрым способом кнопки завели?wormball
25.08.2015 15:25Да там всё банально оказалось. easyelectronics.ru/matrichnaya-klaviatura.html Вот приблизительно так, только никаких диодов, и притянуты считывающие порты, и не к питанию, а к земле. И всего там 6 кнопок и 3*2 ноги, то бишь сэкономили таким образом ажно одну (!) ногу из тридцати двух. Почему, собственно, я об этом варианте не вспомнил — я не думал, что при таком маленьком количестве кнопок такое будет иметь смысл.
ploop
25.08.2015 15:42то бишь сэкономили таким образом ажно одну (!) ногу из тридцати двух
Гении, блин.
imwode
29.08.2015 20:35Конденсатор не решает проблему, а усушубляет ее. При размыкании между контактами проскакивает искра, разрушая их.
Шокирующие подробности вот тут: www.ganssle.com/debouncing.htmwormball
30.08.2015 00:58Вы точно с индуктивностями не путаете?
По ссылке не нашёл упоминаний ни конденсаторов, ни индуктивностей, а всё читать лень.
grozaman
О_о
Вот он — настоящий Geektimes. Я бы просто микрушку поменял, они везде обычыно Omron ставят, достать не проблема. Или вообще мышку, благо мрут не так часто.
ploop
Да можно любой (все они примерно одинаковы по качеству), вынуть, например, из старой убитой мыши. Только правую кнопку, она на порядок меньше используется.
wormball
> Или вообще мышку, благо мрут не так часто.
А как же борьба с запланированным устареванием? Ежели мышь держится только до первых признаков дребезга — ящитаю, это оно самое. Означенная мышь, например, год прожила. К стоимости мышки ещё надо прибавить муки выбора и поездку в магазин. А дорогую мышь покупать — тоже не решение, как выясняется.
ploop
Мрут у них в основном энкодеры, так как механика. На дорогих ставят оптику — та вечная. Точнее не на дорогих, а только две компании: Microsoft и Logitech. На остальных, даже супер-крутых геймерских всё равно дешевый китайский механический энкодер.
Ну а кнопки мрут везде. Благо заменить не проблема. Хотя года два у меня все держат.
lamoss
>Ну а кнопки мрут везде. Благо заменить не проблема. Хотя года два у меня все держат.
К слову — у меня на Logitech G5 уже 7 год пошел.
wormball
Энкодер, кстати говоря, также меняется при наличии донора органов. Правда, не у всех мышей они одинаковые, в отличие от.
grozaman
И мышь как раз таки зачастую меняют именно из-за него. Поэтому все мыши из кладовки — уже мертвы.
Во всяком случае у меня)
DIHALT
Измельчали мыши. Мой логитечь BJ-59 живет уже 10 лет. Сдохла только одна кнопка и то потому, что мой дружок-дебил во время гейминга хреначил по ней со всей силы, будто бы от того, что по кнопке сильней влупишь рельса больше дамага даст.
BlackFoks
Я купил 6 штук микрушек на ebay, даже с заменой не стал заморачиваться, т.к. паять, по сути, не умею. Заменил металлическую пластинку на новую и все отлично стало.
DIHALT
А можно было и старую аккуратно почистить о грубый картон. Там просто окисел на контактах.