Realizza uno Spettrometro basato su Arduino per analizzare liquidi e materiali

Sfruttiamo un modulo ad hoc con sensori AMS, per realizzare un prezioso strumento basato su Arduino, che ci permetterà di analizzare ad esempio i liquidi alimentari attraverso la risposta spettrografica a uno stimolo luminoso, ottenendone il risultato su Monitor Seriale.

La spettrometria è una tecnica di analisi che permette di riconoscere i materiali o la composizione di una miscela liquida attraverso la conformazione della risposta spettrale a una luce non coerente che le viene puntata contro e parzialmente riflessa.

È utilizzata in tutti i laboratori chimici e biologici e potrebbe tornare utile anche in ambito domestico e in generale nella vita di tutti i giorni: per esempio dalla spettrometria possiamo, attraverso lo spettro della luce che riflette, determinare la bontà e autenticità di un vino pregiato o di un olio di oliva.

In queste pagine vi proponiamo di realizzare proprio un sensore capace di emulare gli spettrometri da laboratorio (seppur con una precisione un poco minore) che vi permette di sperimentare l’analisi spettrale degli oggetti anche a casa vostra; pur basandosi su sensori di elevata tecnologia e qualità, lo strumento proposto è essenziale e non prevede un display per visualizzare la conformazione dello spettro: i risultati dell’analisi dello spettro della luce verranno “plottati” su Monitor Seriale di Arduino e potranno essere elaborati da un PC per essere mostrati in forma grafica.

La spettrometria

Prima di entrare nel vivo del progetto è opportuno spiegare in cosa consiste la spettrometria. Partiamo spiegando che la luce visibile dai nostri occhi (cioè quella che il nostro cervello interpreta) è in realtà una porzione di quella che il sole ci manda in ogni momento e viaggia insieme a molte altre onde elettromagnetiche che coprono un range di frequenze molto ampio.

Questo insieme di frequenze è chiamato spettro. Il nostro occhio percepisce solo una parte dello spettro di radiazioni luminose che compone la luce del sole e tale parte è detta spettro del visibile, ovvero luce visibile.

Il caso vuole che lo spettro del visibile corrisponda alle frequenze, nello spettro della luce del sole arrivata sulla Terra, che hanno la maggiore intensità; in realtà non è un caso, ma il risultato dell’evoluzione dell’occhio umano, che nei millenni si è abituato a vedere esattamente la parte più importante dello spettro di luce che investe il nostro pianeta.

Quando la luce colpisce un oggetto che non la assorbe completamente (in caso contrario avremmo a che fare con il cosiddetto corpo nero) una parte torna indietro: questo è un fenomeno ottico comunemente conosciuto come riflessione. Se questa luce riflessa colpisce il nostro occhio e porta con sé una frequenza contenuta nello spettro del visibile, allora vediamo quell’oggetto del colore corrispondente.

Quindi, quando vediamo una foglia verde, in realtà quella foglia ha assorbito tutti gli altri colori e ha riflesso solo la componente verde, quindi un’onda con una lunghezza d’onda attorno ai 520nm. Potete vedere le lunghezze d’onda dello spettro del visibile e i relativi colori percepiti in Fig. 1.

La luce riflessa porta con sé altre informazioni oltre al colore: se illuminiamo un materiale con una luce bianca (che è l’insieme di tutte le frequenze del visibile) e questo riflette solo la luce nel violetto, significa che ha assorbito tutte le altre frequenze.

L’insieme di frequenze che un oggetto cattura prende il nome di spettro di assorbimento e, siccome ogni materiale ha uno spettro di assorbimento noto, questo diventa un codice identificativo del materiale stesso.

Questo concetto è abbastanza importante da essersi guadagnato una branca della fisica che studia l’interazione tra luce e materia: la spettrometria, e lo strumento utilizzato per calcolare questa interazione prende il nome di spettrometro.

Fig. 1 Spettro della luce visibile

La tecnologia di uno spettrometro

Per costruirci uno spettrometro abbiamo bisogno di qualcosa che proietti contro l’oggetto da analizzare un raggio di luce, il cui spettro sia noto, quindi catturare la luce riflessa dall’oggetto stesso; non dev’essere necessariamente un raggio collimato e stretto (come quello di un laser, per intenderci), ma un fascio anche con una certa apertura angolare.

