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, Decembar
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 svjetlosti 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 nivoa zvuka, BME280 senzorom temperature/vlažnosti/tlaka zraka i TCS3475 senzorom svjetla i boje (RGBC). Osim toga, sa LED senzora u boji nalaze se i dvije LED diode koje omogućavaju 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 dozvoljava njihovo izvođenje. Kombinacija micro: bita i enviro: bita lijep je i jeftin uređaj koji praktično demonstrira principe naučnih mjerenja i igra se s njima.

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

Korak 1: Korišteni materijali

Micro: bit, 13 GBP na Pimoroniju.

Pimoroni Enviro: bit, 20 GBP u Pimoroniju.

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

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

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

Divlje cveć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 direktno na micro: bit i omogućavaju 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 je vrlo širok i omogućava mjerenje od jakog dnevnog svjetla do tamne prostorije.

Do sada ne razumijem sve detalje funkcije mjerenja boje, ali pretpostavljam da imaju implementirane neke mehanizme za korekciju i normalizaciju.

U početku se uzimaju vrijednosti sva četiri kanala. Da bi se mogli prikazati rezultati na 5x5 LED matrici, izmjerene vrijednosti se koriste 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 kante široka je 51 jedinicu. U slučaju C, skaliranje je logaritamsko u 10 koraka (log3, tako da je svaki korak trostruki od prethodnog). Ovo omogućava da se prikazuju vrlo mračni i vrlo svijetli uvjeti.

Pritiskom na tipku 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 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)} inače 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: Režim propuštenog svjetla

Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim propuštenog svjetla
Snimanje RGB mjerenja: Režim 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. Pri mjerenjima reflektirane svjetlosti emitirana je svjetlost npr. od LED dioda se reflektira od objekta i detektira ih senzor.

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

Za eksperimente prikazane ovdje na mjerenjima propuštene svjetlosti koristio sam dnevno svjetlo i postavio filtere u boji iz Roscovog uzorka ispred senzora. Efekte možete vidjeti na ekranu, posebno u crvenom kanalu. Pogledajte slike i uporedite uzorke.

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

Korak 4: Mjerenje reflektiranog svjetla RGB i svjetline

Mjerenje reflektiranog svjetla RGB i svjetline
Mjerenje reflektiranog svjetla RGB i svjetline
Mjerenje reflektiranog svjetla RGB i svjetline
Mjerenje reflektiranog svjetla RGB i svjetline
Mjerenje reflektiranog svjetla RGB i svjetline
Mjerenje reflektiranog svjetla RGB i svjetline

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

Za mjerenje svjetline, niske vrijednosti su prikazane u prvom, a visoke vrijednosti u drugom redu. Niske vrijednosti u gornjim, veće vrijednosti donje LED diode. Da biste očitali tačnu vrijednost, pritisnite dugme 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 koristiti kalkulator boja, kao što je ovaj ovdje.

Preporučuje se: