На каждой оси механической (шариковой) мыши находится пара ИК-передатчик и приемник с колесом, которое выглядит как имеющий только простые прорези.
Как рассчитывается направление?
На каждой оси механической (шариковой) мыши находится пара ИК-передатчик и приемник с колесом, которое выглядит как имеющий только простые прорези.
Как рассчитывается направление?
Ответы:
Там не просто пара ИК-передатчик / приемник, их две . Между передатчиками и приемниками имеется шлицевое колесо, которое при вращении вызывает последовательность импульсов в приемнике. (Свет от передатчика заблокирован, может пройти, снова заблокирован и т. Д.)
Хитрость заключается в том, как расположены два приемника, а именно в квадратуре.

Это означает, что импульсы одного приемника предшествуют импульсам другого на ряд градусов (в идеале 90 °). Если колесо вращается в другом направлении, те же самые импульсы теперь уступают другим.

Обратите внимание, что на переднем фронте канала А канал В находится на высоком уровне при повороте в одну сторону и низком при повороте в другую сторону.
edit (об абсолютных кодировщиках)
Я не был полностью удовлетворен моим ответом на комментарий JGord (некоторые неточности), поэтому это повторение
. Описанная выше система известна как инкрементальный кодировщик, потому что она обнаруживает относительные изменения от одной позиции к другой. За полный оборот коды повторяются несколько раз, поэтому вы не можете узнать свою абсолютную позицию, просто взглянув на код.
Для преодоления этого существуют абсолютные энкодеры . Вместо двух каналов в квадратуре у них намного больше каналов, создающих уникальный шаблон для каждой позиции вращения. 10-канальный кодировщик может различать или 1024 различных положения. Датчики вала у роботов еще точнее.
Конкретный шаблон типичен для кодирования Грея .
о кодировании Грея
Обычный двоичный код имеет тот недостаток, что переходы кода могут создавать ошибочные коды во время перехода. Возьмем, к примеру, изменение с0111(7) на1000(8). Если крайний левый бит немного быстрее остальных, вы увидите на мгновение1111(15), который полностью выключен.
Код Грея преодолевает это, переставляя коды так, чтобы за один раз менялся только 1 бит.
Однако абсолютные энкодеры не помогут вам найти абсолютное положение мыши, потому что колесо вращается несколько раз, пока вы двигаете мышь. «Уникальный» шаблон будет повторяться каждые несколько мм и не так уж уникален. Кроме того, всегда можно перемещать мышь, когда компьютер выключен, или вы можете поднять мышь и опустить ее немного дальше. Оба действия останутся незамеченными.
i.imgur.comна stack.imgur.com.