Produrre un fascio di luce è facile: basta accendere un LED; più difficile, invece, è registrare la luce che l’oggetto riflette; in questo caso ci può essere d’aiuto il fotodiodo, che pur lavorando in polarizzazione inversa si fa attraversare da una corrente quando viene colpito da dei fotoni, i quali sono i componenti elementari della luce. A riguardo va precisato che più intensa è la radiazione luminosa che investe il fotodiodo, più elevata è la corrente in polarizzazione inversa, naturalmente entro i limiti del componente.

Per ricalcolare uno spettro, però, non basta sapere che al sensore è ritornata una luce con una determinata intensità, ma bisogna sapere che lunghezza d’onda ha; quindi la luce riflessa dall’oggetto di cui vogliamo calcolare lo spettro, prima di colpire un fotodiodo deve essere filtrata, così da essere certi che quando rileviamo una radiazione luminosa, non sia una qualsiasi ma uno spettro ben definito, ovvero che l’aumento della corrente nel fotodiodo sia determinata dalla lunghezza d’onda o dal gruppo di lunghezze d’onda che ci interessa.

In elettronica esistono vari filtri per le onde elettromagnetiche: nel nostro progetto viene utilizzato il filtro passa-banda gaussiano.

Per spiegarvi a cosa ci stiamo riferendo, partiamo da un esempio: uno dei canali del nostro progetto, come vedremo, corrisponde alla lunghezza d’onda di 610 nm; i canali sono le radiazioni luminose di riferimento per l’analisi spettrale che facciamo.

Per calcolare quanta luce di quella determinata lunghezza d’onda è contenuta nello spettro dell’oggetto che stiamo valutando, dobbiamo captarne tutto lo spettro, filtrarlo attorno ai 610 nm e poi far arrivare la luce risultante sul fotodiodo.

Per filtrare attorno ai 610 nm, il filtro passabanda gaussiano restituisce il 100% esattamente a quella lunghezza d’onda e una percentuale decrescente delle lunghezze d’onda attorno a quella centrale, che possiamo considerare frequenze spurie; la Fig. 2 spiega graficamente quanto appena affermato, infatti ci fa vedere come la banda filtrata attorno ai 610 nm disegni una sorta di campana, la quale è, per l’appunto, la rappresentazione grafica della funzione gaussiana.

Fig. 2 Curve gaussiane disegnate dai sensori.

 

Ogni sensore di quelli utilizzati nel nostro progetto misura l’intensità della luce per sei lunghezze d’onda (ogni lunghezza d’onda è quindi un canale) e siccome nel circuito i sensori utilizzati sono tre, contiamo su un totale di ben 18 canali.

Alla fine, 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), ovvero il vicino infrarosso, come si vede dal grafico proposto nella Fig. 3.

Questo spettro ci permette di identificare l’impronta spettroscopica univoca di ogni materiale.

Fig. 3 Rappresentazione dei 18 canali disponibili.

 

Il sensore AMS AS7265X e il sistema Moonlight

A questo punto è il caso di approfondire il discorso sul sensore di luce che abbiamo utilizzato, che poi è quello che ci consente l’analisi spettrale.

Questo sensore è parte di una famiglia prodotta dalla AMS e chiamata AS7265X, la quale contempla più dispositivi (AS72651, AS72652 e AS72653) che sono tutti degli spettrometri digitali a 6 canali.

Ogni canale è ottimizzato per ricevere le onde elettromagnetiche di una lunghezza d’onda con un FWHM (Full Width at Half Maximum) di 20 nm. Nella tabella proposta dalla Fig. 4 potete vedere i canali in ordine di lunghezza d’onda correlati con il sensore di appartenenza.

Fig. 4 Sensori AMS e canali corrispondenti.

 

Il sistema Moonlight (una soluzione per l’analisi di spettro della luce) cui ci siamo ispirati nel realizzare il nostro spettrometro, integra questi tre sensori, comandati dall’AS72651 collegato a un microcontroller che permette la comunicazione con un’interfaccia smart; vedremo questo quando analizzeremo lo schema elettrico del circuito.

L’AS72651, per funzionare come master, ha bisogno di una memoria Flash che contiene il firmware Moonlight.

La Fig. 5 propone una schematizzazione del funzionamento dei sensori della AMS: come vedete, ogni sensore, realizzato su chip di semiconduttore, riceve la luce dall’esterno tramite una lente focalizzatrice; sullo stesso chip abbiamo l’elettronica che converte la radiazione luminosa in segnale digitale.

Fig. 5 Funzionamento dei sensori della AMS.

 

La Fig. 6 ci mostra lo schema a blocchi della famiglia di sensori, nel quale identifichiamo il sensore dello spettro della luce (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.

Ogni sensore va alimentato con una tensione di 3,3Vcc con tolleranza abbastanza ristretta, pari a +/-10%.

Fig. 6 Schema a blocchi del sensore AMS AS72651.

 

Per la comunicazione dati, nel sensore possono essere implementate due differenti modalità: tramite registri I²C-Bus oppure attraverso degli ATcommands (o comandi AT, se preferite…) attraverso un’interfaccia UART.

I comandi AT rappresentano un semplice protocollo di comunicazione su seriale.

Ogni comando viene inviato sotto forma di stringa di caratteri, inizia con “AT” e deve finire con i caratteri di Carriage Return (CR) e New Line (NL).

I principali comandi AT adottati nel sistema Moonlight 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: ritorna le tre temperature di funzionamento dei tre sensori, utili per effettuare eventuali correzioni
(il range di temperatura di funzionamento è tra i -40°C e i +85°C).
5. ATVERSW: ritorna la versione del firmware installato nella Flash EPROM con cui si interfaccia il sensore che fa da master.

Schema di cablaggio

Schema elettrico dello spettrometro

Per ospitare il sensore AMS (Fig. 7) abbiamo realizzato un circuito del quale in queste pagine pubblichiamo lo schema elettrico al completo; andiamo subito ad analizzarlo: in esso vediamo i tre sensori, che sono chiaramente differenti perché ciascuno presenta una copertura spettrale intrinseca diversa da quella degli altri.

Nello specifico, abbiamo un AS72651 (siglato U1) un AS72652 (U2) ed un AS72653 (U3); i tre sono interfacciati a una Flash Eprom (U4) di tipo AT25SF041 dell’Atmel, della capacità di ben 4 Megabit, dual I/O, nella quale è caricato il nostro firmware Moonlight (quello per il sistema Moonlight), scopo del quale è permettere al sensore che funzionerà da master di interrogare i sensori dell’AMS e acquisire da essi i dati corrispondenti all’analisi spettrale effettuata da ciascuno; quindi il firmware Moonlight consente l’impostazione dell’U1 come dispositivo master del sistema a tre sensori di spettro.

Questo è reso possibile dal fatto che l’AS72651 è un dispositivo intelligente in grado di eseguire un programma.

L’interfacciamento del dispositivo master alla memoria Flash avviene mediante un bus SPI a quattro fili (MISO, MOSI, DI e CLK) mentre la stessa memoria comunica con l’esterno attraverso le connessioni riportate sul connettore PRG, utile alla programmazione in-circuit.

Fig. 7 Interconnessione fra i sensori AMS.

 

La comunicazione di U2 e U3 con il sensore master U1 avviene mediante un bus a tre fili (U1, poi, comunica i dati raccolti da esso e dagli altri due sensori alla scheda Arduino) le cui tre linee costituiscono un bus I²C (SDAS è la linea dati bidirezionale e SCLS il clock che la sincronizza) più un reset gestito dal dispositivo master AS72651, sempre grazie al firmware Moonlight.

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’AS72651 si interfaccia ad Arduino attraverso le connessioni riportate sul connettore CN1, ossia l’UART facente capo a RX (piedino 4) e TX (pin 5) oltre che le linee di reset RST (3) e INT (6); sul connettore giungono anche i 3,3V forniti dall’omonimo pin di Arduino, riferiti alla massa comune GND; le connessioni sono riportate nel disegno di cablaggio pubblicato in queste pagine.

Su Arduino, per la comunicazione seriale inizializziamo una seriale software sui pin digitali 10 e 11, tramite la libreria specifica newsoftserial.h inclusa nello sketch.

Da notare che in realtà l’AS72651 può comunicare con il microcontrollore o computer secondo due protocolli: I²C-Bus o UART; la selezione del caso 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. Nel nostro circuito il piedino 8 riceve il livello logico che imposta l’UART tramite il partitore resistivo composto da R6 ed R7.

Piano di montaggio dello spettrometro

Elenco componenti

C1, C3, C5: 100 nF ceramico (0603)
C2, C4, C6: 10 µF ceramico (0603)
C7: 1 µF ceramico (0603)
R1÷R5: 10 kohm (0603)
R6: 0 ohm (0603)
R7: 10 kohm (0603)
R8, R9: 2,2 kohm (0603)
R10÷R12: 200 ohm (0603)
LD1÷LD3: LED bianco (0805)
U1: AS72651
U2: AS72652
U3: AS72653
U4: AT25SF041 (MF1381)
CN1: Strip maschio 6 vie 
PRG: Strip maschio 8 vie 

Varie: 
- Circuito stampato S1381
(31x31 mm)

La libreria Arduino per lo spettrometro

La libreria legge tutti i canali e li salva in 3 array, ciascuno rappresentante un sensore AMS. A ogni valore è dato un nome, o meglio una lettera, per identificarlo, ma in realtà serve l’insieme dei 18 canali per usare l’integrato come spettrometro e riuscire a fornire un’impronta utilizzabile del materiale sotto test. I canali sono quelli elencati nella solita Fig. 4, la quale indica anche come riferirsi loro attraverso la libreria.

Potete scaricare la libreria nella sezione Download di questo posto. Una volta che l’avete scompattata, nella cartella “libraries”, dovrete creare una cartella con lo stesso nome dei file e copiarci dentro il .cpp e il .h.

A questo punto non vi resta che connettere Arduino come mostrato nello schema di cablaggio e copiare il Listato 1 in un nuovo sketch.

Nel monitor seriale vi comparirà qualcosa di simile a questo:

410;435;460;485;510;535;560;585;610;645;680;705;730;760;810;860;900;940
3;3;117;72;0;0;446;347;121;131;72;71;13;16;17;10;8;5
3;3;116;72;0;0;446;346;121;131;72;70;13;16;17;10;8;5
6;22;54;34;25;3;253;75;79;17;9;66;26;8;6;4;3;1
6;25;61;33;26;3;244;81;37;17;9;83;16;7;6;4;3;1

dove, dopo un piccolo titolo di benvenuto, comparirà un testo, che copiato in un file CSV, vi permetterà di avere uno spreadsheet pronto all’uso con le vostre rilevazioni.

Nella porzione di codice sono riportati due campionamenti per due materiali diversi. Come si osserva c’è una piccola variabilità in alcune misurazioni, ma dipende moltissimo dalle condizioni di luce, vicinanza, rumore luminoso e altri fattori ambientali.

Spieghiamo ora cosa è successo, riferendoci al Listato 1: nella riga ams->setLedsOn(); abbiamo acceso i LED e poi nella riga len=ams->getWavelengthStr(str,’;’); viene richiamata una funzione della libreria che riporta la stringa delle lunghezze d’onda dei 18 canali in ordine sensore per sensore, separate ciascuna dal carattere ‘;’.

Ciò vi servirà come testata del foglio CSV per capire a che lunghezza d’onda corrispondono i valori successivi.

Nel loop, ogni 3 secondi vengono letti i 18 valori e riportati nel monitor seriale se, e solo se, la rilevazione è andata a buon fine.

Ogni volta che posizionate un materiale diverso davanti ai sensori questa stringa varierà, dandovi quindi lo spettro del campione. Ricordatevi che la distanza dal corpo da analizzare non può essere superiore a una decina di centimetri perché la potenza dei LED è ridotta. Inoltre è molto importante l’inclinazione della superficie da monitorare rispetto ai sensori, da specifica non può superare i 25°.

Il numero relativo a ogni lunghezza d’onda riportato nella stringa indica quante onde elettromagnetiche il campione ha riflesso. Tutta la stringa rappresenta lo spettro del campione.

Nella libreria sono presenti molte altre funzioni. Nel Listato 2 potete vedere alcuni esempi con una spiegazione, mentre tutte le funzioni sono spiegate in maniera esauriente nella libreria, la quale è abbondantemente ed esaustivamente commentata.

Listato 1

#include <AMS_Spectrometer_lib.h>

#include <SoftwareSerial.h>

AMSSpectrometer * ams;
char str[CSV_LINE];
unsigned int len;

void setup() {
  Serial.begin(115200);
  while (!Serial) {
    ;
  }
  Serial.println(“AMS spectrometer”);

  ams = new AMSSpectrometer();
  delay(100);
  ams - & gt;
  setLedsOn();
  delay(100);
  len = ams - & gt;
  getWavelengthStr(str, ’;’);
  Serial.print(str);

  delay(200);
}

void loop() {
  len = ams - & gt;
  getVal_CsvSemicolonSep(str);
  if (len != 0) Serial.print(str);

  delay(3000);
}

Listato 2

/* ESEMPI DI UTILIZZO
 * Queste dichiarazioni valgono per tutti gli esempi sottostanti */
#include <AMS_Spectrometer_lib.h>

#include <SoftwareSerial.h>

char str[CSV_LINE];
unsigned int len;
char str_fancy[200];
int a[3];
AMSSpectrometer * ams;

/* FANCY STRING 
 * stampa i valori dei 18 canali in maniera leggibile, invece che per formato CSV */
len = ams - & gt;
getVal_FancyStr(str_fancy);
if (len != 0) Serial.println(str_fancy);

/* VALORI SINGOLI 
 * legge i valori dei 18 canali, dopo di che li stampa uno a uno */
ams - & gt;
readChannels();
for (len = 0; len & lt; 6; len++) {
  Serial.print(ams - & gt; ch_1[len]);
  Serial.print(F(““));
}
for (len = 0; len & lt; 6; len++) {
  Serial.print(ams - & gt; ch_2[len]);
  Serial.print(F(““));
}
for (len = 0; len & lt; 6; len++) {
  Serial.print(ams - & gt; ch_3[len]);
  Serial.print(F(““));
}
Serial.println();

/* TEMPERATURA SENSORI
 * stampa la temperatura dei 3 sensori, in gradi Celsius */
if (ams - & gt; getGain(a)) {
  Serial.print(F(“numbers: “));
  Serial.print(a[0]);
  Serial.print(F(“, “));
  Serial.print(a[1]);
  Serial.print(F(“, “));
  Serial.print(a[2]);
  Serial.println(F(“.“));
} else Serial.println(F(“error”));

/* VERSIONE FIRMWARE
 * stampa la versione del firmware installato */
len = ams - & gt;
sendATcommand(“ATVERSW”, str);
if (len != 0) Serial.println(str);

Utilizzo dello spettrometro

Grazie ai sensori AMS della famiglia AS7265x possiamo autocostruirci una versione semplificata di uno spettrometro; sicuramente non ci fornirà lo spettro di assorbimento sotto forma di grafico, dato che non prevede un display, però riuscirà a farci distinguere un materiale da un altro grazie all’insieme dei valori risultanti dai 18 canali.

A questo livello di strutturazione, e soprattutto senza un database già compilato, uno spettrometro portatile torna utile ad esempio come colorimetro (esistono dei siti Internet che convertono le lunghezze d’onda dello spettro nei codici RAL, che sono lo standard per i colori) oppure per il “branding”.

Con quest’ultimo termine si intende quell’operazione che permette di identificare con certezza un prodotto distinguendolo da un altro: per esempio gli inchiostri per tipografia, dove per distinguere l’originale basta avere lo spettro di un campione noto e confrontarlo con lo spettro di altri inchiostri, che alla vista risultano tutti uguali.

Lo spettro fa da impronta riuscendo a identificare con oggettività l’inchiostro originale.

Ma questa operazione si può fare con qualsiasi genere di prodotto, che sia esso solido, liquido o gassoso, trovando applicazioni in agricoltura, allevamento, edilizia, industria manufatturiera, farmacologia, terziario, e moltissime altre. Pensate a un’impresa edile che vuole mantenere uno standard di calcestruzzo, grazie allo spettrometro può identificare il cemento del fornitore come ideale per i suoi usi; inoltre può calcolare la percentuale di ingredienti nella miscela.

Oppure in cucina, si possono analizzare i vari tipi di oli, distinguendo quello extravergine di oliva da quello di oliva, fino a smascherare oli diciamo pure “additivati “come quelli arricchiti di clorofilla per mascherarne l’ossidazione o di beta-carotene ed altre sostanze in grado di mascherare il sapore di oli di oliva scadenti che non dovrebbero finire sulla tavola. Creandosi un proprio database di rilevazioni le possibilità aumentano: per esempio al supermercato si potrebbe identificare la frutta e verdura veramente bio controllando che sulla buccia non siano presenti diserbanti o insetticidi. Anche per identificare una pietra preziosa dalle sue versioni di plastica.

Un altro utilizzo dello spettrometro rientra nell’analisi della luce ambiente. Alcune piante, per crescere bene, é noto che hanno bisogno di determinate lunghezze d’onda nella luce che le investe; quindi se si intende creare una serra di piante non autoctone é bene conoscerne le proprietà e soprattutto le esigenze. Allo scopo, per determinare se la luce é adatta alla loro crescita basta utilizzare lo spettrometro; nello specifico, con il nostro tris di sensori, spegnendo i LED e aumentando il guadagno e il tempo di d’integrazione (proprio come se si trattasse di gestire l’otturatore di una macchina fotografica digitale) si riesce a misurare la lunghezza d’onda della luce ambiente.

Tutte le funzioni del caso sono presenti nella libreria che abbiamo descritto, compresa quella di gestione dei tempi di “esposizione” (illuminamento da parte del LED e osservazione dello spettro riflesso).

Gestione diretta da PC

Fin qui vi abbiamo proposto di gestire il sistema spettrometro con Arduino e acquisire con esso i dati sullo spettro passandoli ad un computer tramite Serial Monitor dell’IDE di Arduino; notate, tuttavia, che la breakout board contenente il sistema con i tre sensori spettrali della AMS può essere interfacciata direttamente a un PC mediante un converter TTL/USB come l’FT782M della Futura Elettronica basato sull’integrato FT232 della FTDI, quindi gestita con i classici comandi AT, che questa volta impartiremo da un emulatore di terminale tipo Hyper Terminal. Quindi si può lavorare con il nostro spettrometro anche solo con il PC, direttamente e senza utilizzare Arduino.

Inoltre chi ha un po’ di esperienza con le applicazioni Windows potrebbe sviluppare un software in Visual Basic per tracciare la curva spettrale rilevata dalla breakout board, integrando così il dispositivo in una propria applicazione software.

Naturalmente il discorso vale anche per gli altri sistemi operativi, primo fra tutti Linux, che è open per definizione e che quindi si presta allo sviluppo di progetti personalizzati.

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. Notate che il connettore a 4 poli (un semplice pin-strip montabile o meno) dell’FT782M fornisce anche l’alimentazione, purché la corrente richiesta non ecceda i 500 mA complessivi prelevati dall’USB, quindi collegheremo anche il + al 3V3 della breakout board e il contatto GND di quest’ultima al – dell’FT782M, così da far funzionare tutto quanto con l’alimentazione fornita dal Personal Computer. I collegamenti del caso sono meglio descritti dallo schema di cablaggio nella Fig. 8.

Notate altresì che l’adattatore FT782M può adattare i propri livelli logici delle linee TXD ed RXD sia a 5V (quindi livelli TTL puri) o a 3,3 volt; la selezione si effettua mediante un piccolo ponticello a saldare posto sul lato del piedino 1 dell’FT232 e composto da tre piazzole.

Nel nostro caso dobbiamo attivare la modalità di comunicazione seriale con livelli 0/3,3V e quindi dobbiamo unire con un pezzetto di filo elettrico o una goccia di stagno la piazzola centrale con quella vicina alla scritta V3.3 sul circuito stampato dell’FT782M, come mostrato nella Fig. 9.

Fig. 8 Connessione al PC tramite converter TTL/USB.

 

Fig. 9 Il ponticello da realizzare per i livelli 0/3,3V.

Download

Conclusioni

Il dispositivo descritto in queste pagine è una soluzione low-cost e molto compatta per l’analisi spettrale della luce o della superficie di vari oggetti, cibi ecc., grazie alla quale possiamo identificare la composizione o la loro autenticità con una precisione più che sufficiente in molti ambiti che sconfinano anche da quello prettamente didattico o amatoriale, per approdare al professionale.

7 Commenti

  1. Ottimo. Sono un elettrotecnico, ma appassionato di elettronica.....Spero di iniziare presto con Arduino.....mi piace tantissimo. Grazie
  2. Applicazione molto interessante, da informatico ma con studi di chimica, e appassionato di elettronica. Negli spettrometri di laboratorio, normalmente, la sorgente si trova sul lato opposto dei sensori rispetto alla uvetta. In questo caso non mi è chiaro come e dove venga disposto il campione.
  3. Eccellente progetto. Sono un appassionato di elettronica e studioso di Astronomia e astrofisica. Cercherò di realizzare il progetto proposto.
  4. Buongiorno, è la stessa domanda che mi sono fatto io. Spero che forniscano anche qualche indicazione o esempio sulle applicazioni pratiche dell'apparecchio. Ad ogni modo io lo compro e proverò a costruirlo. Se fosse interessato a uno scambio di idee e opinioni ci potremmo sentire. Giuseppe Gaddi cell. 339-4706075 [email protected]
  5. Salve anch'io sono appassionato di Astronomia e astrofisica sono socio UAN(Unione Astrofili Napoletani) Secondo lei è possibile trasformarlo in uno spettroscopio abbinandolo ad un telescopio? Ernesto
  6. Interessante, però non mi è chiaro come si dovrebbe posizionare il rilevatore a led rispetto al campione da analizzare e quale è la dimensione minima del campione da analizzare. Sarei interessato all'acquisto se lo proponete gia montato e tarato. Grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu