Taula de continguts:

Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit: 5 passos
Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit: 5 passos

Vídeo: Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit: 5 passos

Vídeo: Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit: 5 passos
Vídeo: NADAL DE COLORS AMB LLETRA 2024, Desembre
Anonim
Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit
Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit
Mesures de llum i color amb el Pimoroni Enviro: bit per al Micro: bit
Mesures de llum i color amb el Pimoroni Enviro: bit per al Micro: bit
Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit
Mesures de llum i color amb el Pimoroni Enviro: bit per al micro: bit

Anteriorment havia estat treballant en alguns dispositius que permetien mesurar la llum i el color i és possible que trobeu moltes coses sobre la teoria que hi ha darrere d’aquestes mesures, allò instructable aquí i aquí.

Pimoroni ha llançat recentment enviro: bit, un complement per al micro: bit, que inclou un micròfon MEMS per mesurar el nivell de so, un sensor de temperatura / humitat / pressió d’aire BME280 i un sensor de llum i color TCS3475 (RGBC). A més, hi ha dos LED col·locats als laterals del sensor de color, que permeten mesurar el color dels objectes mitjançant la llum reflectida. Mai ha estat tan fàcil crear una eina per realitzar aquestes mesures.

Aquí m'agradaria descriure com l'enviro: bit es pot utilitzar per a mesures de color i llum i l'escriptura MakeCode que permeten realitzar-les. La combinació de micro: bit i enviro: bit és un dispositiu agradable i econòmic per demostrar pràcticament els principis de les mesures científiques i jugar amb ells.

Aquest instructiu forma part del concurs "Arc de Sant Martí". Si us agrada, doneu-li el vostre vot. Gràcies H

Pas 1: materials utilitzats

Micro: bit, 13 GBP a Pimoroni.

Pimoroni Enviro: bit, 20 GBP a Pimoroni.

Pimoroni Power: bit, 6 GBP a Piomoroni. També podeu utilitzar bateries o un LiPo per al micro: bit

Bloc de mostra del filtre de color Rosco Cinegel. Vaig obtenir la meva de Modulor, Berlín.

Gots de plàstic de colors IKEA. IKEA, Berlín.

Flors silvestres. Un prat a Potsdam-Golm.

Pas 2: l'script MakeCode / JavaScript

Pimoroni ha desenvolupat una biblioteca per al bit Enviro: bit, tant per a l’entorn de codificació MakeCode / JavaScript com per a MicroPython. Aquí he utilitzat MakeCode, ja que els scripts es poden penjar directament al micro: bit i permeten codificar blocs.

El guió llegeix els valors dels canals vermell, verd i blau (RGB) i clar (C). Els primers es donen en valors de 0 a 255, el segon en tot el rang de 0 a aproximadament 61000.

L'abast del canal clar és molt ampli i permet mesurar des de la llum del dia fins a una habitació fosca.

A hores d’ara no entenc tots els detalls de la funció de mesura del color, però suposo que tenen implementats alguns mecanismes de correcció i normalització.

Al principi, es prenen els valors dels quatre canals. Per poder mostrar els resultats a la matriu de LED de 5x5, s’utilitzen valors mesurats per col·locar els resultats en contenidors de 5 (RGB) o 10 (C), representats per un LED en un (R, G, B) o dues files (C).

En el cas del RGB, l’escala és lineal i la mida de l’interval de cada safata és de 51 unitats d’amplada. En el cas de C, l’escala és logarítmica en 10 passos (log3, de manera que cada pas és el triple de l’anterior). Això permet mostrar condicions molt tenues i molt brillants per igual.

En prémer el botó A es mostren els valors R, G i B en números, prement B el valor C. A + B activa els LED i B els apagarà.

deixem bR = 0 // bins

deixem bG = 0 deixem bB = 0 deixem bS = 0 deixem bC = 0 deixem bCx = 0 deixem S = 0 // valors mesurats deixem C = 0 deixem B = 0 deixem G = 0 deixem R = 0 bàsic. per sempre (() => {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, màxim 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) {// Saturació 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} // escriviu a 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)}})

Pas 3: Prendre mesures RGB: mode de llum transmesa

Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa
Prendre mesures RGB: mode de llum transmesa

Com s’ha indicat abans, hi ha dos modes de mesurament del color: l’espectroscòpia de llum transmesa i reflectida. En el mode de llum transmesa, la llum passa per un filtre de color o una solució al sensor. En les mesures de llum reflectida, la llum emesa, per exemple, dels objectes LED es reflecteix en un objecte i el detecta el sensor.

Els valors RGB es mostren a la tercera a la cinquena fila de la matriu LED micro: bit 5x5, amb els LED superiors que representen baixos, els LED inferiors els valors alts.

Per als experiments que es mostren aquí sobre mesures de llum transmesa, he utilitzat la llum del dia i he col·locat filtres de colors d’un paquet de mostres de Rosco davant del sensor. Podeu veure els efectes a la pantalla, especialment al canal vermell. Mireu les imatges i compareu els patrons.

Per llegir els valors reals, només heu de prémer el botó A.

Pas 4: llum reflectida RGB i mesures de brillantor

Mesures de brillantor i RGB reflectides
Mesures de brillantor i RGB reflectides
Mesures de brillantor i RGB reflectides
Mesures de brillantor i RGB reflectides
Mesures de brillantor i RGB reflectides
Mesures de brillantor i RGB reflectides

Per a les mesures de llum reflectida, vaig encendre els LEDs (botó [A + B]) i vaig col·locar algunes peces de colors brillants de gots infantils IKEA davant del sensor. Com es pot veure a les imatges, els valors RGB canvien com s’esperava.

Per a les mesures de brillantor, es mostren valors baixos a la primera i valors alts a la segona fila. Valors baixos als valors superiors i superiors dels LED inferiors. Per llegir el valor precís, premeu el botó B.

Pas 5: Mesures de llum reflectides: flors

Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors
Mesures de llum reflectides: flors

Vaig agafar algunes flors silvestres d’un prat i vaig intentar fer-ne algunes mesures de color: eren rosella, blauet, fulles marrons, fulles de paret i fulles de diana. Els valors RGB eren [R, G, B]:

  • cap [92, 100, 105]
  • rosella (vermella) [208, 98, 99]
  • blauet (blau) [93, 96, 138]
  • nuca marró (lila) [122, 97, 133]
  • muralla (groc) [144, 109, 63]
  • fulla de dent de sang (verda) [164, 144, 124]

La qual cosa s’adapta a les expectatives, almenys per a les tres primeres plantes. Per mostrar els colors dels valors, podeu utilitzar una calculadora de colors, com la que hi ha aquí.

Recomanat: