Kazalo:
- Korak: Uporabljeni materiali
- 2. korak: skript MakeCode/JavaScript
- 3. korak: Izvajanje meritev RGB: Način oddane svetlobe
- 4. korak: meritve odsevne svetlobe RGB in svetlosti
- 5. korak: Meritve odsevne svetlobe: Rože
Video: Meritve svetlobe in barve s Pimoroni Enviro: bit za Micro: bit: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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
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
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
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:
Uporaba Pimoroni Enviro+ FeatherWing s perjem Adafruit NRF52840 Express: 8 korakov
Uporaba Pimoroni Enviro+ FeatherWing z Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing je plošča, polna senzorjev, namenjenih za delo s serijo plošč Adafruit Feather. To je koristen kraj za začetek za vse, ki jih zanima spremljanje okolja, onesnaževanje zraka in zbiranje podatkov. JAZ
Vroča sedežna garnitura: Ogrevana blazina, ki spreminja barve: 7 korakov (s slikami)
Vroči sedež: Zgradite ogrevano blazino, ki spreminja barvo: Ali želite biti nazdravi v hladnih zimskih dneh? Hot Seat je projekt, ki uporablja dve najbolj vznemirljivi možnosti e -tekstila - spremembo barve in toploto! Izdelali bomo sedežno blazino, ki se bo ogrela, in ko bo pripravljena za odhod, bo pokazala
LED za spreminjanje barve: 13 korakov
LED za spreminjanje barve: nalogo sem ustvaril prototip z uporabo neke vrste senzorja za ustvarjanje izhoda. Odločil sem se, da bom uporabil fotocelico, ki meri količino svetlobe v okolju, in RGB LED kot izhod. Vedel sem, da želim vključiti sposobnost LED
Meritve trenutnega senzorja ACS724 z Arduinom: 4 koraki
Meritve trenutnega senzorja ACS724 z Arduinom: V tem navodilu bomo eksperimentirali s priključitvijo tokovnega senzorja ACS724 na Arduino za meritve toka. V tem primeru je trenutni senzor sorta +/- 5A, ki oddaja 400 mv/A. Arduino Uno ima 10-bitni ADC, zato dobra vprašanja
IoT Hydroponics - Uporaba IBM -ovega Watsona za meritve PH in EC: 7 korakov (s slikami)
IoT Hydroponics - Uporaba IBM -ovega Watsona za meritve PH in EC: Ta navodila bodo pokazala, kako spremljati EC, pH in temperaturo nastavitve hidroponike ter naložiti podatke v IBM -ovo storitev Watson. Watson je prost za začetek. Obstajajo plačljivi načrti, vendar je brezplačni načrt več kot dovolj za ta projekt