Brainbooster
Gli encoder rotativi di quadrarura
Tutorials -
Lunedì 26 Luglio 2010 16:44
Scritto da Brainbooster

Cos'è un encoder?
Un encoder è un dispositivo elettromeccanico per la misura del movimento o della posizione.
La maggior parte degli encoder utilizza sensori ottici ad infrarossi per trasmettere segnali elettrici
sotto forma di treno di impulsi che poi verranno trasformati in movimento, direzione o posizione.
Gli encoder rotanti, come quelli che ci sono dentro i mouse con la pallina, sono utilizzati per la misura
della rotazione di un albero.

Come è fatto un encoder?

I componenti fondamentali di un encoder rotante, sono: un LED, un disco, un rilevatore ottico sul lato opposto del disco.
Il disco, montato sull’albero rotante, legge una matrice di aree trasparenti o forate e opache, stampate sul rotore.
Quando il disco ruota, le aree opache bloccano la luce, e le aree trasparenti ne consentono il passaggio.
Questo genera delle onde quadre che possono essere interpretate come posizione o movimento ed anche altro.
Gli encoder possono avere da 10 a 6.000 aree per giro.
Per esempio gli encoder di cui parlavamo sono in grado di fornire una risoluzione di 36 gradi per l'encoder
con 10 aree e 0,06 gradi per l'encoder a 6.000 aree (360°/10=10 e 360°/6000=0,06).

L'encoder all'interno

 

Gli encoder lineari funzionano secondo lo stesso principio degli encoder rotanti, ma al posto del disco rotante, c'è una striscia
stazionaria opaca con fessure trasparenti lungo la superficie e il rilevatore èmontato sulla parte mobile.
Non è possibile utilizzare un encoder dotato di una sola lettura di impulsi in quanto non riescirebbe ad indicare la direzione della rotazione.
Utilizzando due piste con settori posizionati a 90 gradi e fuori fase, è possibile ottenere due letture di output dell'encoder di quadratura sia
la posizione che la direzione della rotazione. Se A precede B, ad esempio, il disco ruota in senso orario. Se B precede A, invece, il disco ruota in senso antiorario.
Quindi, monitorando sia il numero degli impulsi che la relativa fase dei segnali A e B, è possibile tracciare la posizione e la direzione della rotazione.
Inoltre, alcuni encoder di quadratura includono un terzo canale di output – chiamato zero o segnale di riferimento – che fornisce un impulso singolo per giro.
È possibile utilizzare quest’impulso singolo per determinare in maniera precisa la posizione di riferimento.
Nella maggior parte degli encoder, questo segnale viene definito come Z-Terminal  o index.
Gli encoder possono adottare varii tipi di codifica a seconda della precisione e della velocità richiesta nella lettura.

Codifica X1
L'esempio successivo mostra un ciclo di quadratura e i risultanti incrementi e decrementi per la codifica X1.
Quando il canale A anticipa il canale B, l’aumento avviene sul fronte di salita del canale A. Nel caso inverso,
B anticipa A, la riduzione si presenta sul fronte di discesa del canale A.

X

Codifica X2
La codifica X2 avviene nello stesso modo, ad esclusione del fatto che il contatore cresce o decresce su ciascun fronte del canale A,
in base al tipo di canale che anticipa l’altro. Su ciascun ciclo sono presenti due incrementi o decrementi, come mostrato nella figura seguente.

X

Codifica X4
Nella codifica X4, l’encoder cresce o decresce allo stesso modo su ciascun fronte dei canali A e B.
Aumento o la diminuzione del valore del counter dipenderà da quale canale anticipa l’altro.
Su ciascun ciclo sono presenti quattro incrementi o decrementi, come mostrato nell'esempio successivo.

X

Un pò di formule

Per posizioni rotazionali

La rotazione è         X

Dove N = numero di impulsi generati dall’encoder per ogni giro dell’albero
x = tipo di codifica

Per posizioni lineari

Lo spostamento è  X

Dove PPI = impulsi per pollice (pulses per inch), un parametro specifico per ciascun encoder.

Quindi in tutti i casi dove è necessario tracciare il movimento (es. per odometria nei robots) gli encoder rotativi sono molto utilizzati,
alcune volte le finestre trasparenti sono integrare alle stesse ruote dei robot ed i sensori sono montati in configurazione a "C",
a cavallo delle ruote.
Una volta compreso il funzionamento degli encoder di quadratura, non ci resta che capire come si interfacciano al nostro Arduino,
ma per questo vi rimando alla pagina del playground dove c'è un'esaustiva spiegazione del codice da utilizzare per leggere il treno
di impulsi provenienti da un'encoder (anche se meccanico e non ottico il principio è uguale).
http://www.arduino.cc/playground/Main/RotaryEncoders

Ciao

Brainbooster

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi