Per ogni asse su un mouse meccanico (a sfera) c'è un trasmettitore IR e una coppia di ricevitori con una ruota che sembra avere solo semplici fessure.
Come viene calcolata la direzione?
Per ogni asse su un mouse meccanico (a sfera) c'è un trasmettitore IR e una coppia di ricevitori con una ruota che sembra avere solo semplici fessure.
Come viene calcolata la direzione?
Risposte:
Non c'è solo una coppia trasmettitore / ricevitore IR, ce ne sono due . Tra trasmettitori e ricevitori c'è una ruota scanalata, che, ruotando, provoca un impulso nel ricevitore. (La luce del trasmettitore è bloccata, può passare, bloccarsi di nuovo e così via.)
Il trucco è come vengono posizionati i due ricevitori, ovvero in quadratura.
Ciò significa che gli impulsi di un ricevitore precedono gli impulsi dell'altro di un numero di gradi (idealmente 90 °). Se la ruota gira dall'altra parte, gli stessi impulsi ora ritardano gli altri.
Notare che su un fronte di salita del canale A il canale B è ad alto livello quando si gira in una direzione e basso quando si gira nell'altra direzione.
modifica (sugli encoder assoluti)
Non ero completamente soddisfatto della mia risposta al commento di JGord (alcune imprecisioni), quindi questa ripresa
Il sistema sopra descritto è noto come encoder incrementale perché rileva cambiamenti relativi, da una posizione all'altra. Durante una rotazione completa, i codici vengono ripetuti più volte, quindi non puoi conoscere la tua posizione assoluta semplicemente guardando il codice.
Per ovviare a questo, esistono encoder assoluti . Invece di due canali in quadratura hanno molti più canali creando un modello unico per ogni posizione di rotazione. Un codificatore a 10 canali può distinguere o 1024 posizioni diverse. Gli encoder per alberi nei robot sono ancora più precisi.
Il modello specifico è tipico della codifica Gray .
sulla codifica Gray
Il binario ordinario ha lo svantaggio che le transizioni di codice possono creare codici errati durante la transizione. Prendi ad esempio la modifica da0111
(7) a1000
(8). Se il bit più a sinistra è un po 'più veloce degli altri, vedrai per un momento1111
(15), che è totalmente spento.
Il codice grigio risolve questo problema riorganizzando i codici in modo da modificare solo 1 bit alla volta.
Gli encoder assoluti non ti aiuteranno a trovare la posizione assoluta del mouse, poiché la ruota gira più volte mentre sposti il mouse. Il modello "unico" si ripeterà ogni pochi mm e non è poi così unico. Inoltre, è sempre possibile spostare il mouse quando il computer è spento, oppure è possibile sollevare il mouse e rimetterlo un po 'più in basso. Entrambe le azioni non verranno rilevate.
Ulteriori letture
"Control Shaft Encoder" Circuit Cellar issue 250, maggio 2011, p.28 ss
i.imgur.com
a stack.imgur.com
.