Простое фотореле из компьютерной мыши. Компьютерная мышка как точный датчик Датчик движения из мышки своими руками

Добрый день, друзья!

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

Что такое «мышь»?

«Мышь» — это кнопочный манипулятор, предназначенный вместе с клавиатурой для ввода информации в .

Действительно, он похож на мышь с хвостиком. Современный компьютер уже немыслим без этой штуковины.

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

Поэтому частенько пользователи отключают это ноутбучный «коврик» и подключают «мышь».

Как же устроена эта удобная штука?

Первые конструкции манипуляторов

Первые манипуляторы включали в себя шарик, который касался двух валиков с дисками.

Внешний обод каждого диска имел перфорацию . Валы были расположены перпендикулярно друг к другу.

Один вал отвечал за координату Х (горизонтальное перемещение), другой – за координату Y (вертикальное перемещение).

При перемещении манипулятора по столу шарик вращался, передавая крутящий момент на валы.

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

Если манипулятор перемешался в произвольном направлении, вращались оба вала, соответственно перемещался и курсор.

Оптические датчики в старых «мышах»

Такие устройства содержали в себе два оптических датчика – оптопары . Оптопара включает в себя излучатель (светодиод, излучающий в ИК диапазоне) и приемник – (фотодиод или фототранзистор). Излучатель и приемник расположены на близком расстоянии друг от друга.

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

Кнопки и колесо прокрутки

Любой манипулятор имеет, как минимум, две кнопки.

Двойной «клик» (нажатие) на одну из них (обычно левую) запускает исполнение программы или файла, нажатие на другую – запускает контекстное меню для соответствующей ситуации.

Устройства, предназначенные для компьютерных игр, могут иметь 5-8 кнопок.

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

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

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

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

Оптические «мыши»

В дальнейшем манипулятор был усовершенствован.

Появились так называемые оптические «мыши».

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

Светодиод испускает лучи, которые, отражаясь от поверхности, улавливаются сенсором.

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

В оптической «мыши» нет трущихся частей (за исключением потенциометра, вращение на который передается с колеса прокрутки), которые изнашиваются или загрязняются. Это также является преимуществом.

Возможные проблемы с манипуляторами

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

Поэтому первое слабое место у манипуляторов – именно кабель.

Чаще всего внутренний обрыв одной или нескольких жил бывает в месте входа кабеля в мышь.

В кабеле имеется 4 провода, два из них – питание, третий – тактовая частота, четвертый – информационный.

Если мышь не видится компьютером, первым делом надо «позвонить» кабель .

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

Мыши с разъемом PS/2 нельзя переключать «на ходу» .

В противном случае ее контроллер (крохотный ее «мозг») может выйти из строя. И хорошо еще, если дело ограничится только этим. Может выйти из строя и контроллер интерфейса PS/2 на материнской плате, что гораздо хуже.

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

Манипуляторы с интерфейсом COM или USB можно переключать «на ходу». Впрочем, в настоящее время устройства с интерфейсом COM практически не встречаются.

«Кликать» мышкой приходится многие тысячи раз, и кнопки после длительной работы могут отказывать. Чтобы заменить кнопку, надо разобрать манипулятор и припаять другую. Не обязательно использовать такую же, какая была. Главное здесь – соблюсти высоту, чтобы сохранить длину хода клавиши. Впрочем, манипуляторы давно уже весьма доступны, и большинство пользователей не заморачиваются с их ремонтом.

Скажем «спасибо» добрым старым «мышкам» с шариком в брюхе – они хорошо нам послужили…

Заканчивая статью, отметим, что существуют разновидности манипуляторов с лазерным излучателем вместо светодиода, которые обеспечивают более точное и быстрое позиционирование курсора. Эти скорость и точность особенно востребованы в играх.

Существуют и wireless (радио) «мыши», в которых обмен информацией с компьютером осуществляется не по проводу, а по радиоканалу. Поэтому они содержат собственный источник питания – пару пальчиковых гальванических элементов типоразмера АА или ААА. Напомним еще раз, что разъем манипулятора вставляется в один из портов .

На сегодня все.

С вами был Виктор Геронда.

До встречи на блоге!

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

Кто тебя выдумал…

Привычные для нас сегодня оптические мыши ведут свою родословную с 1999 года, когда в массовой продаже появились первые экземпляры таких манипуляторов от Microsoft, а через некоторое время и от других производителей. До появления этих мышей, да и еще долго после этого, большинство массовых компьютерных «грызунов» были оптомеханическими (перемещения манипулятора отслеживались оптической системой, связанной с механической частью - двумя роликами, отвечавшими за отслеживание перемещения мыши вдоль осей × и Y; эти ролики, в свою очередь, вращались от шарика, перекатывающегося при перемещении мыши пользователем). Хотя встречались и чисто оптические модели мышей, требовавшие для своей работы специального коврика. Впрочем, такие устройства встречались не часто, да и сама идея развития подобных манипуляторов постепенно сошла на нет.

«Вид» знакомых нам нынче массовых оптических мышек, базирующихся на общих принципах работы, был «выведен» в исследовательских лабораториях всемирно известной корпорации Hewlett-Packard. Точнее, в ее подразделении Agilent Technologies, которое только сравнительно недавно полностью выделилось в структуре корпорации НР в отдельную компанию. На сегодняшний день Agilent Technologies, Inc. - монополист на рынке оптических сенсоров для мышей, никакие другие компании такие сенсоры не разрабатывают, кто бы и что не говорил вам об эксклюзивных технологиях IntelliEye или MX Optical Engine . Впрочем, предприимчивые китайцы уже научились «клонировать» сенсоры Agilent Technologies, поэтому, покупая недорогую оптическую мышь, вы вполне можете стать владельцем «левого» сенсора.

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

