Tecnica di rivelazione ottica basata su array lineari di fotosensori
Lo scopo di un encoder è di fornire un feedback sulla posizione integrandosi in sistemi di controllo di apparati rotanti. L’encoder è un dispositivo elettro-opto-meccanico che si collega a un asse rotante e fornisce informazione sulla posizione angolare a un contatore oppure a un controller digitale (Fig. 1). Un encoder ottico usa un disco di codifica con un disegno formato da linee chiare e scure incise o depositate sulla superficie del disco. In linea di principio il funzionamento si può così descrivere: una sorgente di luce illumina il disco di codifica e la luce trasmessa che passa attraverso il disco di codifica incontra un sistema di rivelazione di fotoni, quale potrebbe essere un insieme di sensori di luce discreti oppure un array lineare integrato.
Fig. 1 - Schema di un sistema con encoder
Gli encoder rotativi dispongono solitamente di due o più tracce che rendono possibile determinare la direzione di rotazione, la posizione specifica dell’albero rotante e la risoluzione della posizione. Gli encoder rotativi possono essere incrementali oppure assoluti. Gli encoder incrementali producono una serie di impulsi che permettono di tener traccia della movimentazione, della posizione e della velocità. Questi sono usati nei casi in cui l’applicazione richiede che sia nota la posizione assoluta ma non si adattano a sistemi in cui il dato deve essere mantenuto anche in assenza di alimentazione oppure in caso di perdita di potenza temporanea. L’encoder assoluto è richiesto quando invece è necessario tenere traccia della posizione in ogni situazione e il dato deve essere mantenuto anche in caso di perdita di potenza.
Encoder rotativi
L’encoder rotativo risulta composto dai seguenti componenti:
– sorgente di luce a LED
– disco rotativo di codifica
– maschera stazionaria per la collimazione della sorgente di luce
– fotosensori con elementi multipli discreti
– elettronica di conversione da analogico a digitale
Nel momento in cui la luce proveniente da una sorgente a LED passa attraverso il disco rotativo di codifica, essa è alternativamente bloccata o lasciata passare da aree opache e chiare presenti sul disco. Nel caso di encoder incrementale, il disco di codifica contiene un numero fisso di linee opache equamente spaziate che producono un corrispondente numero di impulsi per rivoluzione. Questi impulsi sono prodotti dai fotosensori sotto forma di una sinusoide e convertiti in un’ onda quadra per mezzo di un’elettronica di conversione da analogico a digitale.
In alternativa ai dischi incrementali ci sono i dischi di codifica assoluti. Quelli tradizionali generano una serie di tracce concentriche ognuna delle quali consiste in un disegno di segmenti opachi e trasparenti disposti in un ordine fisso. L’uscita del fotosensore fornisce una combinazione unica di valori per ogni posizione, e questa è data in forma di parola di dati seriale o parallela.
Encoder incrementali
Un encoder incrementale è essenzialmente un generatore di impulsi che produce un impulso per ogni incremento nel movimento quando l’asse ruota. La traccia principale di un disco di codifica consiste in una traccia di linee chiare e scure alternate e uniformemente spaziate. Un contatore di tipo up/down risponde a ogni impulso in modo che l’informazione non venga persa. Un singolo canale incrementale di codifica, come un tachimetro, è usato in sistemi che operano in un’unica direzione e richiedono una semplice informazione della velocità La velocità è derivata dall’intervallo di tempo tra impulsi o dal numero di impulsi in un intervallo di tempo fissato.
Gli encoder incrementali a due canali, come può essere un encoder di quadratura, sono implementati per determinare la direzione di rotazione monitorando la relazione di fase tra due impulsi di ogni traccia. Tipicamente, entrambe le tracce sono sfasate tra loro di 90° e il segnale di quadratura è prodotto contando i fronti di salita e di discesa di ogni singolo canale (Fig. 2). Conseguentemente, sono prodotti quattro impulsi al fine ottenere l’interpolazione per la massima risoluzione nella discriminazione della posizione. Esistono poi tecniche idonee a migliorare ulteriormente la risoluzione.
Fig. 2 - Andamento del segnale di encoder in quadratura
Per ottenere l’informazione di posizione assoluta da un encoder incrementale, al disco di codifica si aggiunge un’ulteriore traccia che fornisce un segnale di indice che capita una volta per ogni rivoluzione. Il sistema di controllo mantiene la posizione attuale dell’asse usando una posizione di riferimento. Un encoder incrementale deve essere pilotato da una posizione di riferimento iniziale dato all’istante di accensione e resetta il contatore di impulsi. La calibrazione della posizione di reset può richiedere una rivoluzione completa a partire dalla partenza allo start-up.
Gli encorder rotativi incrementali sono specificati con la misura del numero di impulsi per ogni rivoluzione (ppr). Valori tipici disponibili arrivano fino a 10.000 ppr diretti e 40.000 ppr ottenuti attraverso l’uso di metodi di interpolazione che sfruttano l’informazione dei fronti di salita e discesa di due canali. Esempi applicativi di encoder incrementali includono dispositivi di trasporto, impianti di produzione, presse di stampa, macchine per imballaggi e impacchettamento, presse in genere.
Encoder assoluti
Gli encoder assoluti, rispetto agli encoder incrementali, sono in grado di riportare la posizione assoluta piuttosto che la variazione nella posizione e mantengono la posizione anche in caso di perdita dell’alimentazione. Questo significa che non è richiesto il ciclo di reset e calibrazione della posizione iniziale al power-up, anche se l’asse in fase di spegnimento viene ruotato. Questo è particolarmente vantaggioso per applicazioni di sicurezza critica oppure quando si processano materiali grezzi molto costosi che possono essere danneggiati dalla fase di regolazione della posizione iniziale. Esempi applicativi sono macchine tessili, macchine di attrezzo, presse di stampa, macchine di lavorazione del legno, nastri trasportatori e robotica.
Il disco di rotore comprende una serie di tracce concentriche realizzate con segmenti opachi e trasparenti che bloccano o trasmettono la luce (Fig. 3). È necessaria una traccia per ogni bit di informazione della posizione e alcuni encoder contendono venti tracce. Conseguentemente, gli encoder assoluti non sono specificati in impulsi per rivoluzione come negli encoder incrementali, ma in bit. Un microcontrollore decodifica l’immagine del disco di codifica per determinare la posizione assoluta. Un codice particolare nel quale solo un bit di informazione cambia su due posizioni successive della ruota di encoder è il codice di Gray. Questo codice da sicuramente dei vantaggi rispetto al codice binario che può avere il cambiamento di molti bit tra posizioni adiacenti. La ragione della sua diffusione risiede nel fatto che l’errore di posizione è limitato a più o meno un conteggio dal momento che ogni volta cambia solo un bit.
Fig. 3 - Disco di encoder assoluto con risoluzione a 10 bit
Gli encoder assoluti non accumulano errore, quando un rumore intermittente corrompe il valore corrispondente ad una posizione, solo quel particolare valore è corrotto. La prossima posizione non sarà influenzata dallo stesso segnale di rumore e da ogni altra possibile fonte di rumore precedentemente presentata e i su
ccessivi valori sono esatti per via del codice univoco di codifica della posizione. Gli encoder assoluti tipicamente richiedono più elementi di rivelazione rispetto ad un encoder incrementale, perché è richiesto almeno un sensore di luce per ogni bit di risoluzione. Tipicamente, questi fotosensori contengono molti elementi in un singolo chip o in un singolo package, ma per via della loro dimensione, spesso sono allocati in posizione sotto la ruota piuttosto che montati in una linea dritta radiale al disco di codifica. Inoltre, i fotosensori sono di solito più ingombranti della singola traccia del disco di codifica, perciò è necessario il posizionamento di maschere esterne tra la ruota e il sensore per limitare il campo di vista del sensore sulla singola traccia di codifica.
Array di fotosensori lineari
L’uso di un array di piccoli fotosensori risolve molti problemi associati all’allineamento e al montaggio dei fotosensori descritti in precedenza. Un singolo array lineare, montato radialmente sotto la traccia di codifica, può essere usato per acquisire l’immagine del disegno di codifica del disco, senza l’uso di maschere esterne. In più, la risoluzione spaziale fornita dagli elementi fotosensibili di piccola dimensione di un array lineare permette l’uso di altri tipi di codice binario, i quali possono aggiungere dei benefici, descritti di seguito.
Un array lineare di fotosensori consiste di pixel di fotosensori che misurano la luce incidente entro un tempo di esposizione definito dall’utilizzatore. L’uscita generata, in tensione o digitale, rappresenta l’esposizione alla luce di ogni singolo pixel, e ogni uscita può essere connessa ad un microcontrollore. L’uscita analogica può essere direttamente interfacciata ad un ADC per il processamento digitale o comparata per soglie di bianco e nero.
Quando si usano array lineari per decodificare un disco, il numero totale di pixel del sensore deve essere equamente diviso entro il numero totale di tracce del codice. La larghezza minima di ogni traccia è limitata dal collimatore della sorgente, dalla rifrazione del disco di codifica e dalla risoluzione in pixel.
La luce della sorgente degrada nel tempo e con la temperatura, perciò si richiedono aggiustamenti nel tempo di integrazione dei sensori e nella corrente di alimentazione dei LED che deve essere compensata per risolvere questi effetti. La calibrazione può essere ottenuta nel momento dello start-up oppure può essere eseguita periodicamente durante l’operatività della macchina, al fine di assicurare che il livello di sensibilità dell’apparato di rivelazione sia mantenuta costantemente.
Ogni traccia può incorporare bande di guardia per assicurare l’integrità dei dati. La banda di guardia minimizza gli effetti di transizione tra luce e disegno scuro nell’array, perché i raggi di luce impressionano l’array lineare con angoli che non sono perpendicolari. Quando la traccia è chiara e la luce illumina attraverso la parte trasparente del disco di codifica, il livello logico vale uno. Come illustrato dalla traccia quando il livello logico è “uno”, i pixel centrali dell’array lineare sono usati per rivelare ogni posizione di codifica chiara o opaca.
È possibile utilizzare un singolo array lineare per la decodifica ottica, riducendo in questo modo il costo. In più gli array lineari possono intrinsecamente supportare la più alta risoluzione di codifica rispetto all’uso di sensori multipli che occupano uno spazio maggiore. Conseguentemente, gli array lineari sono più adatti a supportare la densità di codifica di algoritmi e tecniche più avanzate, come quella della Sequenza di Massima Lunghezza (SML).
In sintesi, il disco di codifica basato sulla tecnica SML (o in inglese MLS – Maximal Length Sequence), appare simile al disco di un encoder incrementale nel quale è disponibile solo una traccia. Comunque, diversamente da dischi di encoder incrementale, la singola traccia è decodificata in modo da fornire un’informazione di posizione assoluta. SML usa un tracciato univoco di molte barre molto strette per codificare la posizione assoluta quando il disco di codifica ruota. Uno dei vantaggi più significativi di questa tecnica è che il fotosensore è virtualmente immune da tremori nella direzione radiale ed è resa possibile dalla sensibilità dei sensori lineari in tecnologia CMOS, i quali non soffrono degli svantaggi tipici di sensori CCD, come per esempio i tempi di carica e di scarica. Con il codice di Gray, la precisione di allineamento deve essere rigidamente mantenuta come anche in condizioni pessime di movimentazione. Un ulteriore vantaggio derivante dall’uso di array lineari include la semplicità di assemblaggio. Usando un singolo dispositivo non è richiesto l’allineamento manuale in fase di assemblaggio o calibrazione. Questo beneficio può far risparmiare un notevole ammontare di costi di assemblaggio.
Gli array lineari sono ideali per la codifica in applicazioni che includono quelle di acquisizione dell’angolo di sterzo nell’automobile o applicazioni di aggiustamento della corsa in altezza di sospensioni attive, ma possono anche essere usati nella rivelazione di margini in copiatrici e stampanti dove è richiesto un alto grado di linearità e uniformità. Gli array lineari sono disponibili in una varietà di lunghezze e risoluzione in pixel. Per esempio 200 o 400 punti per pollice (DPI) sono valori comuni.
Gli encoder incrementali sono abbastanza semplici e trovano applicazione nella misure di velocità. Tradizionalmente, gli encoder incrementali costano dal 40% al 60% in meno rispetto a encoder assoluti. Comunque il miglioramento nella tecnologia ASIC ha ridotto il numero di componenti e ha comportato una riduzione dei costi che differiscono ad oggi per un 20-30%. Gli encoder incrementali sono la scelta logica per applicazioni in cui non è richiesta la conoscenza della posizione assoluta oppure è facile da ottenere per via di situazioni al contorno, come una facile procedura di start-up per fare il reset dei contatori e impostare la posizione iniziale. Dove la procedura di zero non può essere eseguita e si rende necessario l’uso di un encoder di posizione assoluta, array di sensori ottici lineari possono essere una buona soluzione per la rivelazione del segnale di codifica.