Cuprins:

Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit: 5 pași
Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit: 5 pași

Video: Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit: 5 pași

Video: Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit: 5 pași
Video: Atenție! Este periculos să trecem Nulul prin Intrerupator 2024, Iulie
Anonim
Măsurători de lumină și culoare cu ajutorul Pimoroni Enviro: bit pentru Micro: bit
Măsurători de lumină și culoare cu ajutorul Pimoroni Enviro: bit pentru Micro: bit
Măsurători de lumină și culoare cu ajutorul Pimoroni Enviro: bit pentru Micro: bit
Măsurători de lumină și culoare cu ajutorul Pimoroni Enviro: bit pentru Micro: bit
Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit
Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit

Am lucrat anterior la unele dispozitive care permit măsurători de lumină și culoare și s-ar putea să găsiți multe despre teoria din spatele acestor măsurători, instructabile aici și aici.

Pimoroni a lansat recent enviro: bit, un supliment pentru micro: bit, care vine cu un microfon MEMS pentru măsurarea nivelului de sunet, un senzor de temperatură / umiditate / presiune aer BME280 și un senzor TCS3475 de lumină și culoare (RGBC). În plus, există două LED-uri plasate pe părțile laterale ale senzorului de culoare, permițând măsurarea culorii obiectelor prin lumina reflectată. Construirea unui instrument pentru a efectua aceste măsurători nu a fost niciodată mai ușoară.

Aici aș dori să descriu modul în care enviro: bit poate fi utilizat pentru măsurători de culoare și lumină și scriptul MakeCode care permite efectuarea acestora. Combinația de micro: bit și enviro: bit este un dispozitiv drăguț și ieftin pentru a demonstra principiile măsurătorilor științifice și a se juca cu ele.

Acest instructable face parte din concursul „Rainbow”. Dacă îți place, dă-i votul tău. MulțumescH

Pasul 1: Materiale utilizate

Micro: bit, 13 GBP la Pimoroni.

Pimoroni Enviro: biți, 20 GBP la Pimoroni.

Pimoroni Power: bit, 6 GBP la Piomoroni. De asemenea, puteți utiliza acumulatori sau un LiPo pentru micro: bit

Bloc de probă filtru de culoare Rosco Cinegel. Mi-am luat-o de la Modulor, Berlin.

Pahare de plastic IKEA colorate. IKEA, Berlin.

Flori sălbatice. O pajiște la Potsdam-Golm.

Pasul 2: Scriptul MakeCode / JavaScript

Pimoroni a dezvoltat o bibliotecă pentru Enviro: bit, atât pentru mediul de codificare MakeCode / JavaScript, cât și pentru MicroPython. Aici am folosit MakeCode, deoarece scripturile pot fi încărcate direct pe micro: bit și permite codarea blocurilor.

Scriptul citește valorile canalelor roșu, verde și albastru (RGB) și clar (C). Primele sunt date în valori de la 0 la 255, a doua din întreaga gamă de la 0 la aproximativ 61000.

Gama canalului clar este foarte largă și permite măsurători de la lumina zilei până la o cameră întunecată.

Până acum nu înțeleg toate detaliile funcției de măsurare a culorii, dar presupun că au implementate unele mecanisme de corecție și normalizare.

La început, sunt luate valorile tuturor celor patru canale. Pentru a putea afișa rezultatele pe matricea LED 5x5, valorile măsurate sunt folosite pentru a plasa rezultatele în 5 (RGB) sau 10 (C) pubele, care sunt reprezentate de un LED în unul (R, G, B) sau două (C) rânduri.

În cazul RGB, scalarea este liniară, iar dimensiunea intervalului fiecărui coș este de 51 de lățimi. În cazul lui C, scalarea este logaritmică pe 10 pași (log3, deci fiecare pas este de 3 ori mai mare decât cel anterior). Acest lucru permite afișarea condițiilor foarte slabe și foarte luminoase deopotrivă.

Apăsarea butonului A afișează valorile R, G și B în cifre, apăsând B valoarea C. A + B activează LED-urile și B le va închide.

să bR = 0 // bins

să bG = 0 să bB = 0 să bS = 0 să bC = 0 să bCx = 0 să S = 0 // valori măsurate să fie C = 0 să B = 0 să G = 0 să R = 0 de bază. => {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} altfel if (B> = 51) {bB = 1} else {bB = 0} if (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} 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} // scrie pe 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)}})

Pasul 3: luarea măsurătorilor RGB: modul de lumină transmisă

Luarea măsurătorilor RGB: Mod lumină transmisă
Luarea măsurătorilor RGB: Mod lumină transmisă
Luarea măsurătorilor RGB: Mod de lumină transmisă
Luarea măsurătorilor RGB: Mod de lumină transmisă
Luarea măsurătorilor RGB: Mod lumină transmisă
Luarea măsurătorilor RGB: Mod lumină transmisă
Luarea măsurătorilor RGB: Mod lumină transmisă
Luarea măsurătorilor RGB: Mod lumină transmisă

După cum s-a indicat anterior, există două moduri de măsurare a culorii: spectroscopia luminii transmise și reflectate. În modul de lumină transmisă, lumina trece printr-un filtru sau soluție colorată către senzor. În măsurătorile de lumină reflectată, lumina emisă de ex. de la LED-uri este reflectată de un obiect și este detectată de senzor.

Valorile RGB sunt apoi afișate în rândurile a 3-a până la a 5-a a matricei de LED-uri micro: bit 5x5, LED-urile superioare reprezentând valori scăzute, LED-urile inferioare valorile ridicate.

Pentru experimentele prezentate aici cu privire la măsurătorile de lumină transmisă, am folosit lumina zilei și am plasat filtre colorate dintr-un pachet de probe Rosco în fața senzorului. Puteți vedea efectele pe ecran, în special pe canalul roșu. Aruncați o privire asupra imaginilor și comparați modelele.

Pentru a citi valorile reale, trebuie doar să apăsați butonul A.

Pasul 4: RGB reflectat și măsurători de luminozitate

RGB reflectat și măsurători de luminozitate
RGB reflectat și măsurători de luminozitate
RGB reflectat și măsurători de luminozitate
RGB reflectat și măsurători de luminozitate
RGB reflectat și măsurători de luminozitate
RGB reflectat și măsurători de luminozitate

Pentru măsurători de lumină reflectată, am aprins LED-urile (butonul [A + B]) și am așezat în fața senzorului câteva bucăți colorate de cupe pentru copii IKEA. După cum se poate vedea din imagini, valorile RGB se schimbă așa cum era de așteptat.

Pentru măsurătorile de luminozitate, valorile scăzute sunt afișate în primul, valorile mari în al doilea rând. Valori scăzute în valorile superioare, mai mari de către LED-urile inferioare. Pentru a citi valoarea exactă, apăsați butonul B.

Pasul 5: Măsurători de lumină reflectate: flori

Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori
Măsurători de lumină reflectate: flori

Am cules câteva flori sălbatice dintr-o pajiște și am încercat să le efectuez câteva măsurători de culoare. Au fost mac, floarea de porumb, nuci maronii, harkweed de perete și o frunză de dandelon. Valorile RGB au fost [R, G, B]:

  • niciuna [92, 100, 105]
  • mac (roșu) [208, 98, 99]
  • floarea de porumb (albastru) [93, 96, 138]
  • nuci maronii (liliac) [122, 97, 133]
  • harkweed de perete (galben) [144, 109, 63]
  • frunza de păpădie (verde) [164, 144, 124]

Ceea ce se potrivește așteptărilor, cel puțin pentru primele trei plante. Pentru a afișa culorile din valori, puteți utiliza un calculator de culoare, ca cel de aici.

Recomandat: