Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: MakeCode/JavaScript skripta
- Korak 3: Uzimanje RGB mjerenja: Način propuštenog svjetla
- Korak 4: Mjerenje reflektiranog svjetla RGB i svjetline
- Korak 5: Mjerenje reflektirane svjetlosti: Cvijeće
Video: Mjerenje svjetla i boje s Pimoroni Enviro: bit za Micro: bit: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Prije sam radio na nekim uređajima koji dopuštaju mjerenje svjetla 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 razine zvuka, BME280 osjetnikom temperature/vlažnosti/tlaka zraka i TCS3475 senzorom svjetla i boje (RGBC). Osim toga, dvije LED diode postavljene su sa strane senzora u boji, što omogućuje 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 omogućuje njihovo izvršavanje. Kombinacija micro: bita i enviro: bita lijep je i jeftin uređaj koji praktično demonstrira principe znanstvenih mjerenja i igra se s njima.
Ova instrukcija dio je natjecanja "Duga". Ako vam se sviđa, dajte svoj glas. Hvala
Korak 1: Korišteni materijali
Micro: bit, 13 GBP u Pimoroniju.
Pimoroni Enviro: bit, 20 GBP u Pimoroniju.
Pimoroni Power: bit, 6 GBP u Piomoroniju. Za micro: bit možete koristiti i baterije ili LiPo
Blok uzorka filtra u boji Rosco Cinegel. Ja sam svoje nabavio iz Modulora u Berlinu.
Plastične čaše u boji IKEA. IKEA, Berlin.
Divlje cvijeć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 izravno u micro: bit i dopuštaju 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 vrlo je širok i omogućuje mjerenje od jakog dnevnog svjetla do tamne prostorije.
Do sada ne razumijem sve detalje funkcije mjerenja boje, ali pretpostavljam da imaju implementirane neke mehanizme ispravljanja i normalizacije.
U početku se uzimaju vrijednosti sva četiri kanala. Kako bi se rezultati mogli prikazati na LED matrici 5x5, izmjerene vrijednosti koriste se 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 ladice široka je 51 jedinicu. U slučaju C, skaliranje je logaritamsko u 10 koraka (log3, tako da je svaki korak trostruki od prethodnog). To omogućuje prikaz vrlo tamnih i vrlo svijetlih uvjeta.
Pritiskom na gumb 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 osnovno.zauvijek (() => {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) {// 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: Način 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. U mjerenjima reflektirane svjetlosti, svjetlost je emitirala npr. od LED se reflektira od objekta i detektira senzor.
RGB vrijednosti tada se prikazuju u 3. do 5. retku micro: bit 5x5 LED matrice, pri čemu gornje LED diode predstavljaju niske, a donje visoke vrijednosti.
Za pokuse prikazane ovdje na mjerenjima propuštene svjetlosti koristio sam dnevno svjetlo i postavio filtere u boji iz Roscovog uzorka ispred senzora. Učinke možete vidjeti na zaslonu, posebno u crvenom kanalu. Pogledajte slike i usporedite uzorke.
Da biste pročitali stvarne vrijednosti, samo pritisnite gumb A.
Korak 4: Mjerenje reflektiranog svjetla RGB i svjetline
Za mjerenje reflektiranog svjetla uključio sam LED diode (gumb [A+B]) i ispred senzora postavio neke komade IKEA dječjih šalica jarkih boja. Kao što se može vidjeti na slikama, RGB vrijednosti se mijenjaju očekivano.
Za mjerenje svjetline, niske vrijednosti prikazuju se u prvom, a visoke vrijednosti u drugom retku. Niske vrijednosti u gornjim, veće vrijednosti u donjim LED diodama. Za očitanje točne vrijednosti pritisnite gumb B.
Korak 5: 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 upotrijebiti kalkulator boja, kao ovaj ovdje.
Preporučeni:
Korištenje Pimoroni Enviro+ FeatherWing s perjem Adafruit NRF52840 Express: 8 koraka
Korištenje Pimoroni Enviro+ FeatherWing s Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing je ploča prepuna senzora dizajniranih za rad s nizom ploča Adafruit Feather. To je korisno mjesto za početak za sve koji se zanimaju za praćenje okoliša, zagađenje atmosfere i izmjenu podataka. Ja
Svjetlo upozorenja za rotacijske svjetionike u dvije boje u dvije boje: 6 koraka
Svjetlo upozorenja rotacijskog svjetionika u dvije boje: U ovom Instructable -u stvorit ćemo mini svjetlo. Znate, jedno od onih starinskih rotirajućih svjetala koje su stavljali na građevinsku opremu prije nego što su LED diode postale velike? Da. Jedan od onih. Ovaj će biti relativno jednostavan i malen
Promjena boje noćnog svjetla pomoću Ardruina 101: 4 koraka (sa slikama)
Promjena boje noćnog svjetla pomoću Ardruina 101: U ovom ćete projektu izraditi noćnu svjetiljku koristeći ardruino, Adafruit neo rgb trake i 3D pisač. Imajte na umu da je ovo uljez čisto za moj školski projekt. Kôd za ovaj projekt temelji se na drugom projektu. S tim da nisam bivši
Svjetla za promjenu boje i Bluetooth sigurnosna demonstracija: 7 koraka (sa slikama)
Svjetla za promjenu boje i Bluetooth sigurnosna demonstracija: U ovom uputstvu objasnit ću kako stvoriti zaslon za promjenu boje koji se daljinski kontrolira putem Bluetootha pomoću Androida (Samsung, Google itd.) Ili Apple pametnog telefona ili tableta. Ovo je jeftino projekt, izvrstan za mlade
RGB LED jeftino i jednostavno mijenjanje boje noćnog svjetla: 3 koraka
RGB LED jeftino i jednostavno mijenjanje boje noćnog svjetla: Ovaj projekt je bio prilično jednostavan nakon što sam se poigrao i shvatio, što je potrajalo. Ideja je da se boja može promijeniti prekidačem i led opcije & zatamnjivanja također. Ovo su stavke koje ćete morati c