Pour chaque axe sur une souris mécanique (boule), il y a une paire d'émetteur et de récepteur IR avec une molette qui ne semble avoir que de simples fentes.
Comment la direction est-elle calculée?
Pour chaque axe sur une souris mécanique (boule), il y a une paire d'émetteur et de récepteur IR avec une molette qui ne semble avoir que de simples fentes.
Comment la direction est-elle calculée?
Réponses:
Il n'y a pas seulement une paire émetteur / récepteur IR, il y en a deux . Entre les émetteurs et les récepteurs, il y a une roue à fentes qui, lorsqu'elle tourne, provoque un train d'impulsions dans le récepteur. (La lumière de l'émetteur est bloquée, peut passer, à nouveau bloquée, etc.)
L'astuce est de savoir comment les deux récepteurs sont placés, à savoir en quadrature.
Cela signifie que les impulsions d'un récepteur précèdent les impulsions de l'autre d'un certain nombre de degrés (idéalement 90 °). Si la roue tourne dans l'autre sens, les mêmes impulsions sont maintenant à la traîne des autres.
Notez que sur un front montant du canal A, le canal B est à un niveau élevé lorsque vous tournez dans un sens et à un niveau bas lorsque vous tournez dans l'autre sens.
Le modèle spécifique est typique du codage Gray .
à propos du codage Gray
Le binaire ordinaire a l'inconvénient que les transitions de code peuvent créer des codes erronés pendant la transition. Prenons par exemple le changement de0111
(7) à1000
(8). Si le bit le plus à gauche est un peu plus rapide que les autres, vous le verrez pendant un moment1111
(15), ce qui est totalement désactivé.
Le code gris surmonte cela en réorganisant les codes afin qu'il n'y ait qu'un seul changement de bit à la fois.
Les encodeurs absolus ne vous aideront cependant pas à trouver la position absolue de la souris, car la molette tourne plusieurs fois lorsque vous déplacez la souris. Le motif "unique" se répétera tous les quelques mm et n'est pas si unique après tout. De plus, il est toujours possible de déplacer la souris lorsque l'ordinateur est éteint, ou vous pouvez soulever la souris et la reposer un peu plus loin. Les deux actions ne seront pas détectées.