Obsah:
- Krok 1: Použitý materiál
- Krok 2: Skript MakeCode/JavaScript
- Krok 3: Meranie RGB: Režim prenášaného svetla
- Krok 4: Odrazené svetlo RGB a merania jasu
- Krok 5: Meranie odrazeného svetla: kvety
Video: Merania svetla a farieb pomocou Pimoroni Enviro: bit pre mikro: bit: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Pracoval som na niektorých zariadeniach, ktoré umožňujú meranie svetla a farieb, predtým a môžete nájsť veľa o teórii týchto meraní, návodoch tu a tu.
Spoločnosť Pimoroni nedávno vydala doplnok enviro: bit, doplnok pre mikro: bit, ktorý je dodávaný s mikrofónom MEMS na meranie hladiny zvuku, snímačom teploty/vlhkosti/tlaku vzduchu BME280 a snímačom svetla a farieb TCS3475 (RGBC). Po stranách farebného senzora sú navyše umiestnené dve diódy LED, ktoré umožňujú merať farbu predmetov odrazeným svetlom. Zostavenie nástroja, ktorý by vykonával tieto merania, nebolo nikdy jednoduchšie.
Tu by som chcel popísať, ako možno súbor enviro: bit použiť na meranie farby a svetla a skript MakeCode, ktorý ich umožňuje vykonávať. Kombinácia mikro: bit a enviro: bit je pekné a lacné zariadenie, ktoré vám umožní predvádzať princípy vedeckých meraní a hrať sa s nimi.
Tento návod je súčasťou súťaže „Dúha“. Ak sa vám páči, dajte mu prosím svoj hlas. ĎakujemH
Krok 1: Použitý materiál
Micro: bit, 13 GBP u Pimoroni.
Pimoroni Enviro: bit, 20 GBP v Pimoroni.
Výkon Pimoroni: bit, 6 GBP u Piomoroni. Na micro: bit môžete tiež použiť batérie alebo LiPo
Blok vzorky farebného filtra Rosco Cinegel. Svoju som dostal z Moduloru v Berlíne.
Farebné plastové poháre IKEA. IKEA, Berlín.
Divoké kvety. Lúka pri Postupime-Golme.
Krok 2: Skript MakeCode/JavaScript
Pimoroni vyvinul knižnicu pre Enviro: bit, a to ako pre kódovacie prostredie MakeCode/JavaScript, tak pre MicroPython. Tu som použil MakeCode, pretože skripty je možné nahrať priamo do súboru micro: bit a umožňujú blokové kódovanie.
Skript číta hodnoty červeného, zeleného a modrého (RGB) a čistého (C) kanála. Prvé sú uvedené v hodnotách od 0 do 255, druhé v celom rozsahu od 0 do asi 61 000.
Rozsah jasného kanála je veľmi široký a umožňuje meranie od jasného denného svetla po tmavú miestnosť.
Teraz nerozumiem všetkým podrobnostiam funkcie merania farieb, ale predpokladám, že majú implementované niektoré korekčné a normalizačné mechanizmy.
Najprv sa vezmú hodnoty všetkých štyroch kanálov. Aby bolo možné zobraziť výsledky na matici LED 5x5, namerané hodnoty sa použijú na umiestnenie výsledkov do 5 (RGB) alebo 10 (C) zásobníkov, ktoré sú reprezentované jednou diódou LED v jednom (R, G, B) alebo dva (C) riadky.
V prípade RGB je škálovanie lineárne a veľkosť intervalu každého zásobníka je široká 51 jednotiek. V prípade C je škálovanie logaritmické v 10 krokoch (log3, takže každý krok je 3-násobok predchádzajúceho). To umožňuje zobrazovať veľmi slabé a veľmi svetlé podmienky.
Stlačením tlačidla A sa zobrazia hodnoty R, G a B v číslach, stlačením B hodnota C. A+B aktivuje LED diódy a B ich vypne.
nech bR = 0 // koše
nechaj bG = 0 nechaj bB = 0 nechaj bS = 0 nechaj bC = 0 nechaj bCx = 0 nechaj S = 0 // namerané hodnoty nechaj C = 0 nechaj B = 0 nechaj G = 0 nechaj R = 0 základný. navždy (() => {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) {// Saturácia bCx = 4} else if (C> = 20000) {bCx = 3} else if (C> = 6600) {bCx = 2} else if (C> = 2200) {bCx = 1} else if 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} // write to 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)}})
Krok 3: Meranie RGB: Režim prenášaného svetla
Ako už bolo uvedené, existujú dva režimy merania farieb: spektroskopia prenášaného a odrazeného svetla. V režime prechádzajúceho svetla svetlo prechádza cez farebný filter alebo roztok k senzoru. Pri meraniach odrazeného svetla svetlo vyžarované napr. od diód LED sa odráža od predmetu a je detegované snímačom.
Hodnoty RGB sa potom zobrazia v 3. až 5. riadku mikro: bitovej 5x5 LED matice, pričom horné LED diódy predstavujú nízke, nižšie LED vysoké hodnoty.
Na experimenty, ktoré sú tu ukázané na meraniach prechádzajúceho svetla, som použil denné svetlo a pred senzor umiestnil farebné filtre zo vzorkovnice Rosco. Efekty môžete vidieť na displeji, najmä v červenom kanáli. Pozrite sa na obrázky a porovnajte vzory.
Ak si chcete prečítať skutočné hodnoty, stačí stlačiť tlačidlo A.
Krok 4: Odrazené svetlo RGB a merania jasu
Na meranie odrazeného svetla som zapol LED diódy (tlačidlo [A+B]) a pred senzor umiestnil niekoľko pestrofarebných kúskov detských pohárov IKEA. Ako je zrejmé z obrázkov, hodnoty RGB sa menia podľa očakávania.
Pri meraní jasu sú nízke hodnoty zobrazené v prvom, vysoké hodnoty v druhom rade. Nízke hodnoty v horných, vyššie hodnoty v dolných diódach. Presnú hodnotu odčítate stlačením tlačidla B.
Krok 5: Meranie odrazeného svetla: kvety
Z lúky som vybral divoké kvety a pokúsil som sa na nich vykonať niekoľko farebných meraní. Bol to mak, chrpa, hnedý knapweed, nástenný kvet a listnatý strom. Hodnoty RGB boli [R, G, B]:
- žiadny [92, 100, 105]
- mak (červený) [208, 98, 99]
- chrpa (modrá) [93, 96, 138]
- knapweed brown (orgován) [122, 97, 133]
- žihľava stenová (žltá) [144, 109, 63]
- list púpavy (zelený) [164, 144, 124]
Čo zodpovedá očakávaniam, aspoň pre prvé tri rastliny. Na zobrazenie farieb z hodnôt môžete použiť kalkulačku farieb, ako je tu.
Odporúča:
Použitie peria Pimoroni Enviro+ FeatherWing s perím Adafruit NRF52840 Express: 8 krokov
Používanie Pimoroni Enviro+ FeatherWing s Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing je doska plná senzorov navrhnutých pre prácu so sériou dosiek Adafruit Feather. Je to užitočné miesto, kde začať pre kohokoľvek, koho zaujíma monitorovanie životného prostredia, znečistenie atmosféry a zhromažďovanie údajov. Ja
Ako kódovať triedič farieb v Modkit pre Vex: 7 krokov
Ako kódovať triedič farieb v Modkite pre Vex: Ahoj všetci, v tomto návode sa naučíte kódovať triedič farebných loptičiek v Modkite pre VexHope, aby ste to urobili a užívali si to! Pls hlasujte za mňa!
Zaujímavé pokyny pre programovanie programovania pre návrhára-ovládanie farieb: 10 krokov
Zaujímavé pokyny pre programovanie programovania pre návrhárov-Ovládanie farieb: V predchádzajúcich kapitolách sme si povedali viac o tom, ako použiť kód na tvarovanie, a nie o znalostné body o farbe. V tejto kapitole sa pokúsime hlbšie preskúmať tento aspekt znalostí
Jednoduchá detekcia farieb pomocou OpenCV: 6 krokov
Jednoduchá detekcia farieb pomocou OpenCV: Ahoj! Dnes ukážem jednoduchú metódu detekcie farby zo živého videa pomocou OpenCV a pythonu. V zásade len otestujem, či je požadovaná farba v pozadí alebo nie a pomocou modulov OpenCV túto oblasť zamaskujem a
Detekcia farieb v Pythone pomocou OpenCV: 8 krokov
Detekcia farieb v Pythone pomocou OpenCV: Dobrý deň! Tento návod sa používa na návod, ako extrahovať konkrétnu farbu z obrázku v pythone pomocou knižnice openCV. Ak ste v tejto technike nováčik, nebojte sa, na konci tejto príručky budete môcť naprogramovať svoju vlastnú farbu