Sommario:

Misurazioni di luce e colore con il Pimoroni Enviro:bit per il Micro:bit: 5 passaggi
Misurazioni di luce e colore con il Pimoroni Enviro:bit per il Micro:bit: 5 passaggi

Video: Misurazioni di luce e colore con il Pimoroni Enviro:bit per il Micro:bit: 5 passaggi

Video: Misurazioni di luce e colore con il Pimoroni Enviro:bit per il Micro:bit: 5 passaggi
Video: Review of Pimoroni's Enviro+ board- Part2: LCD, noise level, light+proximity 2024, Dicembre
Anonim
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit
Misure di luce e colore con Pimoroni Enviro:bit per Micro:bit

In precedenza avevo lavorato su alcuni dispositivi che consentono misurazioni di luce e colore e potresti trovare molto sulla teoria alla base di tali misurazioni nelle istruzioni qui e qui.

Pimoroni ha recentemente rilasciato enviro:bit, un add-on per micro:bit, che include un microfono MEMS per la misurazione del livello sonoro, un sensore di temperatura/umidità/pressione dell'aria BME280 e un sensore di luce e colore (RGBC) TCS3475. Inoltre sono presenti due LED posti ai lati del sensore di colore, che consentono di misurare il colore degli oggetti tramite luce riflessa. Costruire da soli uno strumento per eseguire queste misurazioni non è mai stato così facile.

Vorrei qui descrivere come l'enviro:bit può essere utilizzato per le misurazioni del colore e della luce e lo script MakeCode che consente di eseguirle. La combinazione di micro:bit e enviro:bit è un dispositivo simpatico ed economico per dimostrare i principi delle misurazioni scientifiche e giocare con loro.

Questo istruibile fa parte del concorso "Arcobaleno". Se ti piace, per favore dai il tuo voto. GrazieH

Passaggio 1: materiali utilizzati

Micro:bit, 13 GBP da Pimoroni.

Pimoroni Enviro:bit, 20 GBP alla Pimoroni.

Pimoroni Power:bit, 6 GBP da Piomoroni. Puoi anche usare pacchi batteria o un LiPo per il micro: bit

Blocco campione per filtri colorati Rosco Cinegel. Ho preso il mio da Modulor, Berlino.

Bicchieri di plastica colorati IKEA. IKEA, Berlino.

Fiori selvatici. Un prato a Potsdam-Golm.

Passaggio 2: lo script MakeCode/JavaScript

Pimoroni ha sviluppato una libreria per Enviro:bit, sia per l'ambiente di codifica MakeCode/JavaScript che per MicroPython. Qui ho usato MakeCode, poiché gli script possono essere caricati direttamente nel micro: bit e consentono la codifica a blocchi.

Lo script legge i valori dei canali rosso, verde e blu (RGB) e chiaro (C). I primi sono dati in valori da 0 a 255, i secondi in tutto l'intervallo da 0 a circa 61000.

La gamma del canale chiaro è molto ampia e consente misurazioni dalla luce del giorno brillante a una stanza buia.

Ormai non capisco tutti i dettagli della funzione di misurazione del colore, ma presumo che abbiano implementato alcuni meccanismi di correzione e normalizzazione.

All'inizio vengono presi i valori di tutti e quattro i canali. Per poter visualizzare i risultati sulla matrice LED 5x5, i valori misurati vengono utilizzati per posizionare i risultati in 5 (RGB) o 10 (C) bin, che sono rappresentati da un LED in uno (R, G, B) o due (C) righe.

Nel caso di RGB, la scala è lineare e la dimensione dell'intervallo di ogni bin è larga 51 unità. Nel caso di C, la scala è logaritmica su 10 passaggi (log3, quindi ogni passaggio è il triplo del precedente). Ciò consente di visualizzare sia condizioni molto scure che molto luminose.

Premendo il pulsante A vengono visualizzati i valori R, G e B in numeri, premendo B il valore C. A+B attiva i LED e B li spegne.

let bR = 0 // contenitori

let bG = 0 let bB = 0 let bS = 0 let bC = 0 let bCx = 0 let S = 0 // valori misurati let C = 0 let B = 0 let G = 0 let R = 0 basic.forever(() => { if (input.buttonIsPressed(Button. AB)) { envirobit.setLEDs(envirobit. OnOff. On) } else if (input.buttonIsPressed(Button. A)) { basic.showString("R: " + R + " G: " + G + " B: " + B) } else if (input.buttonIsPressed(Button. B)) { basic.showString("C: " + C) envirobit.setLEDs(envirobit. OnOff. Off) } else { basic.pause(100) R = envirobit.getRed() G = envirobit.getGreen() B = envirobit.getBlue() C = envirobit.getLight() bC = 5 bCx = 5 if (R >= 204) { // binning, max 255 bR = 4 } else if (R >= 153) { bR = 3 } else if (R >= 102) { bR = 2 } else if (R >= 51) { bR = 1 } else { bR = 0 } if (G >= 204) { bG = 4 } else if (G >= 153) { bG = 3 } else if (G >= 102) { bG = 2 } else if (G >= 51) { bG = 1 } else { bG = 0 } if (B >= 204) { bB = 4 } else if (B >= 153) { bB = 3 } else if (B >= 102) { bB = 2 } else if (B >= 51) { bB = 1 } else { bB = 0 } if (C >= 60000) { // Saturazione bCx = 4 } else if (C >= 20000) { bCx = 3 } else if (C >= 6600) { bCx = 2 } else if (C >= 2200) { bCx = 1 } else if (C >= 729) { bCx = 0 } else if (C >= 243) { bC = 4 } else if (C >= 81) { bC = 3 } else if (C >= 27) { bC = 2 } else if (C >= 9) { bC = 1 } else { bC = 0 } // scrivi su led basic.clearScreen() if (bCx < 5) { led.plot(1, bCx) } else { led.plot (0, bC) } led.plot(2, bR) led.plot(3, bG) led.plot(4, bB) } })

Passaggio 3: eseguire misurazioni RGB: modalità luce trasmessa

Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa
Esecuzione di misurazioni RGB: modalità luce trasmessa

Come indicato in precedenza, esistono due modalità di misurazione del colore: spettroscopia a luce trasmessa e riflessa. Nella modalità luce trasmessa, la luce passa attraverso un filtro colorato o una soluzione al sensore. Nelle misurazioni della luce riflessa, la luce emessa, ad es. dai LED viene riflesso da un oggetto e viene rilevato dal sensore.

I valori RGB vengono quindi visualizzati nella 3a e 5a riga della matrice LED micro:bit 5x5, con i LED superiori che rappresentano i valori bassi, i LED inferiori i valori alti.

Per gli esperimenti mostrati qui sulle misurazioni della luce trasmessa ho usato la luce del giorno e ho posizionato filtri colorati da un pacchetto campione Rosco davanti al sensore. Puoi vedere gli effetti sul display, specialmente nel canale rosso. Dai un'occhiata alle immagini e confronta i modelli.

Per leggere i valori effettivi è sufficiente premere il pulsante A.

Passaggio 4: luce riflessa RGB e misurazioni della luminosità

Luce riflessa RGB e misurazioni della luminosità
Luce riflessa RGB e misurazioni della luminosità
Luce riflessa RGB e misurazioni della luminosità
Luce riflessa RGB e misurazioni della luminosità
Luce riflessa RGB e misurazioni della luminosità
Luce riflessa RGB e misurazioni della luminosità

Per le misurazioni della luce riflessa ho acceso i LED (pulsante [A+B]) e ho posizionato alcuni pezzi colorati di tazze per bambini IKEA davanti al sensore. Come si può vedere dalle immagini, i valori RGB stanno cambiando come previsto.

Per le misurazioni della luminosità, i valori bassi vengono visualizzati nella prima riga, i valori alti nella seconda riga. Valori bassi in alto, valori più alti dai LED inferiori. Per leggere il valore preciso premere il pulsante B.

Passaggio 5: misurazioni della luce riflessa: fiori

Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori
Misure di luce riflessa: fiori

Ho raccolto dei fiori selvatici da un prato e ho provato a eseguire alcune misurazioni del colore su di essi. Sono stati papavero, fiordaliso, fiordaliso marrone, Fiordaliso e una foglia di dilandelon. I valori RGB erano [R, G, B]:

  • nessuno [92, 100, 105]
  • papavero (rosso) [208, 98, 99]
  • fiordaliso (blu) [93, 96, 138]
  • fiordaliso marrone (lilla) [122, 97, 133]
  • arkweed (giallo) [144, 109, 63]
  • foglia di tarassaco (verde) [164, 144, 124]

Il che corrisponde alle aspettative, almeno per i primi tre impianti. Per visualizzare i colori dai valori, puoi usare un calcolatore di colori, come quello qui.

Consigliato: