Eu estive pensando nisso por um tempo, obrigado por perguntar!
mskfisher
3
@ qualquer pessoa que tenha votado contra isso - você poderia ao menos dizer ao zaf por que fez isso? É uma pergunta perfeitamente razoável
stevenvh
Respostas:
36
Não há apenas um par transmissor / receptor de infravermelho, existem dois deles. Entre transmissores e receptores, há uma roda com fenda que, ao girar, causa um trem de pulsos no receptor. (A luz do transmissor está bloqueada, pode passar, bloqueada novamente e assim por diante.)
O truque é como os dois receptores são colocados, ou seja, em quadratura.
Isso significa que os pulsos de um receptor precedem os pulsos do outro em um número de graus (idealmente 90 °). Se a roda girar para o outro lado, os mesmos pulsos agora ficam atrás dos outros.
Observe que em uma borda ascendente do canal A, o canal B está em um nível alto ao virar para um lado e baixo ao virar para o outro lado.
210
O padrão específico é típico da codificação de Gray .
sobre a codificação Gray
O binário comum tem a desvantagem de que as transições de código podem criar códigos errados durante a transição. Tomemos, por exemplo, a alteração de 0111(7) para 1000(8). Se o bit mais à esquerda for um pouco mais rápido que os outros, você verá por um momento 1111(15), que está totalmente desligado.
O código cinza supera isso reorganizando os códigos para que haja apenas 1 bit mudando por vez.
Os codificadores absolutos não ajudarão você a encontrar a posição absoluta do mouse, no entanto, porque a roda gira várias vezes enquanto você move o mouse. O padrão "único" será repetido a cada poucos mm e, afinal, não é tão único. Além disso, sempre é possível mover o mouse quando o computador está desligado, ou você pode levantá-lo e colocá-lo novamente um pouco mais. Ambas as ações não serão detectadas.
Pergunta: Este codificador óptico de canal duplo funciona para posição e velocidade, mas e se você precisasse saber a distância total? Por exemplo, e se você girar várias vezes, desligar o dispositivo, ligá-lo mais tarde e girar mais vezes. Claro que você pode registrar a distância para a memória não volátil a cada vez, mas existe uma maneira mecânica de resolver esse problema? Estou pensando na direção de um terceiro canal habilmente colocado ... mas não consigo pensar em nada.
NickHalden
@stevenvh - Eles estão trabalhando nisso , os URLs estão sendo alterados do padrão i.imgur.compara stack.imgur.com.
Kevin Vermeer
@stevenvh Hm, gostaria de saber se alguém já pensou em tentar usar DeBruijn seqüências em vez de código cinza ...
NickHalden
11
@stevenvh certo, basicamente existem dois receptores alojados em uma unidade. Obrigado.
Respostas:
Não há apenas um par transmissor / receptor de infravermelho, existem dois deles. Entre transmissores e receptores, há uma roda com fenda que, ao girar, causa um trem de pulsos no receptor. (A luz do transmissor está bloqueada, pode passar, bloqueada novamente e assim por diante.)
O truque é como os dois receptores são colocados, ou seja, em quadratura.
Isso significa que os pulsos de um receptor precedem os pulsos do outro em um número de graus (idealmente 90 °). Se a roda girar para o outro lado, os mesmos pulsos agora ficam atrás dos outros.
Observe que em uma borda ascendente do canal A, o canal B está em um nível alto ao virar para um lado e baixo ao virar para o outro lado.
O padrão específico é típico da codificação de Gray .
Os codificadores absolutos não ajudarão você a encontrar a posição absoluta do mouse, no entanto, porque a roda gira várias vezes enquanto você move o mouse. O padrão "único" será repetido a cada poucos mm e, afinal, não é tão único. Além disso, sempre é possível mover o mouse quando o computador está desligado, ou você pode levantá-lo e colocá-lo novamente um pouco mais. Ambas as ações não serão detectadas.
fonte
i.imgur.com
parastack.imgur.com
.