Почему кнопки мыши «кликают»

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Вы когда-нибудь задумывались, почему ваша компьютерная мышь издает этот характерный щелчок при каждом нажатии? Я вот задумался. Мы настолько привыкли к этому звуку, что он стал неотъемлемой частью нашего опыта работы с компьютером. «Клик-клик» — и окно открылось, еще «клик» — переход на вкладку iXBT. Звук настолько узнаваемый, что даже стал глаголом: «Щелкни сюда», «Я кликнул, но ничего не произошло». Но откуда он взялся?


Автор: Pxhere (CC0) Источник: pxhere.com

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

Печатаете на мембранной клавиатуре — лишь тихий стук пальцев по клавишам да пружинный скрип. Даже на геймпаде консоли кнопки просто «вжимаются» без каких-либо посторонних звуков. Так чем же мышь так отличается? Почему она настолько «разговорчива»?

Откуда берется щелчок?

Итак, представьте: вы нажимаете на кнопку мыши, и раздается характерный щелчок. Но откуда он берется? Оказывается, всё дело в маленьком, но очень хитром устройстве под названием «микропереключатель». Это не просто кнопка, а дальний родственник того самого выключателя, которым вы каждый вечер гасите свет в комнате.

На первый взгляд, сравнение может показаться странным — ну что общего у огромного выключателя на стене и крошечной кнопки в мышке? Но стоит разобраться в механизме, и всё встанет на свои места. Дело в том, что обе эти штуки используют один и тот же принцип нелинейного хода. Звучит сложно? Проще, чем кажется.

Возьмите любой обычный выключатель света и медленно нажмите на него. Заметили? Сначала он двигается легко, почти без сопротивления. Но в какой-то момент — обычно это последние 5% хода — вы чувствуете резкое сопротивление, а затем — щелчок, и свет загорается. Именно в этот момент контакты внутри выключателя резко сходятся, замыкая цепь. Оказывается, эти последние 5% внешнего движения создают аж 95% перемещения контактов внутри! Инженеры называют это «нелинейным ходом».

А теперь вернемся к нашей мышке. Под кнопкой находится точно такое же устройство, только размером с ноготь. Это и есть микропереключатель. Он работает очень похоже на «старшего брата» на стене: основная часть хода кнопки почти не влияет на контакты, но в самом конце — бац! — они резко замыкаются, издавая тот самый знакомый щелчок. К слову, впервые придуман такой микропереключатель нелинейного хода был в СССР, в ныне истекшем патенте SU325642A1 1972 года: дальше уже была миниатюризация.


Первый полностью современный микропереключатель
Автор: Д. П. Демченков Источник: patenton.ru

В «большой» электротехнике такой подход используется не просто так. Когда включаешь что-то мощное, вроде люстры или холодильника, на контактах может появиться искра. А она, в свою очередь, постепенно разрушает сам выключатель. Но если контакты замыкаются очень быстро — буквально со скоростью щелчка — искра просто не успевает образоваться при бытовых напряжениях. Умно, правда?

Но в мышке-то нет никаких мощных нагрузок! Ток там измеряется в миллиамперах, какие уж тут искры? А вот тут начинается самое интересное…

Немгновенное замыкание

Чтобы понять, зачем в мышке нужен этот «электротехнический излишек», нам придётся вернуться в славные 80-е. Эх, время синтезаторов, неоновых огней на Западе, тотального дефицита на Востоке и… Весьма примитивных компьютеров, в которых было меньше вычислительной мощности, чем в современном чайнике.

В те времена каждый байт памяти был на счету. Особенно в «нижних» (и, зачастую, единственных) 640 килобайтах — святая святых MS-DOS, которых, как известно, «хватит всем» — да и на Mac, где мышь впервые «ушла в массы», память тоже не ложкой хлебали. Поэтому программисты шли на всевозможные ухищрения, лишь бы сэкономить несколько байтов. При этой атмосфере тотальной экономии родилась и шариковая компьютерная мышь. По современным меркам, это было до смешного примитивное устройство. По сути — пара колёсиков с прорезями (так называемый оптический энкодер) для определения движения, шарик, вращающийся и создающий это самое движение да одна-две кнопки. Никаких микроконтроллеров, никакой «умной» электроники.

Когда вы двигали такую мышь по столу, колёсики вращались от шарика, и свет от светодиода то попадал в фотодатчик сквозь прорези, то перекрывался, что энкодер интерпретировал как дискретные движения в определенную сторону (направление определялось за счет паттерна в колёсике). Точно так же работали и кнопки: нажал — контакт замкнулся, отпустил — разомкнулся. Всю эту двоичную информацию мышь буквально «кричала» в последовательный порт компьютера: «Вот! Вот! Есть сигнал! Нет сигнала!». Схема упрощена для понимания, но лишь ненамного.

А на другом конце провода сидел драйвер мыши в DOS. И он был ещё более «тупым», простите за выражение. Его задача — переводить эти «крики» из порта в понятные системе команды: сдвинуть курсор, кликнуть. И делать это надо было молниеносно, ведь каждая лишняя проверка — это драгоценные байты памяти и такты процессора.

Теперь представьте: вы медленно нажимаете на обычную пружинную кнопку в такой мыши. В какой-то момент контакты внутри неизбежно будут до конца замкнуты, но и не полностью разомкнуты. Они буквально болтаются, создавая серию микроскопических замыканий и размыканий. Ровно на границе между логическим нулём и единицой. Для большинства устройств это не проблема — подумаешь, шум. Но наш «недалёкий» DOS-драйвер воспринимает каждое такое колебание как отдельный щелчок!


В итоге получалась бы совершенно дикая картина. Вы просто хотели закрыть окно (художественно допустим, что на дворе уже эпоха Windows, или у вас был бы Macintosh), а в результате оно закрылось, открылось, снова закрылось, да ещё и пара ярлыков на рабочем столе активировалась. Геннадий из бухгалтерии до сих пор бы вспоминал, как случайно отправил квартальный отчет раз пятнадцать подряд… Нет. В таком виде «координатный манипулятор» явно никуда не полетит.

Автор: Pxhere (CC0) Источник: pxhere.com

Микропереключатель как решение

Проблема «болтанки» возникла задолго до появления компьютерных мышей. С ней столкнулись заметно больше века назад, впервые попробовав передать телетайпные данные кодом Бодо. Представьте: оператор отбивает сообщение, а его коллега вместо «ПРИВЕТ» получает на свой телетайп что-то вроде «ВА3УФГЩВЕТЧ12». Не очень-то информативно!

Решение нашли довольно быстро — тогда ещё не «микро», а просто переключатель, на тот момент буквально идентичный «электрическому», которым телетайп и управляет как телеграфным ключом вместо отправки сигнала напрямик. Идея проста: если заставить контакты замыкаться достаточно быстро, то все эти микроскопические колебания, вне зависимости от причины, сольются в один чёткий сигнал — а «мусору» из самого телетайпа ещё и не хватит времени, чтобы полностью его переключить (а с учетом того, что телетайп — это то ещё электромеханическое чудовище, «причин» там до черта).

Когда в 80-х появились первые компьютерные мыши, инженеры столкнулись с той же проблемой. К счастью, им не пришлось изобретать велосипед. Электротехники уже вовсю использовали миниатюрные версии тех самых нелинейных переключателей в разных устройствах: от автоматов на производстве до бытовой техники, а их микроминиатюризованные версии уже десяток лет были в серии. Оставалось только взять готовую конструкцию и ещё немного её уменьшить. Что, впрочем, тоже было давно сделано: с первого изобретенного в СССР микропереключателя условно-современной конструкции прошло десятилетие, что для изобретений — вечность.

И вот, в недрах первых мышей появились эти крошечные механические гении. Когда вы нажимаете на кнопку, в самом конце — бац! — контакты внутри микропереключателя резко сходятся, замыкая цепь. Весь «мусор» от неполного контакта просто тонет в этом чётком, однозначном сигнале. И бедный DOS-драйвер больше не путается — он слышит одно чёткое «Вот!» вместо десятка невнятных «Во-о-от… Н-нет… Во-о-от…». А мы слышим щелчок.

Интересно, что этот щелчок — вовсе не побочный эффект. Он является неотъемлемой частью работы микропереключателя. Резкий механический перескок создаёт такой же резкий звук (попробуйте, например, резко щелкнуть карандашом по столу, а затем мягко ударить им же — для наглядности). То есть, слыша «клик», вы буквально слышите, как ваша мышь решает проблему неполного нажатия.

Сила привычки: почему щелчки с нами навсегда

Шло время, компьютеры становились мощнее. К середине 90-х даже скромный домашний ПК располагал памятью и процессорной мощью, о которых в начале 80-х можно было только мечтать. Драйверы тоже «поумнели»: теперь они без труда могли бы фильтровать ложные сигналы, не боясь съесть лишний килобайт памяти.

Казалось бы, золотой момент, чтобы раз и навсегда избавиться от «щёлкающей» технологии. Ведь микропереключатели в мышах использовались исключительно как костыль для несовершенной электроники тех лет. Теперь, когда драйверы могли без проблем обрабатывать даже «дребезжащий» сигнал, самое время было перейти на более современные и тихие решения.

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

Преимущества такого подхода были очевидны. Во-первых, потрясающая тишина: больше никаких щелчков, только приятное, едва уловимое нажатие. Во-вторых, невероятно плавный ход — в отличие от резкого срабатывания микропереключателя, тут кнопка нажималась линейно, как в курке геймпада. И наконец, ресурс такой кнопки был практически неограничен: мембранная технология обещала работать чуть ли не вечно.

Производители наперебой предлагали модели с «инновационными бесшумными кнопками и бесконечным ресурсом». Маркетологи уже потирали руки, предвкушая смену поколений мышей по всему миру.

Но… ничего не произошло. Совсем. Эти «мыши будущего» с треском провалились на рынке. Большинство пользователей попробовали их однажды и тут же вернулись к привычным «щёлкающим» моделям. Почему? Если честно, полного ответа у меня нет.

Две теории

Самая правдоподобная теория — «сила привычки». К середине 90-х многие уже несколько лет использовали мышь, срослись с ней, довели обращение до автоматизма. И тут — бац! — кнопки не щёлкают. Казалось бы, мелочь, но это разрушало годами наработанные рефлексы. Люди могли жаловаться: «Не понимаю, нажал или нет», «Не чувствую отклик», «Как будто что-то не так».

Есть и другая теория — акустическая обратная связь. Щелчок микропереключателя — это не просто побочный эффект, а своего рода подтверждение действия, аналогично щелчку затвора фотоаппарата или звуку клавиш печатной машинки. Он даёт мозгу чёткий сигнал: «Команда принята». Без этого «квитка» у многих возникало неосознанное беспокойство.

Но эта теория не объясняет, почему в случае с клавиатурами пользователи всё же приняли переход на более тихую и безопасную для пальцев мембранную технологию. Возможно, дело в частоте использования: по клавишам мы бьём постоянно, и тут тишина — благо, а мышью «кликаем» реже, так что шум не так утомляет.

Всё же, механическая клавиатура — это не только боль в пальцах после девяти часов печати, но и ГРОХОТ, от которого болит в ушах.
Автор: Corel

В любом случае, итог известен: бесшумная революция в мире мышей не состоялась. Мы по-прежнему «кликаем», и, похоже, ещё долго будем это делать. Что ж, порой традиции берут верх над прогрессом, даже в мире технологий.

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

Даблклик: когда история повторяется

Казалось бы, история должна была на этом закончиться. Проблема (не) решена, все счастливы, работаем дальше. Но в том-то и дело, что «успех» микропереключателей оказался слишком устойчивым.

В результате все мыши по сей день — от дешёвых офисных до навороченных игровых — по-прежнему базируются на микропереключателях. Более того, даже в современных мышах с встроенным микроконтроллером (а сейчас такие почти у всех) эти чипы используются лишь для «декораций»: управления подсветкой, хранения настроек, работы с макросами. А вот основную работу — определение движения и нажатий — мышь всё так же тупо «кричит» в порт, как её предки из 80-х, только теперь этот сигнал — цифровой и «обёрнут» в HID-прослойку.

То есть, получается парадокс. Технология, введённая для решения конкретной проблемы, не только не ушла в прошлое вместе с этой проблемой, но и законсервировала часть изначальных ограничений. Это как если бы мы до сих пор ездили на автомобилях с ручным стартером — просто прикрутив к нему электродрель «шоб незаметно было».

И вот второй парадокс: старая проблема вернулась, но уже по другой причине. Помните тот самый «щелчок» микропереключателя, который мы так полюбили? Он происходит из-за резкого удара контактов друг о друга. Но что случается с любым механизмом, который постоянно бьётся? Правильно, он изнашивается.

Что внутри у современной мыши
Автор: GEEK KAZU (CC BY 2.0 Deed) Источник: www.flickr.com

После энного числа нажатий (от миллионов в старых мышах до десятков тысяч в современном китайском мусоре) контакты в микропереключателе деформируются. Они уже не смыкаются так чётко и мгновенно, как раньше. И что же мы получаем? Тот самый «переходный» период между нулём и единицей, который когда-то вызывал проблемы у первых мышей!

Изношенный микропереключатель начинает проявлять те же проблемы, что и линейная кнопка, пусть и по другой причине. Насколько я понял из крайне запутанных объяснений в Сети, при нажатии появляется т.н. дребезг контактов (подробнее на Википедии) — он многократно замыкает и размыкает контакт за доли секунды. А базовый принцип работы мыши не изменился: она всё так же бездумно отправляет весь этот «мусор» в компьютер!

Результат вы наверняка испытывали на себе — это известный феномен «двойного щелчка» (double-clicking). Изношенная кнопка мыши заставляет систему думать, что вы нажали её не один раз, а два или даже больше. И вот уже вместо открытия папки вы случайно запускаете программу, или вместо выделения группы файлов сразу же открываете какой-то из них — и вот мышь уже пора менять.

Забавно, правда? Мы начали с проблемы ложных срабатываний в первых мышах. Чтобы решить её, инженеры применили микропереключатели. Но сама природа этих переключателей — тот самый механический удар, который даёт этот «клик», с вопроса ок отором началась статья, — приводит к тому, что в конце жизни мыши мы возвращаемся к той же самой проблеме! Воистину, история идёт по кругу…

Post Scriptum
Автор не претендует на стопроцентную правоту. Я постарался перелопатить как можно больше источников, включая англоязычные, но тема достаточно запутана, чтобы я мог где-то ошибиться. Я постарался вычленить правду (и несколько интересных фактов по пути), но вы сами знаете, что «в реальности всё не так, как на самом деле».

Изображение в превью:
Автор: Pxhere (CC0)
Источник: pxhere.com