Innholdsfortegnelse:

Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit: 5 trinn
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit: 5 trinn

Video: Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit: 5 trinn

Video: Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit: 5 trinn
Video: Åge Aleksandersen - Lys og Varme 2024, Juli
Anonim
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit
Lys- og fargemålinger Med Pimoroni Enviro: bit for Micro: bit

Jeg hadde jobbet med noen enheter som tillater lys- og fargemålinger tidligere, og du kan finne mye om teorien bak slike målinger, instruksjonene her og her.

Pimoroni har nylig gitt ut enviro: bit, et tillegg for micro: bit, som kommer med en MEMS-mikrofon for lydnivåmålinger, en BME280 temperatur/fuktighet/lufttrykksensor og en TCS3475 lys- og fargesensor (RGBC). I tillegg er det to lysdioder plassert på sidene av fargesensoren, slik at du kan måle fargen på gjenstander med reflektert lys. Å bygge et verktøy selv for å utføre disse målingene har aldri vært enklere.

Jeg vil gjerne beskrive hvordan enviro: bit kan brukes til farge- og lysmålinger og MakeCode -skriptet som gjør det mulig å utføre disse. Kombinasjonen av micro: bit og enviro: bit er en fin og billig enhet for å demonstrere prinsippene for vitenskapelige målinger praktisk og leke med dem.

Dette instruerbare er en del av "Rainbow" -konkurransen. Hvis du liker det, vennligst gi det din stemme. Takk H

Trinn 1: Materialer som brukes

Micro: bit, 13 GBP på Pimoroni.

Pimoroni Enviro: bit, 20 GBP på Pimoroni.

Pimoroni Power: bit, 6 GBP på Piomoroni. Du kan også bruke batterier eller en LiPo for micro: bit

Rosco Cinegel fargefilterblokk. Jeg fikk min fra Modulor, Berlin.

IKEA -fargede plastkopper. IKEA, Berlin.

Ville blomster. En eng ved Potsdam-Golm.

Trinn 2: MakeCode/JavaScript -skriptet

Pimoroni har utviklet et bibliotek for Enviro: bit, både for MakeCode/JavaScript -kodemiljøet og for MicroPython. Jeg her har brukt MakeCode, ettersom skriptene kan lastes opp direkte til micro: bit og tillater blokkoding.

Skriptet leser verdiene for de røde, grønne og blå (RGB) og de klare (C) kanalene. De første er gitt i verdier fra 0 til 255, den andre i hele området fra 0 til omtrent 61000.

Rekkevidden til den klare kanalen er veldig bred og tillater målinger fra sterkt dagslys til et mørkt rom.

Nå forstår jeg ikke alle detaljene i fargemålefunksjonen, men jeg antar at de har noen korreksjons- og normaliseringsmekanismer implementert.

Først blir verdiene til alle fire kanalene tatt. For å kunne vise resultatene på 5x5 LED -matrisen, brukes målte verdier for å plassere resultatene i 5 (RGB) eller 10 (C) binger, som er representert med en LED i enten en (R, G, B) eller to (C) rader.

Når det gjelder RGB, er skaleringen lineær, og intervallstørrelsen på hver skuff er 51 enheter bred. Når det gjelder C, er skaleringen logaritmisk over 10 trinn (log3, så hvert trinn er det tredobbelte av det forrige). Dette gjør det mulig å vise svært svake og veldig lyse forhold.

Ved å trykke på knapp A vises R-, G- og B -verdiene i tall, ved å trykke på B -verdien. A+B aktiverer lysdiodene og B slår dem av.

la bR = 0 // binger

la bG = 0 la bB = 0 la bS = 0 la bC = 0 la bCx = 0 la S = 0 // måleverdier la C = 0 la B = 0 la G = 0 la 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)} annet 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, maks 255 bR = 4} annet hvis (R> = 153) {bR = 3} annet hvis (R> = 102) {bR = 2} annet hvis (R> = 51) {bR = 1} annet {bR = 0} hvis (G> = 204) {bG = 4} annet hvis (G> = 153) {bG = 3} annet hvis (G> = 102) {bG = 2} annet hvis (G> = 51) {bG = 1} annet {bG = 0} hvis (B> = 204) {bB = 4} annet hvis (B> = 153) {bB = 3} annet hvis (B> = 102) {bB = 2} annet hvis (B> = 51) {bB = 1} annet {bB = 0} hvis (C> = 60000) {// Metning bCx = 4} annet hvis (C> = 20000) {bCx = 3} annet hvis (C> = 6600) {bCx = 2} annet hvis (C> = 2200) {bCx = 1} annet hvis (C> = 729) {bCx = 0} annet hvis (C> = 243) {bC = 4} annet hvis (C> = 81) {bC = 3} annet hvis (C> = 27) {bC = 2} ellers hvis (C> = 9) {bC = 1} annet {bC = 0} // skriv til led basic.clearScreen () hvis (bCx <5) {led.plot (1, bCx)} annet {led.plot (0, bC)} led.plot (2, bR) led.plot (3, bG) led.plot (4, bB)}})

Trinn 3: Ta RGB -målinger: Overført lysmodus

Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus
Tar RGB -målinger: Overført lysmodus

Som angitt tidligere er det to fargemålinger: transmittert og reflektert lysspektroskopi. I modus for overført lys går lys gjennom et farget filter eller løsning til sensoren. Ved målinger av reflektert lys sendte lys f.eks. fra lysdiodene reflekteres av et objekt og detekteres av sensoren.

RGB -verdiene vises deretter i de tredje til femte radene i mikro: bit 5x5 LED -matrisen, med de øvre lysdiodene som representerer lave, de nedre lysdiodene de høye verdiene.

For eksperimentene vist her på transmitterte lysmålinger brukte jeg dagslys og plasserte fargede filtre fra en Rosco -prøvepakke foran sensoren. Du kan se effektene på displayet, spesielt i den røde kanalen. Ta en titt på bildene og sammenlign mønstrene.

For å lese de faktiske verdiene trykker du bare på knappen A.

Trinn 4: Reflekterte lys -RGB- og lysstyrkmålinger

Reflekterte lys RGB og lysstyrke målinger
Reflekterte lys RGB og lysstyrke målinger
Reflekterte lys RGB og lysstyrke målinger
Reflekterte lys RGB og lysstyrke målinger
Reflekterte lys RGB og lysstyrke målinger
Reflekterte lys RGB og lysstyrke målinger

For målinger av reflektert lys slo jeg på lysdiodene (knapp [A+B]) og plasserte noen fargerike biter av IKEA barnekopper foran sensoren. Som det fremgår av bildene, endres RGB -verdiene som forventet.

For lysstyrkemålinger vises lave verdier i den første, høye verdien i den andre raden. Lave verdier i de øvre, høyere verdier ved de nedre lysdiodene. Trykk på knappen B. for å lese den nøyaktige verdien.

Trinn 5: Reflekterte lysmålinger: Blomster

Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster
Reflekterte lysmål: Blomster

Jeg plukket noen ville blomster fra en eng og prøvde å utføre noen fargemålinger på dem. Det har vært valmue, kornblomst, brun knuteweed, harkweed og et løvetannblad. RGB -verdiene var [R, G, B]:

  • ingen [92, 100, 105]
  • valmue (rød) [208, 98, 99]
  • kornblomst (blå) [93, 96, 138]
  • brun ryggblad (syrin) [122, 97, 133]
  • veggharkweed (gul) [144, 109, 63]
  • løvetannblad (grønt) [164, 144, 124]

Som passer til forventningene, i hvert fall for de tre første plantene. For å vise fargene fra verdiene, kan du bruke en fargekalkulator som den her.

Anbefalt: