Turinys:
- 1 žingsnis: naudojamos medžiagos
- 2 veiksmas: „MakeCode“/„JavaScript“scenarijus
- 3 žingsnis: RGB matavimai: skleidžiamos šviesos režimas
- 4 žingsnis: atspindėtos šviesos RGB ir ryškumo matavimai
- 5 žingsnis: atspindėti šviesos matavimai: gėlės
Video: Šviesos ir spalvų matavimai Naudojant „Pimoroni Enviro: bit“, skirtą „Micro: bit“: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Anksčiau dirbau prie kai kurių prietaisų, leidžiančių matuoti šviesą ir spalvas, ir čia bei čia galite rasti daug informacijos apie tokių matavimų teoriją.
„Pimoroni“neseniai išleido „enviro: bit“, „micro: bit“priedą, kurį sudaro MEMS mikrofonas garso lygio matavimui, BME280 temperatūros/drėgmės/oro slėgio jutiklis ir TCS3475 šviesos ir spalvų jutiklis (RGBC). Be to, spalvų jutiklio šonuose yra du šviesos diodai, leidžiantys išmatuoti objektų spalvą pagal atspindėtą šviesą. Dar niekada nebuvo taip paprasta susikurti įrankį šiems matavimams atlikti.
Čia norėčiau aprašyti, kaip „enviro: bit“gali būti naudojamas spalvų ir šviesos matavimams bei „MakeCode“scenarijui, kuris leidžia juos atlikti. „Micro: bit“ir „enviro: bit“derinys yra gražus ir nebrangus prietaisas, padedantis demonstruoti praktinių mokslinių matavimų principus ir žaisti su jais.
Ši pamoka yra konkurso „Vaivorykštė“dalis. Jei jums tai patinka, prašome balsuoti. AčiūH
1 žingsnis: naudojamos medžiagos
„Micro: bit“, 13 GBP „Pimoroni“.
„Pimoroni Enviro“: bitai, 20 GBP „Pimoroni“.
„Pimoroni Power“: bitų, 6 GBP „Piomoroni“. Taip pat galite naudoti „micro: bit“baterijas arba „LiPo“
„Rosco Cinegel“spalvų filtro mėginio blokas. Aš gavau savo iš Moduloro, Berlyno.
IKEA spalvos plastikiniai puodeliai. IKEA, Berlynas.
Laukinės gėlės. Potsdamo-Golmo pieva.
2 veiksmas: „MakeCode“/„JavaScript“scenarijus
„Pimoroni“sukūrė „Enviro: bit“biblioteką, skirtą „MakeCode“/„JavaScript“kodavimo aplinkai ir „MicroPython“. Čia aš naudoju „MakeCode“, nes scenarijus galima įkelti tiesiai į „micro: bit“ir leidžia blokuoti kodavimą.
Scenarijus nuskaito raudonos, žalios ir mėlynos (RGB) ir aiškių (C) kanalų reikšmes. Pirmieji skaičiai pateikiami nuo 0 iki 255, o antrasis - nuo 0 iki maždaug 61000.
Skaidraus kanalo diapazonas yra labai platus ir leidžia matuoti nuo ryškios dienos šviesos iki tamsios patalpos.
Iki šiol nesuprantu visų spalvų matavimo funkcijos detalių, tačiau darau prielaidą, kad jie turi tam tikrų korekcijos ir normalizavimo mechanizmų.
Iš pradžių imamos visų keturių kanalų vertės. Kad rezultatai būtų rodomi 5x5 LED matricoje, išmatuotos vertės naudojamos rezultatams sudėti į 5 (RGB) arba 10 (C) dėžes, kurias viename (R, G, B) arba dvi (C) eilutės.
RGB atveju mastelio keitimas yra tiesinis, o kiekvienos dėžės intervalo dydis yra 51 vieneto pločio. C atveju mastelio keitimas yra logaritminis per 10 žingsnių (log3, taigi kiekvienas žingsnis yra 3 kartus didesnis nei ankstesnis). Tai leidžia rodyti labai silpnas ir labai ryškias sąlygas.
Paspaudus mygtuką A rodomos R, G ir B vertės skaičiais, paspaudus B - C reikšmė. A+B įjungia šviesos diodus, o B juos išjungia.
tegul bR = 0 // dėžės
tegul bG = 0 tegul bB = 0 tegul bS = 0 tegul bC = 0 tegul bCx = 0 tegul S = 0 // išmatuotos vertės tegul C = 0 tegul B = 0 tegul G = 0 tegul R = 0 bazinis. 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) {// Sotumas 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} // rašyti į 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 žingsnis: RGB matavimai: skleidžiamos šviesos režimas
Kaip minėta anksčiau, yra du spalvų matavimo būdai: pralaidžios ir atspindėtos šviesos spektroskopija. Skleidžiamos šviesos režimu šviesa per spalvotą filtrą ar tirpalą patenka į jutiklį. Matuojant atspindėtą šviesą, skleidžiama šviesa pvz. nuo šviesos diodų atspindi objektas ir aptinka jutiklis.
Tada RGB reikšmės rodomos 3–5 „micro: bit“5x5 LED matricos eilutėse, o viršutiniai šviesos diodai reiškia žemą, apatiniai šviesos diodai - aukštas vertes.
Čia parodytiems eksperimentams dėl skleidžiamos šviesos matavimų naudojau dienos šviesą ir prieš jutiklį įdėjau spalvotus filtrus iš „Rosco“mėginių paketo. Efektus galite matyti ekrane, ypač raudoname kanale. Pažvelkite į nuotraukas ir palyginkite modelius.
Norėdami perskaityti faktines vertes, tiesiog paspauskite mygtuką A.
4 žingsnis: atspindėtos šviesos RGB ir ryškumo matavimai
Norėdami išmatuoti atspindėtą šviesą, įjungiau šviesos diodus (mygtukas [A+B]) ir prieš jutiklį padėjau keletą ryškių spalvų IKEA vaikiškų puodelių. Kaip matyti iš paveikslėlių, RGB vertės keičiasi, kaip tikėtasi.
Šviesumo matavimams žemos vertės rodomos pirmoje, didelės - antroje eilutėje. Žemos vertės viršutinėje, didesnės vertės - apatiniuose šviesos dioduose. Norėdami perskaityti tikslią vertę, paspauskite mygtuką B.
5 žingsnis: atspindėti šviesos matavimai: gėlės
Iš pievos nuskyniau keletą laukinių gėlių ir bandžiau joms atlikti tam tikrus spalvų matavimus. Tai buvo aguonos, rugiagėlės, rudos karpinės, sieninės varnalėšos ir dilandelio lapai. RGB reikšmės buvo [R, G, B]:
- nėra [92, 100, 105]
- aguona (raudona) [208, 98, 99]
- rugiagėlė (mėlyna) [93, 96, 138]
- rudas varnalėša (alyvinė) [122, 97, 133]
- sieninė varnalėša (geltona) [144, 109, 63]
- kiaulpienės lapas (žalias) [164, 144, 124]
Tai atitinka lūkesčius, bent jau pirmiems trims augalams. Norėdami parodyti spalvų reikšmes, galite naudoti spalvų skaičiuotuvą, kaip čia.
Rekomenduojamas:
ACS724 srovės jutiklio matavimai naudojant „Arduino“: 4 žingsniai
ACS724 srovės jutiklio matavimai naudojant „Arduino“: Šioje instrukcijoje mes eksperimentuosime prijungdami ACS724 srovės jutiklį prie „Arduino“, kad galėtume matuoti srovę. Šiuo atveju dabartinis jutiklis yra +/- 5A įvairovė, išvedanti 400 mv/A. Arduino Uno turi 10 bitų ADC, todėl geri klausimai
Serijinė LED lemputė naudojant kelių spalvų šviesos diodus: 3 žingsniai (su paveikslėliais)
Serijinė šviesos diodų lemputė naudojant kelių spalvų šviesos diodus: nuoseklioji LED lemputė nėra tokia brangi, bet jei esate „pasidaryk pats“meilužis (mėgėjas), kaip ir aš, galite sukurti savo serijinius šviesos diodus ir tai pigiau nei rinkoje esanti šviesa. Taigi, šiandien aš Aš padarysiu savo serijinę LED lemputę, kuri veikia 5 voltų
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: 5 žingsniai (su paveikslėliais)
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: Supratau infraraudonųjų spindulių kamerą, kad galėčiau ją naudoti judesio fiksavimo sistemoje. Su juo taip pat galite gauti tokių nuostabių vaizdų: blizgių objektų, matomų fotoaparate, kurie yra normalūs realybėje. Už pigią kainą galite gauti gana gerų rezultatų. Jis
Įsitikinkite, kad tiesiog naudokite 12V į kintamosios srovės keitiklį, skirtą šviesos diodų šviesos stygoms, o ne perjungti 12V: 3 žingsniai
Įsitikinkite, kad tiesiog naudokite 12V į kintamosios srovės keitiklį, skirtą šviesos diodų šviesos stygoms, o ne perjunkite juos 12V.: Mano planas buvo paprastas. Norėjau supjaustyti į sieną maitinamą LED šviesos stygą į gabalus, tada vėl prijungti, kad išeitų 12 voltų. Alternatyva buvo naudoti galios keitiklį, tačiau visi žinome, kad jie yra siaubingai neefektyvūs, tiesa? Teisingai? O gal jie?
Spalvų aptikimas naudojant RGB šviesos diodą: 4 žingsniai
Spalvų aptikimas naudojant RGB LED: Ar kada nors norėjote automatinio būdo spalvos aptikimo būdo? Šviesdami tam tikros spalvos šviesą ant objekto ir žiūrėdami, kiek šviesos atsispindi atgal, galite pasakyti, kokios spalvos objektas yra. Pavyzdžiui, jei užsidegsite raudona šviesa