Spettrometro da PC: l’analisi dei materiali a portata di click

Utilizziamo la piattaforma basata sui sensori dellโ€™AMS in abbinamento al Personal Computer e grazie a un software ad hoc tracciamo sullo schermo le curve di spettro frutto dellโ€™analisi eseguita.

Nellโ€™analisi dei materiali si utilizza da tempo la spettrometria, che รจ una tecnica di metrologia basata sul rilevamento dello spettro di una luce campione (ad ampia gamma di lunghezze dโ€™onda) puntata contro la superficie da analizzare e da essa riflessa, almeno in parte; questa metodica permette quindi di riconoscere i materiali solidi o la composizione di una miscela liquida attraverso lโ€™andamento della curva di risposta spettrale a una luce non coerente che le viene puntata contro e parzialmente riflessa.

La spettrometria viene utilizzata in tutti i laboratori di chimica e biologia e permette, ad esempio, di riconoscere un olio alimentare contraffatto oppure di distinguere un vino di qualitร  da uno scadente, ma anche di condurre analisi cliniche di vario genere.

La spettrometria si basa sul fatto che quando la luce colpisce un oggetto che non la assorbe completamente (รจ il caso di quasi tutti i corpi) una parte di essa torna indietro: questo รจ un fenomeno ottico comunemente conosciuto come riflessione e se la porzione di luce riflessa colpisce il nostro occhio, vediamo quellโ€™oggetto del colore corrispondente.

La sensazione di colore รจ dovuta al fatto che la luce riflessa รจ composta dalla sola porzione, della luce che lโ€™investe, corrispondente alle lunghezze dโ€™onda non assorbite, quindi un corpo che vediamo verde alla luce del sole ci appare tale perchรฉ dello spettro della luce solare ha respinto solo la gamma intorno al verde, estesa intorno ai 560 nanometri.

Una cosa simile accade con i sensori di immagine e in generale con i fotosensori, i quali sono sensibili a determinate lunghezze dโ€™onda e possono quindi essere stimolati dalla luce riflessa dai corpi.

Lo spettrometro su breakout board

Dopo questa premessa entriamo nel merito del progetto, che consiste nello sviluppare uno spettrometro da PC ottenuto connettendo alla porta USB (che ormai รจ uno standard per i Personal Computer e i dispositivi โ€œmobileโ€ come i tablet e gli smartphone) mediante un adattatore seriale/USB la breakout board rilevatrice di spettro (il cui progetto รจ stato pubblicato in questo post) e utilizzando uno specifico software fornito dalla AMS, che รจ il produttore dei tre componenti sensori spettrali impiegati nella breakout board stessa.

Il software, installabile in ambiente Windows, va in esecuzione su una specifica piattaforma chiamata ActiveTcl scaricabile liberamente (in versione free) dal sito di riferimento www.activestate.org; quindi non potete eseguirlo come qualsiasi applicazione Windows, ma dovete installare il runtime. Ma questo, come vedremo piรน avanti, non รจ un problema, in quanto lโ€™ambiente di esecuzione รจ di libero utilizzo.

Ora facciamo una panoramica sul progetto, con un approfondimento sui componenti utilizzati.

Come funziona lo spettrometro da PC

Non stiamo qui a ripetere nel dettaglio il funzionamento della breakout board: per questo e per la realizzazione rimandiamo chi fosse interessato allโ€™approfondimento, allโ€™articolo โ€œRealizza uno Spettrometro basato su Arduino per analizzare liquidi e materialiโ€.

Ci limiteremo a un riepilogo delle caratteristiche dei tre sensori di spettro della luce con cui essa รจ equipaggiata; tali sensori sono prodotti dalla AMS e connessi nella configurazione suggerita dal produttore.

Ogni sensore di quelli utilizzati nel nostro progetto misura lโ€™intensitร  della luce in sei lunghezze dโ€™onda (ogni lunghezza dโ€™onda รจ quindi un canale) ben definite e siccome nel circuito i sensori utilizzati sono tre, contiamo su un totale di ben 18 canali: ce nโ€™รจ abbastanza per coprire un ampio spettro di lunghezze dโ€™onda e realizzare uno strumento utilizzabile in moltissime analisi.

Infatti, grazie allโ€™integrazione di tre sensori della AMS, si riesce a ricostruire lo spettro da circa i 350 nm (il violetto) fino ai 1.000 nm, quindi si copre lo spettro della luce visibile piรน parte del NIR (Near Infrared Range), vale a dire del cosiddetto โ€œvicino infrarossoโ€.

I tre sensori presenti nella breakout board appartengono alla famiglia AS7265X della AMS e sono siglati AS72651, AS72652 e AS72653; ciascuno รจ in grado di rilevare onde elettromagnetiche di sei lunghezze dโ€™onda con un FWHM (Full Width at Half Maximum) di 20 nm, vale a dire che la larghezza di banda di ciascun canale considerata a un livello pari a metร  dellโ€™intensitร  luminosa percepita nello stesso รจ pari a 20 nm.
I tre sensori montati nella breakout board sono stati pensati per lavorare coordinati da uno di essi, ossia dallโ€™AS72651, il quale integra un microcontroller che permette la comunicazione con gli altri due attraverso unโ€™interfaccia smart.

Inoltre lโ€™AS72651 si puรฒ interfacciare al computer mediante le linee dellโ€™UART facente capo a RX (piedino 4) e TX (pin 5) oltre che le linee di reset RST (3) e INT (6); sul connettore della breakout board abbiamo anche lโ€™alimentazione (che devโ€™essere di 3,3V e la GND.

La Flash EPROM una AT25SF041 dellโ€™Atmel, della capacitร  di ben 4 Megabit, dual I/O, nella quale รจ caricato il nostro firmware Moonlight, scopo del quale รจ permettere al sensore che funzionerร  da master di interrogare gli altri due e acquisire da essi i dati corrispondenti allโ€™analisi spettrale effettuata da ciascuno, per poi inviare allโ€™esterno i dati di tutti e tre secondo la modalitร  prescelta.

Lo stesso bus SPI dedicato alla lettura della Flash EPROM viene ripetuto sul connettore PRG della breakout board per la programmazione in-circuit.

I sensori di spettro AMS

Prima di entrare nel vivo dellโ€™utilizzo dello spettrometro da Personal Computer, dedichiamo qualche paragrafo a un richiamo sui sensori di spettro prodotti dalla AMS, perchรฉ ci aiuterร  a comprendere come sfruttare le informazioni rese disponibili dal software su Personal Computer e a capire il significato dei valori mostrati nelle varie schermate, cosรฌ da sfruttare a pieno le informazioni nelle proprie analisi.

Come accennato, i dispositivi AS72651, AS72652 e AS72653 sono degli spettrometri digitali a 6 canali ciascuno e la Tabella 1 elenca le caratteristiche dei sei canali spettrali per ciascuno dei sensori della triade AMS: per ciascun canale รจ indicata la lunghezza dโ€™onda su cui รจ centrata la curva di sensibilitร .

Fig. 1 Curve di spettro dei 18 canali del sistema a tre sensori.

La Fig. 1 illustra le curve di risposta spettrale di tutti i canali di ciascun sensore e riepiloga il funzionamento del sistema Moonlight a tre sensori e 18 canali; nella figura vedete rappresentate in verde le curve relative allโ€™AS72651, in rosso quelle riferite allโ€™AS72652 e in azzurro quelle dellโ€™AS72653, per un totale di 18 curve.

Tabella 1 Canali spettrali e lunghezza dโ€™onda di centro banda dei sensori AMS7265x.

 

Per selezionare le varie lunghezze dโ€™onda, nei sensori spettrali dellโ€™AMS viene utilizzato il cosiddetto filtro gaussiano, che permette di estrarre dallo spettro della luce riflessa il 100% esattamente della lunghezza dโ€™onda corrispondente al canale e una percentuale decrescente delle lunghezze dโ€™onda attorno ad essa, costruendo una curva a campana, corrispondente, appunto, alla funzione gaussiana. Ciascuna delle curve riportate in Fig. 1 รจ una gaussiana.

Fig. 2 Schema a blocchi interno del generico sensore spettrale dellโ€™AMS.

 

La Fig. 2 mostra lo schema a blocchi interno dei sensori della famiglia AMS, nel quale distinguiamo il sensore dello spettro (che ne รจ il cuore) il circuito di comunicazione dati su IยฒC-Bus e quello di controllo dei LED utilizzati per generare la luce puntata contro gli elementi di cui analizzare lo spettro.

Fig. 3 Schematizzazione del funzionamento del sensore di spettro, che nello specifico รจ il master AMS72651.

 

Il funzionamento dei sensori AMS รจ schematizzato dalla Fig. 3, che nello specifico riguarda quello dellโ€™AS72651 che รจ il master della triade e che puรฒ interfacciarsi con un microprocessore attraverso il bus seriale (eventualmente convertibile in UART TTL) e con la memoria Flash dove viene conservato il firmware, attraverso il bus SPI a 4 fili dedicato.

 

La Fig. 4 propone uno schema a blocchi della breakout board con la connessione fra i tre sensori.

Ciascun dispositivo pilota, tramite la propria uscita DRV, un LED collegato al positivo di alimentazione attraverso un resistore di limitazione della corrente: detto LED viene acceso per proiettare la luce e subito dopo si attiva il sensore che rileva lo spettro della luce riflessa. Ogni LED รจ sincronizzato quindi con il rispettivo sensore.

 

Lโ€™interfacciamento della breakout board spettrometro con il PC

Per la comunicazione dati, nel sensore master AMS76251 possono essere implementate due differenti modalitร : tramite registri IยฒC-Bus oppure attraverso dei comandi AT (i comandi Hayes, se preferite…) passando da unโ€™interfaccia UART a livelli di tensione standard TTL 0/5V integrata nel sensore.

Chiaramente nel primo caso occorre interfacciare la triade di sensori con un dispositivo tipo un microprocessore o microcontrollore nel quale sia presente unโ€™interfaccia IยฒC-Bus a due fili (SCL e SDA) rispetto a massa, mentre nel secondo, ossia quello della comunicazione in modalitร  UART, i due fili diventano TX ed RX e il colloquio puรฒ avvenire sia direttamente con un microcontrollore che disponga a bordo di un UART (Arduino rientra in questa categoria) sia con un Personal Computer, fermo restando che in questo caso serve un converter TTL/RS232 se si desidera lโ€™interfacciamento con una COM (che funziona con livelli ยฑ12V) o un piรน comune TTL/USB per i PC moderni, che non hanno piรน le porte RS232.

In entrambi i casi il controllo della triade di sensori e il colloquio su seriale avvengono tramite comandi AT, che rappresentano un semplice, quanto efficace, protocollo di comunicazione su seriale, che ci permette un rapido test della breakout board anche attraverso un emulatore di terminale per Windows, Linux o MacOS.

Per quanto riguarda la comunicazione con lโ€™esterno, la selezione tra interfaccia IยฒC-Bus e UART si esegue con il piedino 8 (I2CE) e per lโ€™esattezza, quando questโ€™ultimo รจ posto a zero logico si attiva il bus IยฒC, mentre se รจ a livello alto la comunicazione รจ in seriale TTL UART. Nella breakout board, il piedino 8 riceve il livello logico che imposta lโ€™UART tramite il partitore resistivo composto da R6 ed R7, perciรฒ รจ impostata la modalitร  UART, che รจ quella che ci interessa.

Le modalitร  di comunicazione con il sensore spettro

Ora che abbiamo chiarito struttura e funzionamento della breakout board possiamo approfondire il discorso sulla comunicazione con il PC, che poi รจ ciรฒ su cui verte questo articolo: per dialogare con il PC sono possibili due soluzioni: la prima รจ appunto quella consistente nellโ€™eseguire sul computer un programma di terminale (il classico Telnet o lโ€™Hyper Terminal di Windows) e impartire comandi Hayes, mentre la seconda consiste nellโ€™utilizzare lโ€™apposito software fornito dalla AMS e scaricabile dal sito Intermet dellโ€™azienda.

Per quanto riguarda la prima opzione, ogni comando viene inviato sotto forma di stringa di caratteri, deve iniziare con โ€œATโ€ e finire con i caratteri di Carriage Return (CR) e New Line (NL).

I principali comandi AT adottati nel nostro sistema spettrometro sono i seguenti.
1. AT: per verificare che la comunicazione stia funzionando; il sistema risponderร  โ€œOKโ€.
2. ATDATA: ritorna la lista dei valori relativi ai 18 canali, ponendoli in ordine di sensore, vale a dire prima i sei del primo dispositivo, poi i sei del secondo e infine quelli del terzo.
3. ATXYZR: ritorna la lista dei valori relativi ai 18 canali, ordinandoli per lunghezza dโ€™onda.
4. ATTEMP: restituisce le tre temperature di funzionamento dei rispettivi sensori, utili per effettuare eventuali correzioni.
5. ATVERSW: ritorna la versione del firmware installato nella Flash EPROM con cui si interfaccia il sensore che fa da master.

Lโ€™alternativa รจ la gestione mediante lโ€™apposito software dellโ€™AMS, che in pratica provvede da sรฉ a interrogare la breakout board impartendo i comandi AT, in modo a noi trasparente. Questa soluzione รจ poi quella che descriveremo.

Connessione fisica al PC dei sensori di spettro

La breakout board puรฒ essere interfacciata a un PC mediante un converter TTL/USB come il modello USBTOUART che potete trovare qui a destra. Il converter TTL/seriale USBTOUART รจ simile al piรน noto FT782M (sempre della Futura Elettronica) ma ha il pregio che fornisce, sul suo connettore lato seriale, unโ€™alimentazione a 3,3V invece che a 5V, quindi piรน adatta ad alimentare la breakout board spettrometro.

Questo piccolo convertitore da USB a UART รจ basato sul chip CH340 della WCH (invece che sullโ€™FT232RL della FTDI) ed ha un connettore dโ€™interfaccia a 6 contatti che sono, nellโ€™ordine, DTR, RXD, TXD, VCC, CTS e GND.

Lโ€™ordine di disposizione dei contatti che ci interessano รจ analogo a quella dellโ€™FT782M, con la differenza che saltiamo un contatto, ossia il CTS, dato che in questa applicazione non lo gestiamo. Una piccola parentesi su questo contatto: in realtร  fa capo a un jumper a saldare su PCB che permette di connetterlo al CTS effettivamente oppure allโ€™RTS, quando fosse necessario.

Lo schema di cablaggio รจ proposto nella pagina seguente. Il converter dispone di un mini-interruttore che permette di selezionare il funzionamento a 3,3 V o 5 V e tre LED di stato (alimentazione, TX, RX) e anchโ€™esso, come lโ€™FT782M, viene visto dal sistema operativo (gira sotto Windows 7, 8 e 10) come una COM virtuale, una volta installati i relativi driver. Siccome internamente al convertitore รจ previsto un regolatore di tensione, lโ€™impostazione del mini-interruttore si riflette anche sulla tensione di uscita, pertanto siccome ci serve alimentare la breakout board con 3,3 volt, spostiamo la levetta del mini-interruttore in posizione 3V3 e siamo a posto.

In alternativa allโ€™USBTOUART รจ comunque possibile interconnettere il PC alla breakout board tramite il tradizionale FT782M della Futura Elettronica basato sullโ€™integrato FT232 della FTDI., fermo restando che questo converter, per quanto idoneo sul piano dei livelli logici sui contatti TX ed RX (perciรฒ sulla seriale) fornisce 5 volt, mentre la scheda con i sensori AMS sarebbe opportuno che venisse alimentata con una tensione inferiore.
In questo caso la connessione al PC si esegue molto semplicemente connettendo la linea TX della breakout board alla RX dellโ€™FT782M e la RX di questโ€™ultimo convertitore con la TX della breakout board. Collegate poi il contatto โ€“ al GND della breakout board, ma non lโ€™alimentazione, che in questo caso sarร  separata.

Lโ€™FT782M รจ quindi una soluzione consigliata se, ad esempio, si vuole mantenere separata dal PC lโ€™alimentazione della breakout board contenere i tre sensori spettrali: ad esempio perchรฉ si desidera fornire unโ€™alimentazione piรน filtrata di quella offerta dal PC o magari, per limitare al massimo la presenza di disturbi e residui degli switching interni al computer, prelevare i 3,3V da un regolatore lineare, come ad esempio un LDO capace di erogare una corrente dโ€™uscita adeguata.

Qualunque sia lโ€™hardware che avete utilizzato per interconnettere il PC alla breakout board AMS, una volta stabilita la connessione bisogna installare i driver e a quel punto avete a disposizione la COM virtuale che servirร  a far dialogare il software di gestione dellโ€™AMS con la breakout board dello spettrometro attraverso il convertitore.

Il software AMS per la gestione dello spettrometro

Vediamo dunque questo programma, che potete scaricare nella sezione download di questo articolo (il file รจ ams_Spectral_Sensor_Dashboard.tcl) e che per lโ€™esecuzione, essendo in formato .tcl, richiede un ambiente di runtime: nello specifico si utilizza ActiveTCL, scaricabile in versione free da www.activestate.com.

Una volta scaricato e installato lโ€™ambiente si puรฒ lanciare il file ams_Spectral_Sensor_Dashboard.tcl, che verrร  quindi eseguito e mostrerร  la schermata iniziale visualizzata nella Fig. 5. Tale schermata รจ la Dashboard del programma.

Fig. 5 Interfaccia utente del software AMS.

 

Notate che prima di lanciare lโ€™esecuzione del software dovete aver connesso la breakout board al computer, altrimenti otterrete un messaggio di errore e il programma verrร  chiuso.

Se invece avete giร  collegato la scheda, apparirร  una finestra di dialogo che proporrร  lโ€™impostazione della COM affinchรฉ avvenga la connessione (Fig. 6); indicate la porta esatta e se non la ricordate, accedete a Pannello di controllo e nelle impostazioni di sistema e dellโ€™hardware, verificate qual รจ la COM virtuale assegnata dal sistema operativo al converter TTL/USB.

Per selezionare la COM dovete cliccare, nel riquadro che elenca quelle trovate, sulla porta desiderata e poi fare clic sul pulsante Open. Cosรฌ accedete alla Dashboard. In questa troviamo quattro tab (schede) che danno accesso ciascuna a determinate funzioni; notate che la Dashboard รจ stata pensata per gestire un sistema di tre sensori, ossia la nostra breakout board.

Fig. 6 Impostazione della COM virtuale cui connettere la breakout board.

 

Partiamo dalla tab 18 Channel Sensor che รจ suddivisa in due sezioni: la sezione Control & Status imposta i sensori per lโ€™acquisizione dello spettro luminoso e quella sottostante riporta le letture.

Control & Status รจ ripartita nelle tre parti seguenti:
โ€ข Update Mode, permette di decidere se i dati mostrati debbano essere acquisiti in tempo reale oppure one-shot; nel primo caso cliccate su Continuous ponendovi il segno di spunta e in ogni caso lโ€™acquisizione si avvia con il pulsante Start e si arresta cliccando su Stop (รจ lo stesso pulsante solo che dopo il clic passa da Start a Stop) allorchรฉ avrete dati aggiornati continuamente. Nella casella Stop After potete scrivere dopo quanti campioni acquisiti interrompere lโ€™acquisizione, cosรฌ da limitare il numero di campioni acquisiti e lโ€™occupazione di memoria che ne deriva. Se invece non spuntate Continuous otterrete dati sulla risposta dei tre sensori di spettro solamente quando cliccherete sul pulsante, che in questo caso assume il nome di Sample.
โ€ข Status, riporta il numero di campionamenti effettuato dallโ€™apertura della Dashboard.
โ€ข LED Control (electronic shutter) permette di impostare la modalitร  di accensione dei LED in base alle nostre esigenze, ovvero le correnti di lavoro di ciascuno, scegliendo tra i valori proposti nei singoli menu a tendina.

Ricordate che i tempi e le correnti di accensione dei LED determinano la qualitร  del rilevamento, cosรฌ come la sincronizzazione tra i tempi di osservazione dello spettro riflesso da parte dei fotodiodi.

Per quanto riguarda i dati sullo spettro rilevato, saranno visualizzati nella sezione inferiore, distinti per sensore che li ha prodotti.

Sempre nella sezione inferiore, potete impostare la modalitร  di visualizzazione delle informazioni sullo spettro di luce, scegliendo una tra le 5 opzioni proposte; piรน esattamente, accanto a Show avete le opzioni di visualizzazione Raw (che mostra i dati grezzi ottenuti dai tre sensori) e Calibrated Data (che visualizza i dati dei sensori, ma calibrati). Invece accanto a sorted by avete le tre opzioni seguenti:
โ€ข Channel, che visualizza i dati divisi per canale del sensore corrispondente;
โ€ข Wavelenght, che mostra le lunghezze dโ€™onda invece dei valori numerici rilevati nei singoli canali);
โ€ข as Spectrum, che probabilmente รจ la piรน immediata perchรฉ nella finestra del programma ci viene tracciato un grafico di spettro, facilmente leggibile (Fig. 7).

Fig. 7 Visualizzazione dello spettro sulla schermata del software.

Come vedete, si ottiene proprio la curva dettagliata per ampiezza delle singole componenti spettrali e lunghezza dโ€™onda, nel range misurabile; il valore numerico sullโ€™asse delle ordinate รจ quello relativo alla capacitร  di rilevamento e sensibilitร  dei sensori AMS. Passiamo alla tab Logging & Control, nella quale appaiono alcune informazioni nella sezione Device, come ad esempio la versione firmware e hardware, la COM selezionata eccetera (Fig. 8).

Nella sezione Logging possiamo aprire un file di log giร  creato e visualizzarne i valori memorizzati, mentre nella Sensor Control abbiamo due caselle:
โ€ข Integration (ms) da dove impostare il tempo di osservazione dei sensori, ovvero per quanto tempo acquisire la luce riflessa dopo lโ€™accensione dei LED; questa funzione corrisponde al tempo di esposizione delle macchine fotografiche e va da sรฉ che piรน alto รจ il tempo, piรน luce viene rilevata e viceversa (un tempo lungo aumenta la sensibilitร  del sistema e uno breve accelera il refresh delle analisi, ma lo fa a discapito della sensibilitร );
โ€ข Gain, dalla quale impostare lโ€™amplificazione del segnale fornito dai fotodiodi e quindi la sensibilitร  dei sensori alla luce.

Fig. 8 Tab Console che mostra il terminale integrato nel software.

 

Lโ€™ultima scheda che vediamo รจ la tab Console, che ci mette a disposizione un vero e proprio terminale integrato (Fig. 9), nel caso vogliamo impartire direttamente comandi AT senza dover uscire o switchare su un altro programma. Da questo terminale possiamo inviare tutti i comandi standard e visualizzare la comunicazione con la breakout board.

Fig. 9 Visualizzazione del terminale implementato nel software AMS.

Download

Conclusioni

Utilizzato in abbinamento a un sistema a microcontrollore oppure abbinato al Personal Computer tramite converter TTL/USB come descritto in queste pagine, lo spettrometro su breakout board si dimostra uno strumento affidabile e in grado di restituire analisi di spettro dei materiali sufficientemente valide, ad un costo irrisorio se paragonato a quello di uno spettrometro professionale da laboratorio di analisi.

Le grandi capacitร  di elaborazione dei Personal Computer vi permettono, se siete in grado di scrivere software capaci di interrogare la breakout board per estrarne e interpretarne i dati di spettro, di realizzare applicazioni specifiche in grado, ad esempio, di eseguire azioni automatiche in base alle analisi spettrali effettuate, come attivate un servomeccanismo che rimuove un prodotto da un nastro trasportatore o generare un alert al riconoscimento di un prodotto alimentare adulterato.

Le possibilitร  di impiego sono, come immaginerete, davvero tante…

 

Lascia un commento

Il tuo indirizzo email non sarร  pubblicato. I campi obbligatori sono contrassegnati *

Menu