Мыши: оптический датчик (страница 2)
реклама
Скорость срыва
Если мышку двигать все быстрее и быстрее, то при некоторой скорости перемещения она начнет подвирать. Это может сопровождаться уменьшением чувствительности, увеличением нестабильности и хаотичности движения, другими 'нехорошестями'. Очень мне нравилась одна модель офисной мышки Logitech - при резком движении можно было оказаться смотрящем прямо в пол и при этом крутиться. Очень интересное положение в момент схватки на Flak'ах. Этот вопрос я рассмотрю на практическом тестировании реальных мышек, теоретизировать здесь особо не о чем.
Неустойчивость
Мышка, по своей природе, механическое устройство. А значит ей свойственна неустойчивость, жрожжание. Это небольшие хаотические (случайные) перемещения. Сам дефект бывает статическим и динамическим. Статический проявляется в том, что мышка оставляет неровный след при невысокой скорости перемещения. Другой дефект с той же причиной - самопроизвольное перемещение мышки. Природа дефекта в шуме картинки датчика перемещения. Способов лечения болезни много и все они в какой-то степени связаны с фильтрацией. Дефект самопроизвольного перемещения, который был свойственен мышкам ранних выпусков, вроде бы сейчас не проявляется. Это хорошо? Отнюдь.
Датчик перемещений всё равно выдает шум, а вот в контроллере мышки используют специальный алгоритм, который блокирует перемещение мышки при сверхнизкой скорости передвижения с задержкой выполнения. Задержка нужна для того, чтоб пользователь не получил остановки мыши, когда он сам начал ее двигать слишком уж медленно. Реализовать данный алгоритм можно по-разному, поэтому не удивляйтесь 'странностям' новой мышки, когда не удается попасть в иконки - из-за задержки мышка начинает двигаться не с момента начала перемещения рукой. Причем, величина задержки может зависеть от скорости. В результате одновременно происходят два неприятных события разом - мышка 'вдруг' скакнула и, если включена настройка в Windows "повышенная точность установки указателя", скачек будет особо резким. Дело в том, что "повышенная точность установки указателя" связана с динамическим ускорением. А если мышь 'скакнула', то ей сразу ставится повышенная скорость. После 'скачка' динамическое ускорение не видит изменений скорости мышки, поэтому динамическая скорость уменьшается.
На практике это выглядит так - вначале ничего, потом рывок, потом нормальное перемещение. Это происходит быстро и глазом не заметно, но отчетливо замечается рукой - работать с таким 'подарком судьбы' не доставляет радости. Этот дефект хорошо заметен, если сразу после такой мышки взять в руки старую-старую светодиодную мышку и попробовать поработать на ней. По счастью, не каждый заметит такой дефект. Если так, то Вам повезло. Но есть и те, кто не сможет пользоваться мышками с такими 'умными' алгоритмами. Коль скоро этот дефект плох для работы, то что говорить об использовании такой мышки в играх?
реклама
Динамическая неустойчивость имеет те же корни, что и у статическая - шумы изображения. Но к ним добавляются неравномерность поверхности, по которой движется мышь. С неравномерностью борются различными способами адаптации. Обычно этого добиваются управлением тока лазера и коэффициента усиления (яркостью) сигнала с матрицы. Но тут всё запутаннее и сложнее, банальной остановкой мыши не обойдешься, как это делается для устранения статической неустойчивости. Хотя пытаются - некоторые производители внедряют 'улучшайзеры'. Например, есть алгоритм выравнивания движения мышки, если она перемещается по прямой линии. Ну да, на тестах это будет красиво - раз и прямая линия без какого-либо мусора и дрожания. Раз то раз, а попробуйте этим чудом поиграть? "Мы думаем за Вас". Нет, спасибо, оставьте себе.
Немного поясню о связи шума и точности. Дело в том, что датчик видит поверхность не так, как человек. Во-первых, там инфракрасная, невидимая, подсветка. Во-вторых, эта подсветка лазерная, когерентная. В-третьих, размер окна порядка 0.7 мм, что очень мало. Любое 'дуновение' и картинка меняется.
Хватит теории, приведу пример.
Возьмем кольцо и заставим его двигаться.
Движение видно отчетливо. А теперь сравним два соседних кадра:
В верхней части один кадр, в нижней следующий. Один сдвинут относительно другого на 1/4 пикселя. (Чтобы не прищуриваться, я увеличил картинку в 8 раз, сохранив формат разбиения матрицы датчика)
реклама
Ну ладно, Вы отчетливо видите разницу между верхней и нижней частью? Отчетливо?
А теперь добавим реальный шум. Чтобы не симулировать 'непонятно что', приведу реальные снятые картинки.
При съемке мышка была четко зафиксирована, но программа управления в данной версии не умеет снимать больше одного снимка за раз, что может вызывать 'взбрыкивание' яркости. Не обращайте внимание. Хотя, дело может быть и не в программе, вопрос не исследован.
Из этого пока можно сделать вывод, что незначительные смещения между соседними снимками трудно отождествляются датчиком. Обращаю внимание - именно датчиком. Контроллер мышки не имеет доступа картинке. Причина в шуме, который свойственен любой аналоговой аппаратуре. И тут стоит упомянуть другой параметр работы датчика - скорость съемки, частота кадров в секунду.
Frame Rate.
Frame rate - это частота снимков. Из сказанного выше следует, что надо так выбирать частоту снимков, чтоб между соседними кадрами было существенное изменение положения. С другой стороны, это изменение не должно быть слишком большим, иначе датчик не сможет понять, какой из кадров является опорным. Минимальная частота кадров 2000, максимальная чуть больше 7000. Разберемся с цифрами.
При низкой скорости перемещения, менее 1 см в секунду, и минимально допустимой частоте 2000 кадров/сек, получается смещение на изображении в 0.005 мм. Матрица датчика имеет 30*30 точек. При 0.005 мм и размере видимого окна 0.5 мм это составит 1/140 окна или 1/4 точки матрицы. Это как раз примерно то, что изображено выше на анимации симуляции движения кольца. А если мышку двигать еще медленнее? А ведь так и происходит, когда нужно сделать что-то очень точно - попасть или провести линию. Тут уже на 1 точку приходится далеко не 1/4, а гораздо меньше. А это означает, что вклад шумов растет. Уменьшать Frame Rate меньше 2000 нельзя, так сказал датчик. И что? ... да ничего хорошего, мышка будет дрожать.
С другой сторны, при повышенном Frame Rate сам контроллер может опрашивать датчик чаще и считанные значения усреднять. Это существенно уменьшает шум. Теория погрешностей говорит, что при проведении N замеров и их усреднении точность повышается пропорционально корню из N. Поэтому эффективно делать не слишком много замеров на усреднение - растет время, оно прямо пропорционально N, а вот точность уже почти не улучшается.
Современные мышки работают на интерфейсе USB, поэтому их квантование ответа выбирается из ряда 125-250-500-1000 отсчетов в секунду, что задает количество отсчетов усреднения в 16-8-4-2. Т.о., мышка на 125 Гц гораздо устойчивее 1000 Гц при прочих равных условиях. Поэтому вряд ли стоит гнаться за очень высокой скоростью интерфейса, выйдет боком. Точнее, уже выходит боком - заметно. Мышь нестабильна.
Контроллер лазерных мышек A4 X7 всегда считывает датчик с частотой 1000 раз в секунду. При минимальном частоте снимков в 2000 это уже означает потерю 50% информации, которую можно было-бы направить на усреднение. Альтернативный вариант - применить умную фильтрацию шума. Усреднеие и фильтрация имеют общие корни, но разную эффективность алгоритмов. При низкой скорости степень фильтрации должна быть больше (напоминаю - вредит слишком высокий минимальный Frame Rate), а при высоких скоростях его можно снизить. Кроме того, на высоких скоростях надо фильтровать динамическую нестабильность. Но "фильтровать", а не "исправлять за меня", как это принято в "улучшайзерах". Кстати, любой фильтр вносит задержку в получение отсчетов, поэтому и фильтрацию надо бы делать умно.
В старых офисных мышкам не было никакой фильтрации и 'умничанья'. И как же приятно ими играть.
Переключатель DPI
В лазерных мышках, особенно игровых, стали ставить переключатель DPI (точек на дюйм). Вообще-то это термин неверный и сейчас его вытесняет CPI (count - число на дюйм). Я буду использовать термин DPI там, где он явно указан в надписях или спецификации, хоть это и не совсем правильно.
Итак, что такое CPI? Это количество отсчетов (точек), которое будет выдано в Windows при перемещении на один дюйм (25.4 мм).
реклама
Чем больше CPI, тем, вроде бы, лучше мышка? Например, у А4 в серии Х7 лазерные мышки имеют по 2400-3600dpi. И это при том, что датчик не может выдать больше 2000 cpi. Нонсенс? ... но откуда же А4 берет такие цифры? Да ровно оттуда же, откуда их берет датчик перемещений. У него, после вычисления наиболее вероятного перемещения изображения на матрице, получается какое-то абстрактное число. Давайте предположим, что это число от 0 до 1. Датчик умножает его на установленное значение cpi и выдает в контроллер. (Хотя, тут наоборот, контроллер считывает информацию из датчика.) Что мешает контроллеру тоже умножить на произвольное число? Ап, и получили 'крутую' мышку. Крутую - крутую, только фиговую. Из-за шума датчик может определять смещение картинки с какой-то ограниченной точностью.
Для датчика ADNS-6010 фирма Avago декларирует типичную точность 2300 cpi. Это означает, что при установке чувствительности выше 2300 ошибка датчика превысит единицу отсчета. В среднем. Для конкретно взятой мышки это число может меняться в некоторых пределах и зависеть от множества случайных факторов - состояние поверхности, четкость фиксации блока оптики, старение лазера, мутнение или запыленность оптики. Одно можно сказать более-менее достоверно - лучше 2300 cpi не будет.
Если в настройках мышки поставить маленькое разрешение, значительно меньше 2300 cpi, то мышка будет вести себя очень четко и предсказуемо, только кого порадует лазерная мышка с разрешением 600 cpi? Но и '3600' cpi приносит не больше радости.
Одна особенность настройки cpi, которой следуют мышки А4 серии Х7 - они ставят настройку датчика "от грани и выше". Т.е. для разрешений 400-799 ставится разрешение датчика 400, для 800-1599 на датчик ставится 800 и т.д. Поэтому, для избавления от ненужной экстраполяции рекомендуется ставить разрешения, свойственные аппаратным настройкам датчика - 400, 800, 1600, 2000 cpi.
На этом сегодня закончим. В следующей части материала вас ждет тестирование нескольких распространенных мышей. А завершит ее материал о сборке мыши с улучшенными характеристиками. Продолжение следует...
реклама
Страницы материала
Теги
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила