AS7341 utilizzo

Ho adocchiato il sensore AS7341, la mia domanda è se con solo questo sensore è possibile realizzare uno spettrometro economico 350-750nm ininterrotto , cioè senza buchi nello spettro

Non ho mai avuto a che fare con quel sensore, ma leggendo il datasheet forse trovi la tua risposta (vedi il capitolo 7, da pagina 16):

Ci deve essere qualcosa che mi sfugge, anche se ha 8 bande sul visibile separate sono parzialmente sovrapposte facendo supporre che la percentuale di errore sia incostante sullo spettro, ma ho la sensazione che con un approccio diverso si riesca a linearizzare l’intera banda o scala , qual si voglia dire, con algoritmo software, a motivo della mia carenza di conoscenza del settore avrei bisogno di un aiutino, mi pare etemenanki è esperto del settore, spero che veda il thread e risponda altrimenti lo contatterò direttamente sempre che non lo interpreti come molestia

Purtroppo no. Sono 8 canali larghi 30-50nm, come si vede dal datasheet. Per realizzare ciò che tu desideri devi utilizzare un reticolo di diffrazione e un sensore lineare. Tempo fa mi era venuto in mente di costruirlo, ma poi non mi sono sentito in grado di affrontare la parte ottica.

Io ne acquistai 3 da 1000 linee/mm per 6 GBP nel 2017 da shy_halat su ebay, ma mi sa che non esiste più.

Se no, a un prezzo ragionevole c'è questo:

Con il software non puoi aggiungere nulla all'AS7341, perché ti dice solo quanta luce c'è all'interno di una banda larga decine di nm.

LS335 usa proprio AS7341 , per questo mi è venuto il dubbio che non sia un trucco ma che si possa fare

Dove hai letto che usa quel sensore?...
Comunque, in una recensione leggo:

Questo spettrometro è ben costruito, ma il suo utilizzo per le "piante" è limitato, dato che ha una risoluzione di soli 10nm, è lento (tempo di risposta da 50ms a 1s) e, in caso di alta intensità, clipa il sensore o il dispositivo non riesce a misurare correttamente. Le immagini mostrano la stessa luce a soli 100W. La prima è a circa 60 cm di distanza, poi a un piede, e infine a 20 cm. Quindi, non è particolarmente luminosa (per i neonati). ovviamente non veramente utilizzabile per le piante che richiedono luce ad alta intensità in un secondo momento.

https://forum.arduino.cc/t/light-spectrometer-with-display/647739/9

Questo è a 18 canali! Già è interessante...

Il TSL1401 lo ho già usato 10 anni or sono in un misuratore di diametro filo da 1.75mm della stampante 3D

Mentre il tcs34725 lo ho già sperimentato in un misuratore di colore RGB

Eh sì il ls335 monta il sensore in oggetto, almeno così ho letto. Non avendo ancora un campione di AS7341 non posso fare nessuna prova e al momento ho solo una vaga idea per interpolare i “buchi” mancanti con valori “credibili”

Con una griglia di diffrazone decente, un sensore lineare decente, ed un (bel) po di lavoro, si puo ottenere uno spettrometro piuttosto preciso … serve costruirsi una fessura di ingresso ben fatta (ma si puo fare con una lametta da barba), una griglia di diffrazione decente (1600 o piu linee, meglio ancora se a specchio, ma costano), un contenitore stagno alla luce (possibilmente metallico, se di plastica serve rivestirlo di metallo o nastro di alluminio all’esterno, molte plastiche che appaiono nere all’occhio non lo sono agli infrarossi e falserebbero la lettura) e qualche specchio superficiale (recuperabile nei vecchi scanner, quelli nuovi non li usano piu) … ma se si vuole la precisione degli 1 / 2 nm, serve un monocromatore, si puo fare ma diventa piuttosto complicato sia meccanicamente (serve il gruppo vite di un micrometro) che elettricamente (serve un fotomoltiplicatore o un sistema simile a stato solido, e costano), oltre al fatto che bisogna scriversi il software per farlo funzionare … c’e’ anche ilproblema dell’intensita’ della luce da analizzare, se troppo scarsa non la rileva, se troppa satura il sensore, quindi sarebbe una buona cosa avere alcuni filtri neutri di diverse intensita’, giusto nel caso servano …

Sta tutto a vedere se si vuole costruire solo uno strumento indicativo, come il giocattolino linkato prima, o al limite questo “coso” https://it.aliexpress.com/item/1005010380850988.html , che anche se richiede un PC, e’ leggermente piu preciso (ma non certo quanto dichiarato, visto che dall’unica foto che ho trovato in rete, dentro c’e’ semplicemente una telecamerina USB a scheda con incollato sull’obiettivo quello che sembra quasi un dischetto di plastica ritagliato da un DVD delaminato a fare da griglia di diffrazione)

oppure se si vuole costruire uno strumento “vero” (per quanto artigianale), ed allora serve lavorarci su un po.

C’e’ anche da tenere in considerazione che la sensibilita’ dei sensore cmos non e’ assolutamente lineare, rispetto al colore (neppure per quelli monocromatici, anzi alcuni sono peggio, esempio, https://www.researchgate.net/figure/Spectral-response-of-the-CMOS-sensor_fig12_2977754 ), per cui servirebbe un bel po di calibrazione lato software, sia per quelli da PC che per quelli standalone …

EDIT: sono riuscito a trovare questa pagina che recensisce il “coso”, come si vede dallo spettro della lampada alogena, tutto ondulato, neppure il software che usano per la recensione compensa l’irregolarita’ della sensibilita’ della camera cmos (forse c’e’ un motivo se le unita’ da laboratorio partono da un paio di migliaia di Euro e salgono, come prezzi :smiling_face_with_horns: ) … questo pero’ non significa che non si possa provare a fare qualcosa di meglio :grin: .

Questo tuo parere mi è molto prezioso, allora prenderò il “coso” con theremino, farò la calibrazione con la lampada e il tutto mi servirà come base per lavorare sul sensore in oggetto, poi in base ai risultati iniziali ottenuti potrò eventualmente comperare il ls335 o il ls330 per vedere se quello che avrò fatto sarà migliorabile, mi sembra la strada più breve senza investire un patrimonio.

Grazie della celere risposta etemenanki

tieni presente pero’ anche quello che ho scritto, sull’irregolare curva di sensibilita’ dei sensori CMOS … inoltre probabilmente, se riesci a trovare una di quelle telecamerine usb2 1080p della Sonix o un qualche equivalente con OV4689 oppure OV2710 o simili (su aliexpress dovrebbero esserci, dopo cena provo a dare un’occhiata), potrebbe funzionare allo stesso modo spendendo molto meno (almeno per farci dei test decenti, incolli o fissi direttamente la griglia di diffrazione sull’obiettivo e la infili in un contenitore con una fessura, inclinata in modo che il software ti mostri lo spettro completo, poi si calibra l’inclinazione con sorgenti note) … una volta quelle camerine con uscita USB e con codifica video YUY2 le tiravano dietro a 10 o 15 Euro, ora non so …

Rieccomi, come sospettavo quella specifica camera non sembra essere piu distribuita (o non e’ facilmente reperibile), ma c’e’ una possibile alternativa, pure economica, https://it.aliexpress.com/item/1005012031696296.html , stessa risoluzione, stesso formato di sensore, stessa uscita YUV (YUY2), stessa velocita’ di acquisizione (5FPS con uscita YUV), stesso protocollo UVC (viene riconosciuta senza driver), le si trovano su aliexpress intorno ai 25 Euro (sono cresciute rispetto ad una decina di anni fa), e sono comunque abbastanza economiche per farci degli esperimenti :wink:

Alcuni suggerivano, anni fa, di usare una arducam, monocromatica, ma con i prezzi folli che girano per quelle camere, non mi sembra pratico.

L’unica cosa che bisogna controllare, e’ se c’e’ incollato sopra il sensore CMOS il filtro Bayer (un riquadro di vetro con riflessi colorati), e se c’e’, serve rimuoverlo … non e’ un’operazione facilissima, specie se per incollarlo hanno usato resina dura, ma e’ fattibile se si usa un po di cautela (ne ho rimossi una ventina tempo fa , per un lavoro particolare, e sono riuscito a romperne solo uno)

Ricercando in base al “coso” ho visto che alcuni usano la ov3660 , saranno tutte non lineari ma sembrano tutte simili se non identiche, se prendo il coso già fatto e poi sostituisco solo la CAM (se quella presente non è il massimo) potrebbe migliorare?!

“NI” … non dipende solo dalla camera, ma anche da parecchie altre cose.

Cerco di non scrivere molto, ma c’e’ davvero tanto da considerare, per realizzare uno spettrometro decente (anni fa ne feci uno con un sensore lineare in bianco e nero recuperato da un vecchio scanner)

Siccome anch’io sto raccogliendo informazioni in merito, perche’ tempo fa mi era venuta voglia di ricostruirmene uno un po migliore (anche perche’ ormai e’ pure disponibile il software gratuito), se vuoi ti espongo quello che ho scoperto fin’ora … considera pero’ che per me’ e’ un progetto “a lungo termine”, non ci sto sopra tutti i giorni.

Primo, con il software gratuito theremino spectrometer, si puo usare una webcam usb tipo OVC (quelle senza driver specifico), e fra le centinaia disponibili, le monocromatiche sarebbero le migliori (niente filtro Bayer che “spezzetta” la lettura delle varie bande creando possibili errori di lettura) … anni fa te le tiravano dietro con la fionda appena aprivi una pagina web :grin: , ma adesso sono diventate “di nicchia” ed i prezzi sono andati da 5 a 15 volte quelli di allora … le uniche che ho trovato, stamattina, che garantiscono che il sensore sia realmente BW nativo e non semplicemente con i colori azzerati (che avrebbe comunque il problema dato dal filtro Bayer), sono quelle che montano il sensore OV9281 … ce ne sono altre che “dichiarano” BW, come inizialment pensavo per la OV3660, ad esempio, ma proseguendo le ricerche ho trovato descrizioni contrastanti, con foto di riprese postate che mostrano immagini a colori, per cui non mi fido troppo.

Ci sono diversi modelli, mi starei orientando su una che ha il sensore separato dalla schedina USB (per comodita’ ) ma sto ancora raccogliendo dati in merito, appena ne so di piu ti aggiorno

Per la OV9281 invece anche le foto postate erano in bianco e nero, mi da un po piu di fiducia (purtroppo la omnivision non distribuisce datasheet completi di tutti i dati, se non sei un fabbricante oppure OEM nei loro database) … anche questo sensore ha il grosso limite di essere piccolo, 1/4 di pollice, quindi la massima larghezza utilizzabie e’ circa 3.8mm, sembra che il modo migliore di usarlo sia non montare un’obiettivo (che introdurrebbe distorsioni e filtrerebbe alcune bande sui lati IR ed UV, e montare la griglia di diffrazione direttamente davanti al sensore … ho fatto un paio di calcoli per una griglia da 300 linee per mm (solo perche’ ce l’ho gia in casa), e la distanza fra griglia e sensore dovrebbe essere fra 20 e 30 mm, ma dovro’ fare dei test una volta che avro’ tutto il materiale.

Altra cosa, che la camera abbia la possibilita’ di avere un’uscita non compressa (YUV, oppure YUY2) invece che solo MJPG, consente letture piu precise e regolari (la compressione “rovina” il segnale, un’uscita YUV oppure RAW ha la luminanza, che e’ poi l’unico parametro che interessa per lo spettrometro, non compressa e quindi non alterata)

Altra cosa importante che tutti i testi che ho trovato nel tempo menzionano, la fessura di ingresso deve essere il piu regolare e stretta possibile per garantire una buona risoluzione (si parla di 50 / 100 micron, quella del “coso di aliexpress” sembra larga fra 1 e 2 mm, ad occhio) … il vecchio e collaudato sistema dei due pezzi di lametta con i taglienti accostati, e l’uso di un’altro pezzo di lametta, o ancora meglio di un pezzo di nastro di acciaio da 50 micron di spessore in fase di montaggio, dovrebbe essere un modo decente per ottenere una fessura migliore di quella stampata in 3D in plastica.

Poi c’e’ l’allineamento fra fessura, griglia e sensore, che anche lui non e’ una cosa indifferente, e richiedera’ un po di aggiustamenti meccanici (ma comunque fattibili, con un po di pazienza)

Ed alla fine il sistema per tarare il software sul tuo assemblaggio … molti consigliano le lampade CFL a mercurio, ma personalmente credo che assemblero’, alla fine’ una fonte luminosa usando diodi laser che ho in casa e vetrini dicroici … metterei insieme 808nm di un diodo laser IR, 660nm di un laserino rosso, 532nm di un modulino verde, 455nm di un laser recuperato da un videoproiettore, e 405nm di un diodo proveniente da un vecchio masterizzatore BD … con un setup decente, avrei una fonte di luce mista, con cinque righe spettrali abbastanza precise, dovrebbero essere meglio dello spettro di una lampada CFL di dubbia qualita’.

Appena trovo altri dati, li posto.

Un’altro paio di dati, presi da vecchi testi di ottica … usando la camera senza obiettivo (contrariamente a quanto fa il “coso” di aliexpress) ed usando una griglia di diffrazione da 300 linee per mm, se non ho toppato i calcoli (che ammetto non essere il mio forte), dovrebbe bastare posizionare la griglia fra i 20 ed i 22 mm per coprire l’intero spettro fra 300 e 900 nm, un po piu ampio del 400/700 del visibile (le distanze reali poi andranno controllate sperimentalmente, e sara’ probabilmente necessario creare un secondo schermettino a fessura orizzontale direttamente davanti al sensore per limitare l’alteza della banda spettrale, che non ha larghezza uniforme, ad occhio e’ piu larga al centro e piu sottile ai lati, e questo potrebbe falsare le intensita’ … e’ chiamato aperture stop secondario, se ricordo bene) inoltre si eliminano le attenuazioni e le distorsioni delle lenti dell’obiettivo … potrebbe perfino uscirne qualcosa di decente, alla fine :grin:

Se puo servire a qualcosa, sono riuscito a trovare un datasheet un po piu completo dei "brief" pubblicitari da una pagina che di solito distribuisce Omnivision ... non e' ancora il massimo, ma almeno ci sono piu informazioni sul sensore OV9281 ... https://www.v-visiontech.com/web/userfiles/download/OV9281_CSP5_DS_1.01.pdf

Ho preso il coso, ora è in viaggio tra i vari scali aereoporti ali in Asia, finché ci sarà kerosene da mettere negli aerei, probabilmente entro fine mese lo proveremo :slight_smile:

@Etemenanki
Su eBay ci sono diversi sensori C12880MA a circa 170€ dal Giappone... Uhmm... :slightly_smiling_face: