Sisukord:

Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bit: 5 sammu
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bit: 5 sammu

Video: Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bit: 5 sammu

Video: Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bit: 5 sammu
Video: Valgus ja varjud | VIDEOÕPS Füüsika. Valgusõpetus #2 2024, November
Anonim
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks
Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bitti jaoks

Olin varem töötanud mõningate seadmetega, mis võimaldavad valguse ja värvide mõõtmist, ja võite leida palju sellistest mõõtmistest koosneva teooria kohta. Juhised siin ja siin.

Pimoroni avaldas hiljuti mikro: bitile lisandmooduli enviro: bit, mis on varustatud helitaseme mõõtmiseks mõeldud MEMS-mikrofoniga, BME280 temperatuuri/niiskuse/õhurõhu anduriga ning valgus- ja värvianduriga TCS3475 (RGBC). Lisaks on värvisensori külgedel kaks LED -i, mis võimaldavad mõõta objektide värvi peegeldunud valguse abil. Nende mõõtmiste tegemiseks tööriista ehitamine ise pole kunagi olnud lihtsam.

Siinkohal tahaksin kirjeldada, kuidas keskkonda enviro: bit saab kasutada värvide ja valguse mõõtmiseks ning MakeCode'i skripti, mis võimaldab neid teostada. Micro: bit ja enviro: bit kombinatsioon on kena ja odav seade teaduslike mõõtmiste põhimõtete praktiliseks demonstreerimiseks ja nendega mängimiseks.

See juhend on osa võistlusest "Vikerkaar". Kui teile meeldib, palun andke talle oma hääl. AitähH

Samm: kasutatud materjalid

Mikro: bit, 13 GBP Pimoronis.

Pimoroni Enviro: natuke, 20 GBP Pimoronis.

Pimoroni Power: natuke, 6 GBP Piomoronis. Samuti võite micro: bit'i jaoks kasutada akusid või LiPo -d

Rosco Cinegeli värvifiltri näidisplokk. Omani sain Modulorist, Berliinist.

IKEA värvilised plasttopsid. IKEA, Berliin.

Metsikud lilled. Heinamaa Potsdam-Golmis.

Samm: MakeCode/JavaScripti skript

Pimoroni on Enviro: bit jaoks välja töötanud raamatukogu nii MakeCode/JavaScripti kodeerimiskeskkonna kui ka MicroPython jaoks. Siin olen kasutanud MakeCode'i, kuna skripte saab üles laadida otse mikro: bitti ja see võimaldab plokkide kodeerimist.

Skript loeb punase, rohelise ja sinise (RGB) ning selge (C) kanali väärtused. Esimesed on esitatud väärtustes 0–255, teine kogu vahemikus 0–61000.

Selge kanali ulatus on väga lai ja võimaldab mõõta eredast päevavalgusest pimedasse ruumi.

Nüüdseks ei mõista ma kõiki värvimõõtmisfunktsiooni üksikasju, kuid eeldan, et neil on mõned parandus- ja normaliseerimismehhanismid rakendatud.

Alguses võetakse kõigi nelja kanali väärtused. Tulemuste kuvamiseks 5x5 LED -maatriksil kasutatakse mõõdetud väärtusi tulemuste paigutamiseks 5 (RGB) või 10 (C) mahutisse, mida tähistab üks LED ühes (R, G, B) või kaks (C) rida.

RGB puhul on skaleerimine lineaarne ja iga prügikasti intervalli suurus on 51 ühikut lai. C puhul on skaleerimine logaritmiline 10 sammu ulatuses (log3, seega on iga samm eelmise 3-kordne). See võimaldab kuvada väga hämaraid ja väga eredaid tingimusi.

Nupule A vajutades kuvatakse R, G ja B väärtused numbritega, vajutades B väärtust C. A+B aktiveerib valgusdioodid ja B lülitab need välja.

olgu bR = 0 // prügikasti

olgu bG = 0 lase bB = 0 lase bS = 0 lase bC = 0 lase bCx = 0 lase S = 0 // mõõdetud väärtustel lasku C = 0 lase B = 0 las G = 0 lase R = 0 aluselisel. 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) {// Küllastus 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} // kirjutama 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. samm: RGB mõõtmiste tegemine: edastatud valguse režiim

RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim
RGB mõõtmiste tegemine: edastatud valguse režiim

Nagu varem märgitud, on värvimõõtmiseks kaks režiimi: läbilaske- ja peegeldunud valguse spektroskoopia. Läbiva valguse režiimis läbib valgus andurit värvilise filtri või lahuse kaudu. Peegeldunud valguse mõõtmistel kiirgab valgust nt. valgusdioodidest peegeldub objekt ja andur tuvastab selle.

Seejärel kuvatakse RGB väärtused micro: bit 5x5 LED maatriksi 3. kuni 5. reale, kusjuures ülemised LED -id tähistavad madalat, alumised LED -id kõrgeid väärtusi.

Siin näidatud läbiva valguse mõõtmise katsete jaoks kasutasin päevavalgust ja asetasin Rosco proovipakist värvilised filtrid anduri ette. Efekte näete ekraanil, eriti punases kanalis. Vaata pilte ja võrdle mustreid.

Tegelike väärtuste lugemiseks vajutage lihtsalt nuppu A.

4. samm: peegeldunud valguse RGB ja heleduse mõõtmised

Peegeldatud valguse RGB ja heleduse mõõtmised
Peegeldatud valguse RGB ja heleduse mõõtmised
Peegeldunud valguse RGB ja heleduse mõõtmised
Peegeldunud valguse RGB ja heleduse mõõtmised
Peegeldunud valguse RGB ja heleduse mõõtmised
Peegeldunud valguse RGB ja heleduse mõõtmised

Peegeldunud valguse mõõtmiseks lülitasin sisse LED -id (nupp [A+B]) ja asetasin anduri ette mõned erksavärvilised tükid IKEA lastetopse. Nagu piltidelt näha, muutuvad RGB väärtused ootuspäraselt.

Heleduse mõõtmiseks kuvatakse madalad väärtused esimeses, kõrged väärtused teises reas. Madalad väärtused ülemises, kõrgemad väärtused alumiste LED -ide poolt. Täpse väärtuse lugemiseks vajutage nuppu B.

5. samm: peegeldunud valguse mõõtmised: lilled

Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled
Peegeldunud valguse mõõtmised: lilled

Korjasin heinamaalt mõned metsikud lilled ja proovisin neile värvimõõtmisi teha. See on olnud moon, rukkilill, pruun pähklipuu, müürik ja dilandelleht. RGB väärtused olid [R, G, B]:

  • pole [92, 100, 105]
  • moon (punane) [208, 98, 99]
  • rukkilill (sinine) [93, 96, 138]
  • pruun pähkel (lilla) [122, 97, 133]
  • seinahark (kollane) [144, 109, 63]
  • võililleleht (roheline) [164, 144, 124]

Mis vastab ootustele, vähemalt kolme esimese taime puhul. Väärtuste värvide kuvamiseks võite kasutada siin olevat värvikalkulaatorit.

Soovitan: