Sadržaj:

Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit: 5 koraka
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit: 5 koraka

Video: Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit: 5 koraka

Video: Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit: 5 koraka
Video: Ako imate iPhone, OVO MORATE ISPROBATI! 2024, Studeni
Anonim
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit
Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit

Prije sam radio na nekim uređajima koji dopuštaju mjerenje svjetla i boje, a ovdje i ovdje možete pronaći mnogo o teoriji koja stoji iza takvih mjerenja.

Pimoroni je nedavno objavio enviro: bit, dodatak za micro: bit, koji dolazi s MEMS mikrofonom za mjerenje razine zvuka, BME280 osjetnikom temperature/vlažnosti/tlaka zraka i TCS3475 senzorom svjetla i boje (RGBC). Osim toga, dvije LED diode postavljene su sa strane senzora u boji, što omogućuje mjerenje boje objekata prema reflektiranoj svjetlosti. Sami izradite alat za izvođenje ovih mjerenja nikada nije bilo lakše.

Ovdje bih želio opisati kako se enviro: bit može koristiti za mjerenje boja i svjetla i MakeCode skripta koja omogućuje njihovo izvršavanje. Kombinacija micro: bita i enviro: bita lijep je i jeftin uređaj koji praktično demonstrira principe znanstvenih mjerenja i igra se s njima.

Ova instrukcija dio je natjecanja "Duga". Ako vam se sviđa, dajte svoj glas. Hvala

Korak 1: Korišteni materijali

Micro: bit, 13 GBP u Pimoroniju.

Pimoroni Enviro: bit, 20 GBP u Pimoroniju.

Pimoroni Power: bit, 6 GBP u Piomoroniju. Za micro: bit možete koristiti i baterije ili LiPo

Blok uzorka filtra u boji Rosco Cinegel. Ja sam svoje nabavio iz Modulora u Berlinu.

Plastične čaše u boji IKEA. IKEA, Berlin.

Divlje cvijeće. Livada u Potsdam-Golmu.

Korak 2: MakeCode/JavaScript skripta

Pimoroni je razvio biblioteku za Enviro: bit, kako za okruženje kodiranja MakeCode/JavaScript, tako i za MicroPython. Ovdje sam koristio MakeCode, jer se skripte mogu učitati izravno u micro: bit i dopuštaju blok kodiranje.

Skripta čita vrijednosti crvenog, zelenog i plavog (RGB) i čistog (C) kanala. Prvi su dati u vrijednostima od 0 do 255, drugi u cijelom rasponu od 0 do oko 61000.

Raspon čistog kanala vrlo je širok i omogućuje mjerenje od jakog dnevnog svjetla do tamne prostorije.

Do sada ne razumijem sve detalje funkcije mjerenja boje, ali pretpostavljam da imaju implementirane neke mehanizme ispravljanja i normalizacije.

U početku se uzimaju vrijednosti sva četiri kanala. Kako bi se rezultati mogli prikazati na LED matrici 5x5, izmjerene vrijednosti koriste se za postavljanje rezultata u 5 (RGB) ili 10 (C) spremnika, koji su predstavljeni jednom LED u bilo kojoj (R, G, B) ili dva (C) reda.

U slučaju RGB -a, skaliranje je linearno, a veličina intervala svake ladice široka je 51 jedinicu. U slučaju C, skaliranje je logaritamsko u 10 koraka (log3, tako da je svaki korak trostruki od prethodnog). To omogućuje prikaz vrlo tamnih i vrlo svijetlih uvjeta.

Pritiskom na gumb A vrijednosti R, G i B prikazuju se u brojkama, pritiskom na B vrijednost C. A+B aktivira LED diode, a B ih isključuje.

neka je bR = 0 // kante

neka je bG = 0 neka je bB = 0 neka je bS = 0 neka je bC = 0 neka je bCx = 0 neka je S = 0 // izmjerene vrijednosti neka je C = 0 neka je B = 0 neka je G = 0 neka je R = 0 osnovno.zauvijek (() => {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) {// Zasićenje 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} // piši na 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)}})

Korak 3: Uzimanje RGB mjerenja: Način propuštenog svjetla

Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla
Uzimanje RGB mjerenja: Način propuštenog svjetla

Kao što je ranije naznačeno, postoje dva načina mjerenja boje: spektroskopija propuštene i reflektirane svjetlosti. U načinu propuštenog svjetla svjetlo prolazi kroz obojeni filter ili otopinu do senzora. U mjerenjima reflektirane svjetlosti, svjetlost je emitirala npr. od LED se reflektira od objekta i detektira senzor.

RGB vrijednosti tada se prikazuju u 3. do 5. retku micro: bit 5x5 LED matrice, pri čemu gornje LED diode predstavljaju niske, a donje visoke vrijednosti.

Za pokuse prikazane ovdje na mjerenjima propuštene svjetlosti koristio sam dnevno svjetlo i postavio filtere u boji iz Roscovog uzorka ispred senzora. Učinke možete vidjeti na zaslonu, posebno u crvenom kanalu. Pogledajte slike i usporedite uzorke.

Da biste pročitali stvarne vrijednosti, samo pritisnite gumb A.

Korak 4: Mjerenje reflektiranog svjetla RGB i svjetline

RGB reflektirano svjetlo i mjerenje svjetline
RGB reflektirano svjetlo i mjerenje svjetline
RGB reflektirano svjetlo i mjerenje svjetline
RGB reflektirano svjetlo i mjerenje svjetline
RGB reflektirano svjetlo i mjerenje svjetline
RGB reflektirano svjetlo i mjerenje svjetline

Za mjerenje reflektiranog svjetla uključio sam LED diode (gumb [A+B]) i ispred senzora postavio neke komade IKEA dječjih šalica jarkih boja. Kao što se može vidjeti na slikama, RGB vrijednosti se mijenjaju očekivano.

Za mjerenje svjetline, niske vrijednosti prikazuju se u prvom, a visoke vrijednosti u drugom retku. Niske vrijednosti u gornjim, veće vrijednosti u donjim LED diodama. Za očitanje točne vrijednosti pritisnite gumb B.

Korak 5: Mjerenje reflektirane svjetlosti: Cvijeće

Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće
Mjerenje reflektirane svjetlosti: Cvijeće

Ubrao sam neko divlje cvijeće s livade i pokušao izvršiti neka mjerenja boje na njima. Bio je to mak, kukuruz, smeđa knapweed, zidna harkva i list dilandelona. RGB vrijednosti su bile [R, G, B]:

  • nema [92, 100, 105]
  • mak (crveni) [208, 98, 99]
  • kukuruz (plavi) [93, 96, 138]
  • smeđi knapweed (jorgovan) [122, 97, 133]
  • zidna harkva (žuta) [144, 109, 63]
  • list maslačka (zeleni) [164, 144, 124]

Što odgovara očekivanjima, barem za prve tri biljke. Za prikaz boja iz vrijednosti možete upotrijebiti kalkulator boja, kao ovaj ovdje.

Preporučeni: