Comment une molette de défilement Logitech détecte-t-elle un mouvement?


80

Je viens de remplacer ma molette de défilement dans ma souris, une réparation d'une minute. Mais maintenant, j'ai vu quelque chose qui ne peut être invisible.

Les molettes de défilement Logitech fonctionnent apparemment de manière magique .

Il repose librement sur trois boutons qui détectent les appuis gauche, droit et droit. Mais la roue elle-même n'est pas connectée électriquement à quoi que ce soit. C'est du plastique qui repose sur un ressort.

Comment la souris sait-elle que je fais défiler? Et pourquoi était-il affecté par la poussière et la crasse?

Edit: et comment détecte-t-il la direction dans laquelle vous faites défiler?

entrez la description de l'image ici


Je ne sais pas si c'est la même chose pour cette souris, mais dans le passé, c'était un laser qui brillait à travers la roue, et à l'intérieur de la roue étaient des étincelles (ou quoi que ce soit, il y a des zones ouvertes et des zones qui sont fermés). Si le laser était intercepté, il pouvait sentir qu'il défilait et dans quelle direction.
LPChip

2
Regarde ici . Chaque configuration de souris est différente, mais le fait que la photo que vous avez publiée montre clairement que le montage sur la molette implique la présence d’un encodeur optique.
JakeGould

5
Cela pourrait vous surprendre, mais la vieille souris à boule (et non la souris à souris moderne) fonctionne exactement de la même manière, sauf qu’elle a 2 roues - pour les directions X et Y. Si vous parvenez à en trouver et à en ouvrir un, vous verrez que la balle n'est liée à rien. Voici une photo: 38.media.tumblr.com/7d0bb30a71fba01f9c191fc48ca457f5/…
dr01

2
Les réponses couvrent la façon dont c'est réellement fait; Une autre possibilité consisterait à utiliser un capteur à effet Hall , qui compte essentiellement les impulsions électriques générées par un aimant dans la roue passant une bobine. Celles-ci sont souvent utilisées dans les outils électriques, les moteurs de voiture et autres choses qui tournent rapidement.
David Richerby

Réponses:


100

Il y a une diode (probablement infrarouge) et un récepteur, un de chaque côté de la roue, soudés directement dans le circuit imprimé vert. La roue est RAYÉE et en la tournant, vous interrompez la lumière qui se rend de la diode au capteur. Pas de magie là-bas.

Oh, et la poussière qui y reste peut bloquer en permanence le capteur de toute lumière provenant de la diode. Il n’ya donc aucun moyen de détecter les interruptions, c’est pourquoi la roue semble ne pas fonctionner.

emplacement de l'émetteur et du récepteur de lumière, ne sais pas lequel est lequel


19
maintenant, il vous suffit d'expliquer comment il détecte la direction dans laquelle vous faites défiler
Sampo Sarrala

116
Deux récepteurs, espacés de 1,5 rayon, de manière à ce que leurs séquences d'interruption soient déphasées de 90 degrés l'une par rapport à l'autre. Le terme technique pour cela est un quadrature encodersi vous souhaitez google. La combinaison de ces deux signaux marche / arrêt donne 4 "symboles" uniques qui apparaissent dans un ordre spécifique pour une direction et dans l'ordre inverse pour la direction opposée.
AaronD

8
Si vous oubliez le bon vieux temps de nettoyer vos boules de souris, nettoyer ces rayons lorsque le défilement devient glissant est un bon remplacement.
Doug Kavendek

10
Comme indiqué, cette réponse est incorrecte car elle indique spécifiquement qu'il existe une paire singulière de composants optiques, alors qu'en réalité, comme le souligne AaronD, deux sont nécessaires. L’édition pour le réparer serait simple, mais en tant que changement factuel , seul Kitet devrait le faire.
Chris Stratton

3
@ ChrisStratton C'est une petite dispute mineure. Un codeur en quadrature est sans aucun doute vendu en tant que composant intégré unique. Example1 , Example2
Mike Ounsworth

40

Pour répondre à votre édition et à l' excellent commentaire d' AAronD , la direction est détectée par un microcontrôleur par la séquence des codes lorsque vous tournez la molette.

Par exemple, lorsque vous tournez la molette, les deux diodes se traduisent par la séquence suivante:

    A B
    0 0 
    0 1 
    1 1 
    1 0 

Dans le sens des aiguilles d'une montre, les entrées seront décalées dans le sens opposé.

Une excellente illustration graphique est également disponible ici: http://www.creative-robotics.com/quadrature-intro


5

J'ai fait des recherches et découvert qu'il existe de nombreux types de molettes de défilement. Ce n’est pas seulement Logitech, mais presque tous les fabricants de souris utilisent ce type de molette de défilement. Celle-ci est une molette de défilement optique. Cela utilise une lumière qui brille sur une photodiode à travers des fentes dans un disque en métal ou en verre. Des versions réfléchissantes existent également. C'est l'une des technologies les plus courantes. Les codeurs optiques sont très sensibles à la poussière.

Le disque du codeur optique est en verre ou en plastique avec des zones transparentes et opaques. Un réseau de sources lumineuses et de photodétecteurs lit le motif optique résultant de la position du disque à tout moment. Le code Gray est souvent utilisé. Ce code peut être lu par un dispositif de contrôle, tel qu'un microprocesseur ou un micro-contrôleur, pour déterminer l'angle de l'arbre.

Le type analogique absolu produit un code analogique double unique qui peut être traduit en un angle absolu de la tige


Logitec n'utilise pas de code Gray, il utilise une simple modulation en quadrature. Cela ne donne que la vitesse angulaire, pas la position.
Mark

@Mark - la quadrature est un code gris à 2 bits, mais oui, étant donné qu'il n'y a que deux bits et de nombreux cycles autour de la roue, vous avez raison de dire que cela ne donne qu'un résultat incrémental et non un angle tel que revendiqué.
Chris Stratton

@ Mark merci, je vais étudier la question et contrarié la réponse. Merci encore
Vedant
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.