Obsah:

Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov

Video: Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov

Video: Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov
Video: 3 простых способа цветокоррекции подводного видео | GoPro подводное плавание с Premiere Pro 2024, November
Anonim
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit
Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit

Pracoval som na niektorých zariadeniach, ktoré umožňujú meranie svetla a farieb, predtým a môžete nájsť veľa o teórii týchto meraní, návodoch tu a tu.

Spoločnosť Pimoroni nedávno vydala doplnok enviro: bit, doplnok pre mikro: bit, ktorý je dodávaný s mikrofónom MEMS na meranie hladiny zvuku, snímačom teploty/vlhkosti/tlaku vzduchu BME280 a snímačom svetla a farieb TCS3475 (RGBC). Po stranách farebného senzora sú navyše umiestnené dve diódy LED, ktoré umožňujú merať farbu predmetov odrazeným svetlom. Zostavenie nástroja, ktorý by vykonával tieto merania, nebolo nikdy jednoduchšie.

Tu by som chcel popísať, ako možno súbor enviro: bit použiť na meranie farby a svetla a skript MakeCode, ktorý ich umožňuje vykonávať. Kombinácia mikro: bit a enviro: bit je pekné a lacné zariadenie, ktoré vám umožní predvádzať princípy vedeckých meraní a hrať sa s nimi.

Tento návod je súčasťou súťaže „Dúha“. Ak sa vám páči, dajte mu prosím svoj hlas. ĎakujemH

Krok 1: Použitý materiál

Micro: bit, 13 GBP u Pimoroni.

Pimoroni Enviro: bit, 20 GBP v Pimoroni.

Výkon Pimoroni: bit, 6 GBP u Piomoroni. Na micro: bit môžete tiež použiť batérie alebo LiPo

Blok vzorky farebného filtra Rosco Cinegel. Svoju som dostal z Moduloru v Berlíne.

Farebné plastové poháre IKEA. IKEA, Berlín.

Divoké kvety. Lúka pri Postupime-Golme.

Krok 2: Skript MakeCode/JavaScript

Pimoroni vyvinul knižnicu pre Enviro: bit, a to ako pre kódovacie prostredie MakeCode/JavaScript, tak pre MicroPython. Tu som použil MakeCode, pretože skripty je možné nahrať priamo do súboru micro: bit a umožňujú blokové kódovanie.

Skript číta hodnoty červeného, zeleného a modrého (RGB) a čistého (C) kanála. Prvé sú uvedené v hodnotách od 0 do 255, druhé v celom rozsahu od 0 do asi 61 000.

Rozsah jasného kanála je veľmi široký a umožňuje meranie od jasného denného svetla po tmavú miestnosť.

Teraz nerozumiem všetkým podrobnostiam funkcie merania farieb, ale predpokladám, že majú implementované niektoré korekčné a normalizačné mechanizmy.

Najprv sa vezmú hodnoty všetkých štyroch kanálov. Aby bolo možné zobraziť výsledky na matici LED 5x5, namerané hodnoty sa použijú na umiestnenie výsledkov do 5 (RGB) alebo 10 (C) zásobníkov, ktoré sú reprezentované jednou diódou LED v jednom (R, G, B) alebo dva (C) riadky.

V prípade RGB je škálovanie lineárne a veľkosť intervalu každého zásobníka je široká 51 jednotiek. V prípade C je škálovanie logaritmické v 10 krokoch (log3, takže každý krok je 3-násobok predchádzajúceho). To umožňuje zobrazovať veľmi slabé a veľmi svetlé podmienky.

Stlačením tlačidla A sa zobrazia hodnoty R, G a B v číslach, stlačením B hodnota C. A+B aktivuje LED diódy a B ich vypne.

nech bR = 0 // koše

nechaj bG = 0 nechaj bB = 0 nechaj bS = 0 nechaj bC = 0 nechaj bCx = 0 nechaj S = 0 // namerané hodnoty nechaj C = 0 nechaj B = 0 nechaj G = 0 nechaj R = 0 základný. navždy (() => {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) {// Saturácia bCx = 4} else if (C> = 20000) {bCx = 3} else if (C> = 6600) {bCx = 2} else if (C> = 2200) {bCx = 1} else if 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} // write to 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)}})

Krok 3: Meranie RGB: Režim prenášaného svetla

Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla
Meranie RGB: Režim prenášaného svetla

Ako už bolo uvedené, existujú dva režimy merania farieb: spektroskopia prenášaného a odrazeného svetla. V režime prechádzajúceho svetla svetlo prechádza cez farebný filter alebo roztok k senzoru. Pri meraniach odrazeného svetla svetlo vyžarované napr. od diód LED sa odráža od predmetu a je detegované snímačom.

Hodnoty RGB sa potom zobrazia v 3. až 5. riadku mikro: bitovej 5x5 LED matice, pričom horné LED diódy predstavujú nízke, nižšie LED vysoké hodnoty.

Na experimenty, ktoré sú tu ukázané na meraniach prechádzajúceho svetla, som použil denné svetlo a pred senzor umiestnil farebné filtre zo vzorkovnice Rosco. Efekty môžete vidieť na displeji, najmä v červenom kanáli. Pozrite sa na obrázky a porovnajte vzory.

Ak si chcete prečítať skutočné hodnoty, stačí stlačiť tlačidlo A.

Krok 4: Odrazené svetlo RGB a merania jasu

Odrazené svetlo RGB a merania jasu
Odrazené svetlo RGB a merania jasu
Odrazené svetlo RGB a merania jasu
Odrazené svetlo RGB a merania jasu
Odrazené svetlo RGB a merania jasu
Odrazené svetlo RGB a merania jasu

Na meranie odrazeného svetla som zapol LED diódy (tlačidlo [A+B]) a pred senzor umiestnil niekoľko pestrofarebných kúskov detských pohárov IKEA. Ako je zrejmé z obrázkov, hodnoty RGB sa menia podľa očakávania.

Pri meraní jasu sú nízke hodnoty zobrazené v prvom, vysoké hodnoty v druhom rade. Nízke hodnoty v horných, vyššie hodnoty v dolných diódach. Presnú hodnotu odčítate stlačením tlačidla B.

Krok 5: Meranie odrazeného svetla: kvety

Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety
Merania odrazeného svetla: kvety

Z lúky som vybral divoké kvety a pokúsil som sa na nich vykonať niekoľko farebných meraní. Bol to mak, chrpa, hnedý knapweed, nástenný kvet a listnatý strom. Hodnoty RGB boli [R, G, B]:

  • žiadny [92, 100, 105]
  • mak (červený) [208, 98, 99]
  • chrpa (modrá) [93, 96, 138]
  • knapweed brown (orgován) [122, 97, 133]
  • žihľava stenová (žltá) [144, 109, 63]
  • list púpavy (zelený) [164, 144, 124]

Čo zodpovedá očakávaniam, aspoň pre prvé tri rastliny. Na zobrazenie farieb z hodnôt môžete použiť kalkulačku farieb, ako je tu.

Odporúča: