Sommario:
- Passaggio 1: materiali utilizzati
- Passaggio 2: lo script MakeCode/JavaScript
- Passaggio 3: eseguire misurazioni RGB: modalità luce trasmessa
- Passaggio 4: luce riflessa RGB e misurazioni della luminosità
- Passaggio 5: misurazioni della luce riflessa: fiori
Video: Misurazioni di luce e colore con il Pimoroni Enviro:bit per il Micro:bit: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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à
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
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:
Utilizzo di Pimoroni Enviro+ FeatherWing con Adafruit Feather NRF52840 Express: 8 passaggi
Utilizzo di Pimoroni Enviro+ FeatherWing con Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing è una scheda piena di sensori progettati per funzionare con la serie di schede Adafruit Feather. È un punto di partenza utile per chiunque sia interessato al monitoraggio ambientale, all'inquinamento atmosferico e alla raccolta di dati. IO
Misurazioni del sensore di corrente ACS724 con Arduino: 4 passaggi
Misurazioni del sensore di corrente ACS724 con Arduino: in questo tutorial sperimenteremo il collegamento di un sensore di corrente ACS724 a un Arduino per effettuare misurazioni di corrente. In questo caso il sensore di corrente è una varietà +/- 5A che emette 400 mv/A. L'Arduino Uno ha un ADC a 10 bit, quindi buone domande
IoT Hydroponics - Utilizzo di Watson di IBM per misurazioni di PH ed EC: 7 passaggi (con immagini)
IoT Hydroponics - Utilizzo di Watson di IBM per misurazioni di PH ed EC: questa istruzione mostrerà come monitorare EC, pH e temperatura di una configurazione idroponica e caricare i dati sul servizio Watson di IBM. Watson è libero di iniziare. Ci sono piani a pagamento, ma il piano gratuito è più che sufficiente per questo progetto
Luce notturna che cambia colore con Ardruino 101: 4 passaggi (con immagini)
Luce notturna che cambia colore usando Ardruino 101: in questo progetto realizzerai una lampada da notte usando ardruino, strisce Adafruit neo rgb e una stampante 3D. Nota che questo introvabile è puramente per il mio progetto scolastico. Il codice per questo progetto è basato su un altro progetto. Detto questo non sono un ex
Luce Shadowbox che cambia colore: 5 passaggi (con immagini)
Luce Shadowbox che cambia colore: dopo le vacanze, ci siamo ritrovati con un eccesso di cornici Shadowbox inutilizzate di Ikea. Quindi, ho deciso di fare un regalo di compleanno per mio fratello con uno di loro. L'idea era quella di realizzare una caratteristica illuminante alimentata a batteria con il logo della sua band e