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