Kazalo:

Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit: 5 korakov
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit: 5 korakov

Video: Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit: 5 korakov

Video: Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit: 5 korakov
Video: Установка маяков под штукатурку. Углы 90 градусов. #12 2024, November
Anonim
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit
Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit

Prej sem delal na nekaterih napravah, ki omogočajo meritve svetlobe in barve, in tu in tukaj boste morda izvedeli veliko o teoriji, ki stoji za takšnimi meritvami.

Pimoroni je pred kratkim izdal enviro: bit, dodatek za micro: bit, ki je opremljen z mikrofonom MEMS za merjenje ravni zvoka, senzorjem temperature/vlažnosti/zračnega tlaka BME280 ter svetlobnim in barvnim senzorjem TCS3475 (RGBC). Poleg tega sta na straneh barvnega senzorja nameščeni dve LED diodi, ki omogočata merjenje barve predmetov z odbojno svetlobo. Izdelava orodja za izvajanje teh meritev nikoli ni bila lažja.

Tu bi rad opisal, kako se lahko enviro: bit uporablja za meritve barv in svetlobe ter skript MakeCode, ki to omogoča. Kombinacija micro: bit in enviro: bit je prijetna in poceni naprava, ki praktično prikazuje načela znanstvenih meritev in se z njimi igra.

Ta navodila so del tekmovanja "Mavrica". Če vam je všeč, dajte svoj glas. Hvala

Korak: Uporabljeni materiali

Micro: bit, 13 GBP pri Pimoroniju.

Pimoroni Enviro: bit, 20 GBP pri Pimoroniju.

Moč Pimoronija: bit, 6 GBP pri Piomoroniju. Za micro: bit lahko uporabite tudi baterije ali LiPo

Vzorec bloka barvnega filtra Rosco Cinegel. Jaz sem svojega dobil iz Modulorja v Berlinu.

IKEA barvne plastične skodelice. IKEA, Berlin.

Divje cvetje. Travnik v Potsdam-Golmu.

2. korak: skript MakeCode/JavaScript

Pimoroni je razvil knjižnico za Enviro: bit, tako za kodno okolje MakeCode/JavaScript kot za MicroPython. Tukaj sem uporabil MakeCode, saj se lahko skripti naložijo neposredno v micro: bit in omogočajo blokovno kodiranje.

Skript bere vrednosti rdečega, zelenega in modrega (RGB) ter čistega (C) kanala. Prvi so podani v vrednostih od 0 do 255, drugi v celotnem razponu od 0 do približno 61000.

Razpon čistega kanala je zelo širok in omogoča meritve od močne dnevne svetlobe do temne sobe.

Do zdaj ne razumem vseh podrobnosti funkcije merjenja barv, vendar predvidevam, da imajo vpeljane nekatere mehanizme za popravek in normalizacijo.

Najprej se vzamejo vrednosti vseh štirih kanalov. Za prikaz rezultatov na matriki LED 5x5 se izmerjene vrednosti uporabijo za postavitev rezultatov v 5 (RGB) ali 10 (C) zaboje, ki jih predstavlja ena LED v eni (R, G, B) ali dve (C) vrstici.

V primeru RGB je merjenje linearno in velikost intervala vsakega koša je široka 51 enot. V primeru C je skaliranje logaritmično v 10 korakih (log3, zato je vsak korak trikratnik prejšnjega). To omogoča prikaz zelo zatemnjenih in zelo svetlih pogojev.

S pritiskom na gumb A se vrednosti R, G in B prikažejo v številkah, s pritiskom na B pa vrednost C. A+B aktivira LED in B jih ugasne.

naj bR = 0 // koši

Naj bG = 0 Naj => {if (input.buttonIsPressed (Button. AB)) {envirobit.setLEDs (envirobit. OnOff. On)} else if (input.buttonIsPressed (Button. A)) {basic.showString ("R:" + R + "G:" + G + "B:" + B)} drugače če (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) {// Saturation 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 v 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)}})

3. korak: Izvajanje meritev RGB: Način oddane svetlobe

Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe
Izvajanje meritev RGB: način oddane svetlobe

Kot smo že omenili, obstajata dva načina merjenja barv: spektroskopija prepuščene in odbite svetlobe. V načinu prepuščene svetlobe svetloba gre skozi barvni filter ali raztopino do senzorja. Pri meritvah odbite svetlobe je svetloba oddajala npr. od LED se odbije od predmeta in ga zazna senzor.

Vrednosti RGB se nato prikažejo v 3. do 5. vrstici matrike LED: micro: bit 5x5, pri čemer zgornje LED predstavljajo nizke, spodnje LED visoke vrednosti.

Za poskuse, prikazane tukaj pri meritvah prepuščene svetlobe, sem uporabil dnevno svetlobo in pred senzor postavil barvne filtre iz vzorčnega paketa Rosco. Učinke lahko vidite na zaslonu, zlasti v rdečem kanalu. Oglejte si slike in primerjajte vzorce.

Če želite prebrati dejanske vrednosti, samo pritisnite gumb A.

4. korak: meritve odsevne svetlobe RGB in svetlosti

RGB reflektirana svetloba in meritve svetlosti
RGB reflektirana svetloba in meritve svetlosti
RGB reflektirana svetloba in meritve svetlosti
RGB reflektirana svetloba in meritve svetlosti
RGB reflektirana svetloba in meritve svetlosti
RGB reflektirana svetloba in meritve svetlosti

Za meritve odbite svetlobe sem prižgal LED (gumb [A+B]) in pred senzor postavil nekaj svetlih kosov otroških skodelic IKEA. Kot je razvidno iz slik, se vrednosti RGB spreminjajo po pričakovanjih.

Za meritve svetlosti so v prvi vrstici prikazane nizke vrednosti, visoke v drugi vrstici. Nizke vrednosti v zgornjih, višje vrednosti pri spodnjih LED. Če želite prebrati natančno vrednost, pritisnite gumb B.

5. korak: Meritve odsevne svetlobe: Rože

Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje
Meritve odsevne svetlobe: Cvetje

Na travniku sem pobral nekaj divjih cvetov in na njih poskušal izvesti nekaj barvnih meritev: mak, koruznico, rjavo knapweed, stensko harkvijo in list dilandelona. Vrednosti RGB so bile [R, G, B]:

  • nič [92, 100, 105]
  • mak (rdeč) [208, 98, 99]
  • koruza (modra) [93, 96, 138]
  • rjavi knapweed (lila) [122, 97, 133]
  • stenski hrvač (rumen) [144, 109, 63]
  • list dandelona (zelen) [164, 144, 124]

Kar ustreza pričakovanjem, vsaj za prve tri rastline. Za prikaz barv iz vrednosti lahko uporabite barvni kalkulator, kot je prikazan tukaj.

Priporočena: