Indholdsfortegnelse:

Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit: 5 trin
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit: 5 trin

Video: Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit: 5 trin

Video: Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit: 5 trin
Video: Webinar: Ældning af plast 2024, November
Anonim
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit
Lys- og farvemålinger Med Pimoroni Enviro: bit til Micro: bit

Jeg havde tidligere arbejdet på nogle enheder, der tillader lys- og farvemålinger, og du finder måske meget om teorien bag sådanne målinger, instruktørerne her og her.

Pimoroni har for nylig udgivet enviro: bit, en tilføjelse til micro: bit, der leveres med en MEMS-mikrofon til lydniveaumålinger, en BME280 temperatur/fugtighed/lufttrykssensor og en TCS3475 lys- og farvesensor (RGBC). Derudover er der to lysdioder placeret på siderne af farvesensoren, der gør det muligt at måle objekternes farve ved reflekteret lys. Det har aldrig været lettere at opbygge et værktøj til at udføre disse målinger.

Jeg vil her beskrive, hvordan enviro: bit kan bruges til farve- og lysmålinger og MakeCode -scriptet, der gør det muligt at udføre disse. Kombinationen af micro: bit og enviro: bit er en dejlig og billig enhed til at demonstrere principperne for videnskabelige målinger praktisk og lege med dem.

Denne instruktive er en del af "Rainbow" konkurrencen. Hvis du kan lide det, bedes du give det din stemme. Tak H.

Trin 1: Brugte materialer

Micro: bit, 13 GBP hos Pimoroni.

Pimoroni Enviro: bit, 20 GBP hos Pimoroni.

Pimoroni Power: bit, 6 GBP hos Piomoroni. Du kan også bruge batterier eller en LiPo til micro: bit

Rosco Cinegel farvefilterblok. Jeg fik min fra Modulor, Berlin.

IKEA farvede plastik kopper. IKEA, Berlin.

Vilde blomster. En eng ved Potsdam-Golm.

Trin 2: MakeCode/JavaScript -scriptet

Pimoroni har udviklet et bibliotek til Enviro: bit, både til MakeCode/JavaScript -kodningsmiljøet og til MicroPython. Jeg har her brugt MakeCode, da scripts kan uploades direkte til micro: bit og tillader blokering.

Scriptet læser værdierne for de røde, grønne og blå (RGB) og de klare (C) kanaler. De første er givet i værdier fra 0 til 255, den anden i hele området fra 0 til omkring 61000.

Rækkevidden af den klare kanal er meget bred og tillader målinger fra stærkt dagslys til et mørkt rum.

På nuværende tidspunkt forstår jeg ikke alle detaljerne i farvemålefunktionen, men jeg går ud fra, at de har nogle korrektion og normaliseringsmekanismer implementeret.

Først tages værdierne for alle fire kanaler. For at kunne vise resultaterne på 5x5 LED -matricen bruges målte værdier til at placere resultaterne i 5 (RGB) eller 10 (C) bakker, der er repræsenteret af en LED i enten en (R, G, B) eller to (C) rækker.

I tilfælde af RGB er skaleringen lineær, og intervalstørrelsen for hver bin er 51 enheder bred. I tilfælde af C er skaleringen logaritmisk over 10 trin (log3, så hvert trin er det tredobbelte af det foregående). Dette giver mulighed for at vise meget svage og meget lyse forhold ens.

Ved at trykke på knap A vises R-, G- og B -værdierne i tal, tryk på B -værdien. A+B aktiverer lysdioderne, og B lukker dem.

lad bR = 0 // skraldespande

lad bG = 0 lad bB = 0 lad bS = 0 lad bC = 0 lad bCx = 0 lad S = 0 // målte værdier lad C = 0 lad B = 0 lad G = 0 lad R = 0 basic.forever (() => {if (input.buttonIsPressed (Button. AB)) {envirobit.setLEDs (envirobit. OnOff. On)} ellers if (input.buttonIsPressed (Button. A)) {basic.showString ("R:" + R + "G:" + G + "B:" + B)} ellers hvis (input.buttonIsPressed (Button. B)) {basic.showString ("C:" + C) envirobit.setLEDs (envirobit. OnOff. Off)} ellers {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} hvis (G> = 204) {bG = 4} ellers hvis (G> = 153) {bG = 3} ellers hvis (G> = 102) {bG = 2} ellers hvis (G> = 51) {bG = 1} ellers {bG = 0} hvis (B> = 204) {bB = 4} ellers hvis (B> = 153) {bB = 3} ellers hvis (B> = 102) {bB = 2} ellers hvis (B> = 51) {bB = 1} ellers {bB = 0} hvis (C> = 60000) {// Saturation 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} ellers hvis (C> = 243) {bC = 4} ellers hvis (C> = 81) {bC = 3} ellers hvis (C> = 27) {bC = 2} else if (C> = 9) {bC = 1} else {bC = 0} // skriv til 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)}})

Trin 3: Udførelse af RGB -målinger: Overført lystilstand

Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand
Tager RGB -målinger: Overført lystilstand

Som angivet før er der to måder til farvemålinger: transmitteret og reflekteret lys spektroskopi. I tilstanden transmitteret lys går lyset gennem et farvet filter eller en løsning til sensoren. Ved målinger af reflekteret lys udsendte lys f.eks. fra lysdioderne reflekteres af et objekt og detekteres af sensoren.

RGB -værdierne vises derefter i 3. til 5. række i micro: bit 5x5 LED -matrixen, hvor de øvre LED'er repræsenterer lave, de nederste LED'er de høje værdier.

Til de eksperimenter, der er vist her på transmitterede lysmålinger, brugte jeg dagslys og placerede farvede filtre fra en Rosco -prøvepakke foran sensoren. Du kan se effekterne på displayet, især i den røde kanal. Tag et kig på billederne og sammenlign mønstrene.

For at aflæse de faktiske værdier skal du bare trykke på knappen A.

Trin 4: Reflekterede lys -RGB- og lysstyrkmålinger

Reflekteret lys RGB og lysstyrke målinger
Reflekteret lys RGB og lysstyrke målinger
Reflekteret lys RGB og lysstyrke målinger
Reflekteret lys RGB og lysstyrke målinger
Reflekteret lys RGB og lysstyrke målinger
Reflekteret lys RGB og lysstyrke målinger

Til målinger af reflekteret lys tændte jeg lysdioderne (knap [A+B]) og placerede nogle farvestrålende stykker IKEA børnekopper foran sensoren. Som det fremgår af billederne, ændrer RGB -værdierne sig som forventet.

For lysstyrkemålinger vises lave værdier i den første, høje værdi i den anden række. Lave værdier i de øvre, højere værdier ved de nederste lysdioder. Tryk på knap B. for at aflæse den præcise værdi.

Trin 5: Reflekterede lysmålinger: blomster

Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster
Reflekterede lysmål: blomster

Jeg plukkede nogle vilde blomster fra en eng og forsøgte at udføre nogle farvemålinger på dem. Det har været valmue, kornblomst, brun knapweed, harkweed og et blad af diladelon. RGB -værdierne var [R, G, B]:

  • ingen [92, 100, 105]
  • valmue (rød) [208, 98, 99]
  • kornblomst (blå) [93, 96, 138]
  • brun knapweed (lilla) [122, 97, 133]
  • væg harkweed (gul) [144, 109, 63]
  • mælkebøtteblad (grønt) [164, 144, 124]

Hvilket svarer til forventningerne, i hvert fald for de tre første anlæg. For at få vist farverne fra værdierne kan du bruge en farveberegner som den her.

Anbefalede: