Sisukord:
- Samm: kasutatud materjalid
- Samm: MakeCode/JavaScripti skript
- 3. samm: RGB mõõtmiste tegemine: edastatud valguse režiim
- 4. samm: peegeldunud valguse RGB ja heleduse mõõtmised
- 5. samm: peegeldunud valguse mõõtmised: lilled
Video: Valguse ja värvi mõõtmine Pimoroni Enviro: bitiga Micro: bit: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Olin varem töötanud mõningate seadmetega, mis võimaldavad valguse ja värvide mõõtmist, ja võite leida palju sellistest mõõtmistest koosneva teooria kohta. Juhised siin ja siin.
Pimoroni avaldas hiljuti mikro: bitile lisandmooduli enviro: bit, mis on varustatud helitaseme mõõtmiseks mõeldud MEMS-mikrofoniga, BME280 temperatuuri/niiskuse/õhurõhu anduriga ning valgus- ja värvianduriga TCS3475 (RGBC). Lisaks on värvisensori külgedel kaks LED -i, mis võimaldavad mõõta objektide värvi peegeldunud valguse abil. Nende mõõtmiste tegemiseks tööriista ehitamine ise pole kunagi olnud lihtsam.
Siinkohal tahaksin kirjeldada, kuidas keskkonda enviro: bit saab kasutada värvide ja valguse mõõtmiseks ning MakeCode'i skripti, mis võimaldab neid teostada. Micro: bit ja enviro: bit kombinatsioon on kena ja odav seade teaduslike mõõtmiste põhimõtete praktiliseks demonstreerimiseks ja nendega mängimiseks.
See juhend on osa võistlusest "Vikerkaar". Kui teile meeldib, palun andke talle oma hääl. AitähH
Samm: kasutatud materjalid
Mikro: bit, 13 GBP Pimoronis.
Pimoroni Enviro: natuke, 20 GBP Pimoronis.
Pimoroni Power: natuke, 6 GBP Piomoronis. Samuti võite micro: bit'i jaoks kasutada akusid või LiPo -d
Rosco Cinegeli värvifiltri näidisplokk. Omani sain Modulorist, Berliinist.
IKEA värvilised plasttopsid. IKEA, Berliin.
Metsikud lilled. Heinamaa Potsdam-Golmis.
Samm: MakeCode/JavaScripti skript
Pimoroni on Enviro: bit jaoks välja töötanud raamatukogu nii MakeCode/JavaScripti kodeerimiskeskkonna kui ka MicroPython jaoks. Siin olen kasutanud MakeCode'i, kuna skripte saab üles laadida otse mikro: bitti ja see võimaldab plokkide kodeerimist.
Skript loeb punase, rohelise ja sinise (RGB) ning selge (C) kanali väärtused. Esimesed on esitatud väärtustes 0–255, teine kogu vahemikus 0–61000.
Selge kanali ulatus on väga lai ja võimaldab mõõta eredast päevavalgusest pimedasse ruumi.
Nüüdseks ei mõista ma kõiki värvimõõtmisfunktsiooni üksikasju, kuid eeldan, et neil on mõned parandus- ja normaliseerimismehhanismid rakendatud.
Alguses võetakse kõigi nelja kanali väärtused. Tulemuste kuvamiseks 5x5 LED -maatriksil kasutatakse mõõdetud väärtusi tulemuste paigutamiseks 5 (RGB) või 10 (C) mahutisse, mida tähistab üks LED ühes (R, G, B) või kaks (C) rida.
RGB puhul on skaleerimine lineaarne ja iga prügikasti intervalli suurus on 51 ühikut lai. C puhul on skaleerimine logaritmiline 10 sammu ulatuses (log3, seega on iga samm eelmise 3-kordne). See võimaldab kuvada väga hämaraid ja väga eredaid tingimusi.
Nupule A vajutades kuvatakse R, G ja B väärtused numbritega, vajutades B väärtust C. A+B aktiveerib valgusdioodid ja B lülitab need välja.
olgu bR = 0 // prügikasti
olgu bG = 0 lase bB = 0 lase bS = 0 lase bC = 0 lase bCx = 0 lase S = 0 // mõõdetud väärtustel lasku C = 0 lase B = 0 las G = 0 lase R = 0 aluselisel. 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) {// Küllastus 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} // kirjutama 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. samm: RGB mõõtmiste tegemine: edastatud valguse režiim
Nagu varem märgitud, on värvimõõtmiseks kaks režiimi: läbilaske- ja peegeldunud valguse spektroskoopia. Läbiva valguse režiimis läbib valgus andurit värvilise filtri või lahuse kaudu. Peegeldunud valguse mõõtmistel kiirgab valgust nt. valgusdioodidest peegeldub objekt ja andur tuvastab selle.
Seejärel kuvatakse RGB väärtused micro: bit 5x5 LED maatriksi 3. kuni 5. reale, kusjuures ülemised LED -id tähistavad madalat, alumised LED -id kõrgeid väärtusi.
Siin näidatud läbiva valguse mõõtmise katsete jaoks kasutasin päevavalgust ja asetasin Rosco proovipakist värvilised filtrid anduri ette. Efekte näete ekraanil, eriti punases kanalis. Vaata pilte ja võrdle mustreid.
Tegelike väärtuste lugemiseks vajutage lihtsalt nuppu A.
4. samm: peegeldunud valguse RGB ja heleduse mõõtmised
Peegeldunud valguse mõõtmiseks lülitasin sisse LED -id (nupp [A+B]) ja asetasin anduri ette mõned erksavärvilised tükid IKEA lastetopse. Nagu piltidelt näha, muutuvad RGB väärtused ootuspäraselt.
Heleduse mõõtmiseks kuvatakse madalad väärtused esimeses, kõrged väärtused teises reas. Madalad väärtused ülemises, kõrgemad väärtused alumiste LED -ide poolt. Täpse väärtuse lugemiseks vajutage nuppu B.
5. samm: peegeldunud valguse mõõtmised: lilled
Korjasin heinamaalt mõned metsikud lilled ja proovisin neile värvimõõtmisi teha. See on olnud moon, rukkilill, pruun pähklipuu, müürik ja dilandelleht. RGB väärtused olid [R, G, B]:
- pole [92, 100, 105]
- moon (punane) [208, 98, 99]
- rukkilill (sinine) [93, 96, 138]
- pruun pähkel (lilla) [122, 97, 133]
- seinahark (kollane) [144, 109, 63]
- võililleleht (roheline) [164, 144, 124]
Mis vastab ootustele, vähemalt kolme esimese taime puhul. Väärtuste värvide kuvamiseks võite kasutada siin olevat värvikalkulaatorit.
Soovitan:
Pimoroni Enviro+ FeatherWingi kasutamine Adafruit Feather NRF52840 Expressiga: 8 sammu
Pimoroni Enviro+ FeatherWingi kasutamine koos Adafruit Feather NRF52840 Expressiga: Pimoroni Enviro+ FeatherWing on tahvel, mis on täis andureid, mis on loodud töötama koos Adafruit Feather seeria laudadega. See on kasulik koht alustamiseks kõigile, kes on huvitatud keskkonnaseirest, õhusaastest ja andmete segamisest. Ma
Kolm prantsuse kana kastis (koos mikro: bitiga): 10 sammu
Kolm prantsuse kana kastis (Micro: bitiga): Üllata (või hirmuta) inimesi, kellel on kolm kana kastist välja hüppamas. Pühadepööre elektroonikaga klassikalisel Jack-in-the-boxil. Need kolm kana on muidugi prantslased
Valguse intensiivsuse mõõtmine BH1715 ja Raspberry Pi abil: 5 sammu
Valguse intensiivsuse mõõtmine BH1715 ja Raspberry Pi abil: Eile töötasime LCD -ekraanide kallal ja nende üle töötades mõistsime valguse intensiivsuse arvutamise tähtsust. Valguse intensiivsus pole oluline mitte ainult selle maailma füüsilises valdkonnas, vaid sellel on hästi öeldud roll bioloogilises
Koroonaviirus: peatage levik Micro: bitiga: 3 sammu
Koroonaviirus: lõpetage levik Micro: bitiga: kõige raskematel aegadel särab inimese leidlikkus kõige rohkem. Jaanuarist 2020 haaras kogu maailma COVID-19 pandeemia. COVID-19 levib õhutilkade ja fomiitide kaudu. Fomiidid on lihtsalt elutud asjad, nagu mööbel, riided, ukselink
Ühendage HM-10 Micro: bitiga Bluetoothi abil: 5 sammu
Ühendage HM-10 mikroga: bit Bluetoothi abil: Kõik sai alguse sellest, kui mul paluti teha automaatne niisutussüsteem. Kasutajale teatamiseks tuli mikrobit ühendada HM-10-ga. Teist õpetust selle kohta ei olnud, nii et uurisin Bluetooth -ühendust ja tegin näite