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