¿Cómo sabe la dirección un mouse de bola?

25

Para cada eje de un ratón mecánico (bola) hay un transmisor de infrarrojos y un par de receptores con una rueda que parece tener solo rendijas simples.

¿Cómo se calcula la dirección?

    
pregunta zaf

1 respuesta

35

No hay solo un par de transmisor / receptor de IR, hay dos de ellos. Entre los transmisores y los receptores hay una rueda ranurada que, al girar, provoca un tren de pulsos en el receptor. (La luz del transmisor está bloqueada, puede pasar, bloquearse de nuevo, etc.)

Eltrucoescómosecolocanlosdosreceptores,esdecir,encuadratura.

Esto significa que los pulsos de un receptor preceden a los pulsos del otro en un número de grados (idealmente 90 °). Si la rueda gira a la inversa, los mismos pulsos ahora retrasan a los demás.

ObservequeenunflancoascendentedelcanalA,elcanalBestáenunnivelaltocuandogiraenunsentido,ybajocuandogiraensentidocontrario.

editar(acercadeloscodificadoresabsolutos)
NoestabacompletamentesatisfechoconmirespuestaalcomentariodeJGord(algunasimprecisiones),porlotantoestarepetición
Elsistemadescritoanteriormenteseconocecomocodificadorincrementalporquedetectacambiosrelativos,deunaposiciónalasiguiente.Duranteunarotacióncompleta,loscódigosserepitenvariasveces,porloquenopuedeconocersuposiciónabsolutaconsolomirarelcódigo.
Parasuperarestoexistencodificadoresabsolutos.Enlugardedoscanalesencuadratura,tienenmuchosmáscanalesquecreanunpatrónúnicoparacadaposiciónderotación.Uncodificadorde10canalespuedediferenciar\$2^{10}\$o1024posicionesdiferentes.Losencodersdeejeenrobotssonaúnmásprecisos.

El patrón específico es típico de codificación gris .

  

sobre la codificación en gris
  El binario ordinario tiene la desventaja de que las transiciones de código pueden crear códigos erróneos durante la transición. Tomemos, por ejemplo, el cambio de 0111 (7) a 1000 (8). Si el bit de la izquierda es un poco más rápido que los demás, verá por un momento 1111 (15), que está totalmente desactivado.
  El código gris supera esto al reorganizar los códigos para que solo haya un cambio de 1 bit a la vez.

Sin embargo, los codificadores absolutos no te ayudarán a encontrar la posición absoluta del mouse, ya que la rueda gira varias veces mientras mueves el mouse. El patrón "único" se repetirá cada pocos mm y no es tan único después de todo. Además, siempre es posible mover el mouse cuando la computadora está apagada, o puede levantar el mouse y soltarlo nuevamente. Ambas acciones no serán detectadas.

Lectura adicional
"Control Shaft Encoders" \ $ - \ $ Circuit Cellar número 250, mayo de 2011, p.28 ff

    
respondido por el stevenvh

Lea otras preguntas en las etiquetas