Как «видят» компьютерные мыши

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

Итак, «зрение» оптическая компьютерная мышь получает благодаря следующему процессу. С помощью светодиода, и системы фокусирующих его свет линз, под мышью подсвечивается участок поверхности. Отраженный от этой поверхности свет, в свою очередь, собирается другой линзой и попадает на приемный сенсор микросхемы - процессора обработки изображений. Этот чип, в свою очередь, делает снимки поверхности под мышью с высокой частотой (кГц). Причем микросхема (назовем ее оптический сенсор) не только делает снимки, но сама же их и обрабатывает, так как содержит две ключевых части: систему получения изображения Image Acquisition System (IAS) и интегрированный DSP процессор обработки снимков.

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

Если мы посмотрим на блок-схему одного из оптических сенсоров, то увидим, что микросхема состоит из нескольких блоков, а именно:

  • основной блок, это, конечно же, Image Processor - процессор обработки изображений (DSP) со встроенным приемником светового сигнала (IAS);
  • Voltage Regulator And Power Control - блок регулировки вольтажа и контроля энергопотребления (в этот блок подается питание и к нему же подсоединен дополнительный внешний фильтр напряжения);
  • Oscillator - на этот блок чипа подается внешний сигнал с задающего кварцевого генератора, частота входящего сигнала порядка пары десятков МГц;
  • Led Cоntrоl - это блок управления светодиодом, с помощью которого подсвечивается поверхность под мышью;
  • Serial Port - блок передающий данные о направлении перемещения мыши вовне микросхемы.

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

Нужно уточнить, что информацию о перемещении мыши микросхема оптического сенсора передает через Serial Port не напрямую в компьютер. Данные поступают к еще одной микросхеме-контроллеру, установленной в мыши. Эта вторая «главная» микросхема в устройстве отвечает за реакцию на нажатие кнопок мыши, вращение колеса прокрутки и т.д. Данный чип, в том числе, уже непосредственно передает в ПК информацию о направлении перемещения мыши, конвертируя данные, поступающие с оптического сенсора, в передаваемые по интерфейсам PS/2 или USB сигналы. А уже компьютер, используя драйвер мыши, на основании поступившей по этим интерфейсам информации, перемещает курсор-указатель по экрану монитора.

Именно по причине наличия этой «второй» микросхемы-контроллера, точнее благодаря разным типам таких микросхем, довольно заметно отличались между собой уже первые модели оптических мышей. Если о дорогих устройствах от Microsoft и Logitech слишком плохо отозваться я не могу (хотя и они не были вовсе «безгрешны»), то масса появившихся вслед за ними недорогих манипуляторов вела себя не вполне адекватно. При движении этих мышей по обычным коврикам курсоры на экране совершали странные кульбиты, скакали чуть ли не на пол Рабочего стола, а иногда… иногда они даже отправлялись в самостоятельное путешествие по экрану, когда пользователь совершенно не трогал мышь. Доходило и до того, что мышь могла запросто выводить компьютер из режима ожидания, ошибочно регистрируя перемещение, когда манипулятор на самом деле никто не трогал.

Кстати, если вы до сих пор боретесь с подобной проблемой, то она решается одним махом вот так: выбираем Мой Компьютер > Свойства > Оборудование > Диспетчер устройств > выбираем установленную мышь > заходим в ее «Свойства» > в появившемся окне переходим на закладку «Управление электропитанием» и снимаем галочку с пункта «Разрешить устройству вывод компьютера из ждущего режима» (рис. 4). После этого мышь уже не сможет вывести компьютер из режима ожидания ни под каким предлогом, даже если вы будете пинать ее ногами:)

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

Однако, мы несколько отвлеклись от темы. Возвращаемся. В целом система оптического слежения мышей, помимо микросхемы-сенсора, включает еще несколько базовых элементов. Конструкция включает держатель (Clip) в который устанавливаются светодиод (LED) и непосредственно сама микросхема сенсора (Sensor). Эта система элементов крепится на печатную плату (PCB), между которой и нижней поверхностью мыши (Base Plate) закрепляется пластиковый элемент (Lens), содержащий две линзы (о назначении которых было написано выше).

В собранном виде оптический элемент слежения выглядит как показано выше. Схема работы оптики этой системы представлена ниже.

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

Кстати, о проблеме долговечности оптических мышей. Помниться, некоторые их производители утверждали что, дескать «они будут служить вечно». Да надежность оптической системы слежения высока, она не идет ни в какое сравнение с оптомеханической. В то же время в оптических мышах остается много чисто механических элементов, подверженных износу точно так же, как и при господстве старой доброй «оптомеханики». Например, у моей старой оптической мыши стерлись и поотваливались ножки, сломалось колесо прокрутки (дважды, в последний раз безвозвратно:(), перетерся провод в соединительном кабеле, с манипулятора слезло покрытие корпуса… зато вот оптический сенсор нормально работает, как ни в чем не бывало. Исходя из этого, мы смело можем констатировать, что слухи о якобы впечатляющей долговечности оптических мышей не нашли своего подтверждения на практике. Да и зачем, скажите на милость, оптическим мышам «жить» слишком долго? Ведь на рынке постоянно появляются новые, более совершенные модели, созданные на новой элементной базе. Они заведомо совершеннее и удобнее в использовании. Прогресс, знаете ли, штука непрерывная. Каким он был в области эволюции интересующих нас оптических сенсоров, давайте сейчас и посмотрим.

Из истории мышиного зрения

Инженеры-разработчики компании Agilent Technologies, Inc. не зря едят свой хлеб. За пять лет оптические сенсоры этой компании претерпели существенные технологические усовершенствования и последние их модели обладают весьма впечатляющими характеристиками.

Но давайте обо всем по порядку. Первыми массово выпускаемыми оптическими сенсорами стали микросхемы HDNS-2000 (рис. 8). Эти сенсоры имели разрешение 400 cpi (counts per inch), то бишь точек (пикселей) на дюйм, и были рассчитаны на максимальную скорость перемещения мыши в 12 дюймов/с (около 30 см/с) при частоте осуществления снимков оптическим сенсором в 1500 кадров за секунду. Допустимое (с сохранением стабильной работы сенсора) ускорение при перемещении мыши «в рывке» для чипа HDNS-2000 - не более 0.15 g (примерно 1.5 м/с 2).

Затем на рынке появились микросхемы оптических сенсоров ADNS-2610 и ADNS-2620 . Оптический сенсор ADNS-2620 уже поддерживал программируемую частоту «съемки» поверхности под мышью, с частотой в 1500 либо 2300 снимков/с. Каждый снимок делался с разрешением 18х18 пикселей. Для сенсора максимальная рабочая скорость перемещения по прежнему была ограничена 12 дюймами в секунду, зато ограничение по допустимому ускорению возросло до 0.25 g, при частоте «фотографирования» поверхности в 1500 кадров/с. Данный чип (ADNS-2620) также имел всего 8 ножек, что позволило существенно сократить его размеры по сравнению с микросхемой ADNS-2610 (16 контактов), внешне похожей на HDNS-2000. В Agilent Technologies, Inc. задались целью «минимизировать» свои микросхемы, желая сделать последние компактнее, экономнее в энергопотреблении, а потому и удобнее для установки в «мобильные» и беспроводные манипуляторы.

Микросхема ADNS-2610 хотя и являлась «большим» аналогом 2620-й, но была лишена поддержки «продвинутого» режима 2300 снимков/с. Кроме того, этот вариант требовал 5В питания, тогда как чип ADNS-2620 обходился всего 3.3 В.

Вышедший вскоре чип ADNS-2051 представлял собой гораздо более мощное решение, чем микросхемы HDNS-2000 или ADNS-2610, хотя внешне (упаковкой) был также на них похож. Этот сенсор уже позволял программируемо управлять «разрешением» оптического датчика, изменяя таковое с 400 до 800 сpi. Вариант микросхемы также допускал регулировку частоты снимков поверхности, причем позволял менять ее в очень широком диапазоне: 500, 1000,1500, 2000 или 2300 снимков/с. А вот величина этих самых снимков составляла всего 16х16 пикселей. При 1500 снимках/с предельно допустимое ускорение мыши при «рывке» составляло по прежнему 0.15 g, максимально возможная скорость перемещения - 14 дюймов/с (т. е. 35.5 см/с). Данный чип был рассчитан на напряжение питания 5 В.

Сенсор ADNS-2030 разрабатывался для беспроводных устройств, а потому имел малое энергопотребление, требуя всего 3.3 В питания. Чип также поддерживал энергосберегающие функции, например функцию снижения потребления энергии при нахождении мыши в состоянии покоя (power conservation mode during times of no movement), переход в режим «сна», в том числе при подключении мыши по USB интерфейсу, и т.д.. Мышь, впрочем, могла работать и не в энергосберегающем режиме: значение «1» в бите Sleep одного из регистров чипа заставляло сенсор «всегда бодрствовать», а значение по умолчанию «0» соответствовало режиму работы микросхемы, когда по прошествии одной секунды, если мышь не перемещалась (точнее после получения 1500 совершенно одинаковых снимков поверхности) сенсор, напару с мышью, переходил в режим энергосбережения. Что касается остальных ключевых характеристик сенсора, то они не отличались от таковых у ADNS-2051: тот же 16-и контактный корпус, скорость перемещения до 14 дюймов/с при максимальном ускорении 0.15 g, программируемое разрешение 400 и 800 cpi соответственно, частоты осуществления снимков могли быть точно такими же, как и у вышерассмотренного варианта микросхемы.

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

В итоге и курсор на экране перемещался не так, как требовалось. Указатель на экране даже становился способен на экспромт:) - на непредсказуемые перемещения в произвольном направлении. Кроме того, легко догадаться, что при слишком быстром перемещении мыши сенсор мог вообще утратить всякую «связь» между несколькими последующими снимками поверхности. Что порождало еще одну проблему: курсор при слишком резком перемещении мыши либо дергался на одном месте, либо происходили вообще «сверхъестественные»:) явления, например, с быстрым вращением окружающего мира в игрушках. Было совершенно ясно, что для человеческой руки ограничений в 12-14 дюймов/с по предельной скорости перемещения мыши явно мало. Также не вызывало сомнений, что 0.24 с (почти четверть секунды), отведенные для разгона мыши от 0 до 35.5 см/с (14 дюймов/с - предельная скорость) это очень большой промежуток времени, человек способен двигать кистью значительно быстрее. И потому при резких движениях мыши в динамичных игровых приложениях с оптическим манипулятором может придтись несладко…

Понимали это и в Agilent Technologies. Разработчики осознавали, что характеристики сенсоров надо кардинально улучшать. В своих изысканиях они придерживались простой, но правильной аксиомы: чем больше снимков в секунду сделает сенсор, тем меньше вероятность того, что он потеряет «след» перемещения мыши во время совершения пользователем компьютера резких телодвижений:)

Хотя, как мы видим из вышеизложенного, оптические сенсоры и развивались, постоянно выпускались новые решения, однако развитие в этой области можно смело назвать «очень постепенным». По большому счету, кардинальных изменений в свойствах сенсоров так и не происходило. Но техническому прогрессу в любой области порой свойственны резкие скачки. Случился такой «прорыв» и в области создания оптических сенсоров для мышей. Появление оптического сенсора ADNS-3060 можно считать действительно революционным!

Лучший из

Оптический сенсор ADNS-3060 , по сравнению со своими «предками», обладает поистине впечатляющим набором характеристик. Использование этой микросхемы, упакованной в корпус с 20-ю контактами, обеспечивает оптическим мышам невиданные ранее возможности. Допустимая максимальная скорость перемещения манипулятора выросла до 40 дюймов/с (то есть почти в 3 раза!), т.е. достигла «знаковой» скорости в 1 м/с. Это уже очень хорошо - вряд ли хоть один пользователь двигает мышь с превышающей данное ограничение скоростью столь часто, чтобы постоянно чувствовать дискомфорт от использования оптического манипулятора, в том числе это касается и игровых приложений. Допустимое же ускорение выросло, страшно сказать, во сто раз (!), и достигло величины 15 g (почти 150 м/с 2). Теперь на разгон мыши с 0 до предельных 1 м/с пользователю отводится 7 сотых секунды - думаю, теперь очень немногие сумеют превзойти это ограничение, да и то, вероятно, в мечтах:) Программируемая скорость осуществления снимков поверхности оптическим сенсором у новой модели чипа превышает 6400 кадров/с, т.е. «бьет» предыдущий «рекорд» почти в три раза. Причем чип ADNS-3060 может сам осуществлять подстройку частоты следования снимков для достижения наиболее оптимальных параметров работы, в зависимости от поверхности, над которой перемещается мышь. «Разрешение» оптического сенсора по прежнему может составлять 400 или 800 cpi. Давайте на примере микросхемы ADNS-3060 рассмотрим общие принципы работы именно чипов оптических сенсоров.

Общая схема анализа перемещений мыши не изменилась по сравнению с более ранними моделями - полученные блоком IAS сенсора микроснимки поверхности под мышью обрабатываются затем интегрированным в этой же микросхеме DSP (процессором), который определяет направление и дистанцию перемещения манипулятора. DSP вычисляет относительные величины смещения по координатам × и Y, относительно исходной позиции мыши. Затем внешняя микросхема контролера мыши (для чего он нужен, мы говорили ранее) считывает информацию о перемещении манипулятора с последовательного порта микросхемы оптического сенсора. Затем уже этот внешний контроллер транслирует полученные данные о направлении и скорости перемещения мыши в передаваемые по стандартным интерфейсам PS/2 или USB сигналы, которые уже от него поступают к компьютеру.

Но вникнем чуть глубже в особенности работы сенсора. Блок-схема чипа ADNS-3060 представлена выше. Как видим, принципиально его структура не изменилась, по сравнению с далекими «предками». 3.3 В питание к сенсору поступает через блок Voltage Regulator And Power Control, на этот же блок возложена функции фильтрации напряжения, для чего используется подключение к внешнему конденсатору. Поступающий с внешнего кварцевого резонатора в блок Oscillator сигнал(номинальная частота которого 24 МГц, для предыдущих моделей микросхем использовались более низкочастотные задающие генераторы) служит для синхронизации всех вычислительных процессов, протекающих внутри микросхемы оптического сенсора. Например, частота снимков оптического сенсора привязана к частоте этого внешнего генератора (кстати, на последний наложены не весьма жесткие ограничения по допустимым отклонениям от номинальной частоты - до +/- 1 МГц). В зависимости от значения, занесенного по определенному адресу (регистру) памяти чипа, возможны следующие рабочие частоты осуществления снимков сенсором ADNS-3060.

Значение регистра, шестнадцатеричное Десятичное значение Частота снимков сенсора, кадров/с
OE7E 3710 6469
12C0 4800 5000
1F40 8000 3000
2EE0 12000 2000
3E80 16000 1500
BB80 48000 500

Как нетрудно догадаться, исходя из данных в таблице, определение частоты снимков сенсора осуществляется по простой формуле: Частота кадров = (Задающая частота генератора (24 МГц)/Значение регистра отвечающего за частоту кадров).

Осуществляемые сенсором ADNS-3060 снимки поверхности (кадры) имеют разрешение 30х30 и представляют собой все ту же матрицу пикселей, цвет каждого из которых закодирован 8-ю битами, т.е. одним байтом (соответствует 256 градациям серого для каждого пикселя). Таким образом, каждый поступающий в DSP процессор кадр (фрейм) представляет собой последовательность из 900 байт данных. Но «хитрый» процессор не обрабатывает эти 900 байт кадра сразу по поступлении, он ждет, пока в соответствующем буфере (памяти) накопится 1536 байт сведений о пикселях (то есть добавится информация еще о 2/3 последующего кадра). И только после этого чип приступает к анализу информации о перемещении манипулятора, путем сравнения изменений в последовательных снимках поверхности.

С разрешением 400 или 800 пикселей на дюйм их осуществлять, указывается в бите RES регистров памяти микроконтроллера. Нулевое значение этого бита соответствует 400 cpi, а логическая единица в RES переводит сенсор в режим 800 cpi.

После того как интегрированный DSP процессор обработает данные снимков, он вычисляет относительные значения смещения манипулятора вдоль осей × и Y, занося конкретные данные об этом в память микросхемы ADNS-3060. В свою очередь микросхема внешнего контроллера (мыши) через Serial Port может «черпать» эти сведения из памяти оптического сенсора с частой примерно раз в миллисекунду. Заметьте, только внешний микроконтроллер может инициализировать передачу таких данных, сам оптический сенсор никогда не инициирует такую передачу. Поэтому вопрос оперативности (частоты) слежения за перемещением мыши во многом лежит на «плечах» микросхемы внешнего контроллера. Данные от оптического сенсора передаются пакетами по 56 бит.

Ну а блок Led Cотtrоl, которым оборудован сенсор, ответственен за управление диодом подсветки - путем изменения значения бита 6 (LED_MODE) по адресу 0x0a микропроцессор оптосенсора может переводить светодиод в два режима работы: логический «0» соответствует состоянию «диод всегда включен», логическая «1» переводит диод в режим «включен только при необходимости». Это важно, скажем, при работе беспроводных мышей, так как позволяет экономить заряд их автономных источников питания. Кроме того, сам диод может иметь несколько режимов яркости свечения.

На этом, собственно, все с базовыми принципами работы оптического сенсора. Что еще можно добавить? Рекомендуемая рабочая температура микросхемы ADNS-3060, впрочем как и всех остальных чипов этого рода, - от 0 0С до +40 0С. Хотя сохранение рабочих свойств своих чипов Agilent Technologies гарантирует в диапазоне температур от -40 до +85 °С.

Лазерное будущее?

Недавно сеть наполнили хвалебные статьи о мыши Logitech MX1000 Laser Cordless Mouse, в которой для подсветки поверхности под мышью использовался инфракрасный лазер. Обещалась чуть ли не революция в сфере оптических мышей. Увы, лично попользовавшись этой мышью, я убедился, что революции не произошло. Но речь не об этом.

Я не разбирал мышь Logitech MX1000 (не имел возможности), но уверен, что за «новой революционной лазерной технологией» стоит наш старый знакомый - сенсор ADNS-3060. Ибо, по имеющимся у меня сведениям, характеристики сенсора этой мыши ничем не отличаются от таковых у, скажем, модели Logitech МХ510 . Вся «шумиха» возникла вокруг утверждения на сайте компании Logitech о том, что с помощью лазерной системы оптического слежения выявляется в двадцать раз (!) больше деталей, чем с помощью светодиодной технологии. На этой почве даже некоторые уважаемые сайты опубликовали фотографии неких поверхностей, дескать, как видят их обычные светодиодные и лазерные мыши:)

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

Давайте прикинем, для получения в 20 раз более детализированной картинки, нужно, извините за тавтологию, в двадцать раз больше деталей, передать которые могут только дополнительные пиксели изображения, и ни что иное. Известно, что Logitech MX 1000 Laser Cordless Mouse делает снимки 30х30 пикселей и имеет предельное разрешение 800 cpi. Следовательно, ни о каком двадцатикратном росте детализации снимков речи быть не может. Где же собака порылась:), и не являются ли подобные утверждения вообще голословными? Давайте попробуем разобраться, что послужило причиной появления подобного рода информации.

Как известно, лазер излучает узконаправленный (с малым расхождением) пучок света. Следовательно, освещенность поверхности под мышью при применении лазера гораздо лучше, чем при использовании светодиода. Лазер, работающий в инфракрасном диапазоне, был выбран, вероятно, чтобы не слепить глаза возможным все-таки отражением света из-под мыши в видимом спектре. То, что оптический сенсор нормально работает в инфракрасном диапазоне не должно удивлять - от красного диапазона спектра, в котором работает большинство светодиодных оптических мышей, до инфракрасного -«рукой подать», и вряд ли для сенсора переход на новый оптический диапазон был труден. Например, в манипуляторе Logitech MediaPlay используется светодиод, однако также дающий инфракрасную подсветку. Нынешние сенсоры без проблем работают даже с голубым светом (существуют манипуляторы и с такой подсветкой), так что спектр области освещения - для сенсоров не проблема. Так вот, благодаря более сильной освещенности поверхности под мышью, мы вправе предположить, что разница между местами, поглощающими излучение (темными) и отражающими лучи (светлыми) будет более значительной, чем при использовании обычного светодиода - т.е. изображение будет более контрастными.

И действительно, если мы посмотрим на реальные снимки поверхности, сделанные обычной светодиодной оптической системой, и системой с использованием лазера, то увидим, что «лазерный» вариант куда более контрастен - отличия между темными и яркими участками снимка более значительны. Безусловно, это может существенно облегчить работу оптическому сенсору и, возможно, будущее именно за мышами с лазерной системой подсветки. Но назвать подобные «лазерные» снимки в двадцать раз более детализированными вряд ли можно. Так что это еще один «новорожденный» миф.

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

В простой компьютерной мышке имеется пара оптических датчиков, их можно применить в других целях. Такие же датчики используются например, чтобы определять положение какого то предмета, заперта ли дверь, или считывать количество оборотов вала. Самый оптимальный и удобный вариант, это использование уже готовой платы и микросхемы, особенно тогда, когда в системе нужно использование микроконтроллера, в них как правило уже есть входы поддержки интерфейса RS - 232. В случае если у вас нет такой возможности, то можете использовать схему, которая указана выше.

Этот датчик поделен на две части: принимающая (VD2) и передающая (VD1). Передающей является светодиод, который работает в ИК диапазоне, а принимающая часть, это пара фотодиодов в одном корпусе. Два - нужны для того, чтобы была возможность определять в какую сторону вращается колёсеко мышки (вверх или вниз).

R1 - даёт ток на светодиод. R2 нужен, чтобы преобразовывать ток фотоприёмника в напряжение (не использованная ножка VD2 является выходом второго фотоприёмника). Напряжение на этом сопротивлении изменяется от 1.5 Вольт (свет отсутствует) до 3.4 Вольт (свет присутствует). Нижний предел в 1.5 Вольта очень велик, для того чтобы переключать цифровую TTL схему, потому что порог переключения равен 0.8 Вольт. По этой причине применяется операционный усилок DA1 в режиме компаратора. Напряжение порога для него даёт резистивный делитель R3 и R4, которое составляет 2.5 Вольт. Можете считать, что с выхода DA1 поступает уже цифровой сигнал.

Чтобы уменьшить случайные наводки и ложные срабатывания, можете ввести гистерезис в уровни переключения DA1. Чтобы это сделать, нужно будет включить условно показанные резисторы R6 и R7 (R6 на разрыв между DA1 и R2). Чем ближе будет номинал R6 к R7 тем шире петля гестерезиса и тем дальше друг от друга будут уровни переключения из «0» в «1» и из «1» в «0». Таким образом при приведённых номиналах уровень переключения из «0» в «1» 2.8 Вольт, из «1» в «0» 2.1 Вольт.

Для примера показана простая схема индикации из светодиода и инвектора DD1 . Когда между VD1 и VD2 будет распологаться предмет, который мешает свету проходить, то будет загораться светодиод VD3.

Нужно учитывать возможность внешних воздействий, которые могут мешать. Этот датчик будет хорошо принимать излучение, как на стороне передатчика так и с противоположной стороны. Схема довольно чувствительна, она может реагировать даже на настольную лампу, по этой причине датчик лучше поместить в какой нибудь корпус, который будет защищать его от света.

Устройство и принцип работы оптической мыши

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

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

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

Можно сказать, что коврик выполнял функцию, аналогичную той, которую выполняет вся механическая часть в оптико-механической мышке (обычная мышь с шариком, которую многие, наверное, не раз разбирали).

К достоинствам таких мышей можно отнести отсутствие движущихся и инерционных частей, надежность в работе, точность позиционирования. А к недостаткам - коврик, который требовал постоянного ухода и чистки, ну и, как всегда (куда ж без денег), - высокую стоимость. К тому же, при утрате или повреждении коврика мышь утрачивала свою работоспособность. Но в 1999 году фирмой Agilent Technologies была разработана своя технология оптической навигации, для которой коврик и вовсе не требовался. И так как на сегодняшний момент фирмой Agilent выпущено более 75 миллионов сенсоров различных модификаций для оптических мышей, то можно предположить, что данная технология пришлась ко двору как производителям, так и пользователям. К тому же, вышеозначенная фирма выпускает не только оптические сенсоры, но еще и практически все необходимые компоненты для сбора оптической мыши (этакий наборчик "сделай сам" (см. рис.1)), что делает доступным производство оптических мышей даже для небольших (так и хочется добавить "китайских") компаний. На рис.1 показаны два варианта линзы и зажима. Но какой бы из них ни предпочел производитель, принципиально на работу оптической системы это не влияет.

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

красный

светодиод

зажим для светодиода

Полная оптическая система состоит из четырех компонентов: оптического сенсора, линзы, красного светодиода и зажима для светодиода. Как она выглядит в собранном виде, можно посмотреть на рис.2.

Оптический

Оптический сенсор включает в себя три функциональных блока: систему считывания изображения (IAS); цифровой сигнальный процессор(DPS); последовательный интерфейс передачи данных.

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

За объективом расположена монохромная КМОП (CMOS) камера, которая и фотографирует небольшой участок поверхности площадью около квадратного миллиметра. Кадр поверхности разбивается на маленькие участки (квадраты). Для каждого такого участка вычисляется усредненное значение яркости. Диапазон присваиваемых значений - от 0 до 63, где 0 присваивается черному участку, а 63

Белому. Таким образом, получается мозаичное изображение, состоящее из квадратов различной яркости. Вот один такой квадрат, т.е. элемент изображения, и является точкой привязки, а точнее сказать, одним отсчетом (см. рис.3). И разрешающая способность оптической мыши определяется в отсчетах на дюйм (counts per inch), т.е. cpi, а не dpi, как у обычных мышей. Фирма Agilent выпускает сенсоры с разрешением как 400, так и 800 cpi, причем модели с разрешением 800 cpi могут быть запрограммированы на работу с разрешением 400 cpi. К слову сказать, некоторые фирмы в технических характеристиках своих оптических мышей заявляют разрешение в 420 или 500 cpi. Но просматривая техническую документацию на различные сенсоры, таких характеристик я не встречал. А в то, что какая-нибудь небольшая китайская компания выпускает сенсоры собственной разработки, когда такой признанный авторитет в этой области "мышестроения", как Logitech, покупает их у Agilent, очень слабо верится. И если уж я упомянул Logitech, то хочу добавить, что большинство своих моделей, за исключением самых дешевых, она снабжает сенсорами с разрешением в 800 cpi.

Но вернемся назад к технологии. Помня о том, что сенсор фотографирует очень небольшой участок поверхности, а курсор по экрану должен двигаться плавно и без запаздывания, а для этого последовательно считываемые кадры поверхности должны накладываться друг на друга с небольшим смещением, поверхность фотографируется с очень большой скоростью - 1500 снимков в секунду. Это позволяет перемещать мышь со скоростью до 12 дюймов (30 сантиметров) в секунду. Также существуют варианты сенсоров, которые фотографируют поверхность со скоростью в 2000 или 2300 снимков в секунду и позволяют перемещать мышь со скоростью в 14 дюймов (35 см) в секунду. Причем фирма Microsoft заявляет, что в ее последних разработках находятся сенсоры со скоростью съемки в 6000 кадров в секунду. Опять же, технического описания на

такой сенсор я не видел, но думаю, что в данном случае такое вполне возможно. Все вышерассмотренное относится к системе считывания изображения. Далее отснятые кадры обрабатываются цифровым сигнальным процессором по специальному, естественно, запатентованному алгоритму. Сравнивая полученные кадры, процессор определяет величину и направление перемещения мыши (см. рис.3), после чего преобразует эти данные в координаты.

Так как кварцуются сенсоры в большинстве своем генератором с частотой 18 МГц (есть варианты на 24 МГц), то можно предположить, что мощность цифрового процессора составляет 18 миллионов операций в секунду. Затем вычисленные координаты при помощи последовательного интерфейса передаются в компьютер. Первые модели сенсоров умели "общаться" с компьютером по интерфейсу PS/2, а для работы по интерфейсу USB требовался дополнительный контроллер. Кстати, частота посылки координат по умолчанию при использовании интерфейса USB - 125 раз в секунду, PS/2 - 100 раз. Но через последовательный порт могут устанавливаться некоторые параметры самого сенсора - в частности, разрешающая способность и частота посылки координат.

Теперь рассмотрим назначение других компонентов оптической системы. Так как под мышкой темно даже днем, то поверхность, которую фотографирует сенсор, необходимо подсвечивать. Камера сенсора настроена на восприятие света в красном спектре излучения (l= 639 nm). Поэтому и используется красный светодиод, главная задача которого - даже минимальным количеством излучаемого света обеспечивать работу сенсора на всей рабочей поверхности. Чем выше яркость освещения, тем на большем количестве поверхностей будет работать сенсор.

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

Кроме функции рассеивания и фокусирования света, линза выполняет еще одну важную функцию - защиту сенсора от разряда электростатического напряжения. Понятно, что линза должна располагаться на строго определенном расстоянии от рабочей поверхности и от сенсора. Поэтому печатная плата (PCB) и опорная поверхность (base plate), на которые устанавливаются элементы оптической системы, должны иметь строго определенные параметры, в том числе и по толщине. Ну и последний элемент оптической системы - это защелка. Служит она для фиксации элементов оптической системы относительно друг друга.

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

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

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

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

Вот, пожалуй, и все. Всего хорошего.

Игорь Масловский, [email protected]

Световод приподнят над микросхемой

Линза и рассеиватель

Вид на объективную часть оптической мыши

Вид снизу на объективную часть в собранном состоянии

Задача: быстро сделать датчик линейного перемещения из компьютерной мышки.

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

С какими подмышиными камнями мы столкнулись, плюс техническая часть, расскажем дальше!

Следующее ТЗ дал заказчик: сделать как можно скорее, с любой мышкой (возможно беспроводной), выводить на 7 сегментный индикатор, обнулять по кнопке, компьютер не подходит, нужна разрешающая способность 0.01 мм, максимальное расстояние 1000 мм.

Для начала как все это делалось:

Считывание координат xy с мышки: Реализовать считывание данных можно несколькими способами: а) Непосредственно с микросхемы оптического сенсора + Можно обойтись простым контроллером - Про универсальность можно забыть совсем б) Подключить мышку по USB к простым контроллерам (например к ардуино) + Простота и дешивизна - Надо паять - Под рукой была только arduino, а к ней можно подключить мышки совместимые с PS/2, а они обычно очень неточные. Можно было на stm32, но отладочные платы сильно подорожали, самому паять не было времени. (но если интересно, то несколько лет назад был такой похожий проект именно на stm32f4discovery) в) Взять какой нибудь простой одно платный компьютер. Под рукой был как раз Raspberri pi. + Подходит для любых USB мышек + Хорошая производительность - Дорого, но может избыточная мощность потребуется потом
В итоге, под нож хирурга легла Малина пи 3. Четыре 64 битных ядра A-53 по 1GHz, 512 МБ оперативки и много других космических для этой задачи циферок.

Задачка: Индикация должна быть на выданных 7-сегментных индикаторах. Получается нам необходимо по 6 цифр на одну координату, итого 12 индикаторов. Каждый индикатор имеет 7 ножек на цифры+ ножка на светодиод точки (dp), общий провод не считаем. Итого после простых расчетов получаем, что мы должны управлять 96 проводниками плюс нужна кнопка. 96 резисторов не очень хотелось тратить.

Послушайте!
Ведь, если светодиод зажигают - значит - это нужно один резистор?

Управлять сразу таким массивом ножек нету возможности. Выход есть! И даже несколько!

1) Использовать дополнительные микросхемы по типу max7219, или сдвиговые регистры, мультплексоры, и т.д.

Можно почти бесконечно наращивать количество индикаторов
- Max7219 оказалась с рабочим напряжением 5 В
- Не было под рукой ничего подходящего.

2) Можно сделать динамическую индикацию. В один момент времени зажигать только один светодиодный индикатор. Если индикаторы переключать очень быстро, то человеческий глаз не заметит подставы.
+ Нужно только 8 проводов и резисторов на один индикатор и 12 на переключение индикаторов. Плюс не забываем кнопку. Итого: всего 21 ножка против 96. Берем!
- Так как мы пытаемся управлять целым индикатором через один пин распберри, то максимальный ток у нас ограничен 50 мА. Всегда берем запас, и берем 35 мА на все 8 светодиодов (что не шибко). Еще к этому добавим быстрое переключение индикаторов. В итоге у нас каждый светит в 12 раз меньше положенного. Доработать можно 12 транзисторами, но оставил я это на потом, т.к. яркости в конечном счете хватило.

Теперь начинается софт:

На распберри пи надо поставить linux. Я поставил минимальный дистрибутив
RASPBIAN JESSIE LITE .

Далее через программу putty подключился к IP малинки, и дальше все через командную строку.
Чтобы было проще работать с GPIO(портами ввода и вывода) есть замечательная библиотека WiringPi .

Как устанавливать её и управлять портами, вы сможете найти много информации в сети, поэтому не буду подробно останавливать на этом.

Cd /home/pi sudo mkdir mouse cd /home/pi/mouse
Дальше открываем редактор и вставляем код с гита. ВАЖНО! Код писал на очень скорую руку!

Sudo nano
для выхода из редактора надо нажать Alt+x и сохранить файл с названием blinker.c. Дальше надо обязательно скомпилировать с указанием wiring pi:

Gcc -o mouse mouse.c -l wiringPi
Все! Теперь подключаем мышку, вставляем провода и запускаем!

Подключение проводов


// pin number declarations. We"re using the Broadcom chip pin numbers.

Const int p21pin = 2;
const int p22pin = 3;
const int p23pin = 4;
const int p24pin = 17;
const int p25pin = 27;
const int p26pin = 22;
const int p11pin = 10;
const int p12pin = 9;
const int p13pin = 11;
const int p14pin = 5;
const int p15pin = 6;
const int p16pin = 13;
const int papin = 8;
const int pbpin = 23;
const int pcpin = 12;
const int pdpin = 20;
const int pepin = 21;
const int pfpin = 24;
const int pgpin = 18;
const int pdppin = 16;

Const int butpin = 26;


sudo ./mouse
Автозапуск при загрузке:

Sudo nano /etc/rc.local и перед exit 0 дописать две строчки cd /home/pi/mouse sudo ./mouse &
Работать с этой прогой очень просто. по нажатию кнопки мыши или просто кнопки на плате идет обнуление. При долгом нажатии кнопки переходим в режим регулировки DPI. Это важный параметр который задается мышкой и показывает сколько отсчетов мы получим при движении на один дюйм. Соответственно копка на плате и на мышке прибавляет и убавляет DPI. Долго нажимаем, наше значение записалось в файл и надежно хранится до следующей загрузки системы. Для чистоты эксперимента в программе, индикация, получение информации с мышки и кнопка обрабатываются а параллельных процессах.

1. Оси X и Y на моей мышке были не параллельны боковым граням, приходилось для высчитывания реального расстояния пользоваться «пифагоровыми штанами».

2. Разрешающая способность не равно погрешность!

Простым языком - разрешающая способность действительно показывает минимальное перемещение, которое увидит мышка, (отсчеты в компьютере должны быть дискретны минимальной разрешающей способности). А вот что мышка ничего не пропустит, ничем не гарантируется. Можно уменьшить эту величину используя хорошие поверхности (чтобы оптический сенсор мог отслеживать перемещения), использовать небольшие скорости. Но пропуски будут всегда! Для пользователя это означает постоянный уход нуля и непрогнозируемую погрешность измерения.

3. USB HID по которому работает мышь не гарантирует доставку информации в компьютер! То есть неизвестно пропустил ли компьютер какую нибудь информацию с мышки или нет. Вероятность пропажи информации малая, но все же есть.

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

5. Тут я сильно зол! Дело в том, что мышку я брал самую крутую из ассортимента Logitech, это самая продвинутая была на тот день модель logitech performance mx. Но какого было мое удивление, когда мышь давала разные погрешности при движении вперед и назад. ЭТО КАК? Поясню для пользователя. Если постоянно двигать мышку назад и вперед, то курсор ощутимо так все снижается и снижается. Это на любых платформах. Приходится периодически поднимать мышку и ставить на новое место. После того, как я заметил это, моя жизнь превратилась в кошмар! #Logitech

Windows 7