Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: MakeCode/JavaScript skripta
- Korak 3: Uzimanje RGB mjerenja: Režim 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 izmjena: 2024-01-30 08:08
Prije sam radio na nekim uređajima koji dopuštaju mjerenje svjetlosti 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 nivoa zvuka, BME280 senzorom temperature/vlažnosti/tlaka zraka i TCS3475 senzorom svjetla i boje (RGBC). Osim toga, sa LED senzora u boji nalaze se i dvije LED diode koje omogućavaju 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 dozvoljava njihovo izvođenje. Kombinacija micro: bita i enviro: bita lijep je i jeftin uređaj koji praktično demonstrira principe naučnih mjerenja i igra se s njima.
Ova instrukcija je dio takmičenja "Duga". Ako vam se sviđa, dajte svoj glas. Hvala
Korak 1: Korišteni materijali
Micro: bit, 13 GBP na Pimoroniju.
Pimoroni Enviro: bit, 20 GBP u Pimoroniju.
Pimoroni Power: bit, 6 GBP na Piomoroniju. Za micro: bit možete koristiti i baterije ili LiPo
Blok uzorka filtera u boji Rosco Cinegel. Ja sam svoje nabavio iz Modulora u Berlinu.
Plastične čaše u boji IKEA. IKEA, Berlin.
Divlje cveć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 direktno na micro: bit i omogućavaju 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 je vrlo širok i omogućava mjerenje od jakog dnevnog svjetla do tamne prostorije.
Do sada ne razumijem sve detalje funkcije mjerenja boje, ali pretpostavljam da imaju implementirane neke mehanizme za korekciju i normalizaciju.
U početku se uzimaju vrijednosti sva četiri kanala. Da bi se mogli prikazati rezultati na 5x5 LED matrici, izmjerene vrijednosti se koriste 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 kante široka je 51 jedinicu. U slučaju C, skaliranje je logaritamsko u 10 koraka (log3, tako da je svaki korak trostruki od prethodnog). Ovo omogućava da se prikazuju vrlo mračni i vrlo svijetli uvjeti.
Pritiskom na tipku 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 basic.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)} inače 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: Režim 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. Pri mjerenjima reflektirane svjetlosti emitirana je svjetlost npr. od LED dioda se reflektira od objekta i detektira ih senzor.
RGB vrijednosti se tada prikazuju u 3. do 5. redu matrice micro: bit 5x5 LED matrice, pri čemu gornje LED diode predstavljaju niske, a donje visoke vrijednosti.
Za eksperimente prikazane ovdje na mjerenjima propuštene svjetlosti koristio sam dnevno svjetlo i postavio filtere u boji iz Roscovog uzorka ispred senzora. Efekte možete vidjeti na ekranu, posebno u crvenom kanalu. Pogledajte slike i uporedite uzorke.
Da biste pročitali stvarne vrijednosti, samo pritisnite dugme A.
Korak 4: Mjerenje reflektiranog svjetla RGB i svjetline
Za mjerenje reflektiranog svjetla upalio sam LED diode (dugme [A+B]) i ispred senzora postavio neke komade IKEA dječjih čaša jarkih boja. Kao što se može vidjeti na slikama, RGB vrijednosti se mijenjaju očekivano.
Za mjerenje svjetline, niske vrijednosti su prikazane u prvom, a visoke vrijednosti u drugom redu. Niske vrijednosti u gornjim, veće vrijednosti donje LED diode. Da biste očitali tačnu vrijednost, pritisnite dugme 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 koristiti kalkulator boja, kao što je ovaj ovdje.
Preporučuje se:
Korištenje Pimoroni Enviro+ FeatherWing s Adafruit perom 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
Interaktivna svjetla za dvorište, svjetla za hodnike: 3 koraka
Interaktivna svjetla za dvorište, svjetla za hodnike: Htjela sam izgraditi neku vrstu interaktivnih svjetla za dvorište. Ideja je bila da kada bi neko hodao u jednom smjeru pokrenula bi se animacija u smjeru u kojem ste hodali. Počeo sam sa solarnim svjetlima od 1,00 dolara za Dollar General
Promjena boje noćnog svjetla pomoću Ardruina 101: 4 koraka (sa slikama)
Promjena boje noćnog svjetla pomoću Ardruina 101: U ovom projektu ćete napraviti noćnu svjetiljku koristeći ardruino, Adafruit neo rgb trake i 3D štampač. Imajte na umu da je ovo uljez čisto za moj školski projekt. Kôd za ovaj projekat zasnovan je na drugom projektu. S tim da kažem 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 ću vam objasniti kako stvoriti zaslon za promjenu boje koji se kontrolira daljinski putem Bluetooth -a pomoću Androida (Samsung, Google itd.) Ili Apple pametnog telefona ili tableta. Ovo je jeftino projekat, odličan 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 lak nakon što sam se poigrao i shvatio, što je potrajalo. Ideja je da se boja može promijeniti pomoću prekidača i imati led opcije & zatamnjivanja takođe. Ovo su stavke koje ćete trebati da