Cuprins:
- Pasul 1: Materiale utilizate
- Pasul 2: Scriptul MakeCode / JavaScript
- Pasul 3: luarea măsurătorilor RGB: modul de lumină transmisă
- Pasul 4: RGB reflectat și măsurători de luminozitate
- Pasul 5: Măsurători de lumină reflectate: flori
Video: Măsurători de lumină și culoare cu Pimoroni Enviro: bit pentru Micro: bit: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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ă
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
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
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:
Utilizarea Pimoroni Enviro + FeatherWing cu Adafruit Feather NRF52840 Express: 8 pași
Utilizarea Pimoroni Enviro + FeatherWing Cu Adafruit Feather NRF52840 Express: Pimoroni Enviro + FeatherWing este o placă plină de senzori concepută pentru a funcționa cu seria de plăci Adafruit Feather. Este un loc util pentru a începe pentru oricine este interesat de monitorizarea mediului, poluarea atmosferică și amestecul de date. Eu
Hydroponics IoT - Utilizarea Watson IBM pentru măsurători PH și EC: 7 pași (cu imagini)
Hydroponics IoT - Utilizarea Watson IBM pentru măsurători PH și EC: Această instrucțiune va arăta cum să monitorizați EC, pH și temperatura unei configurații hidroponice și să încărcați datele în serviciul Watson IBM. Watson este liber să înceapă. Există planuri plătite, dar planul gratuit este mai mult decât suficient pentru acest proiect
Lumina reactivă pentru muzică -- Cum să faci lumină reactivă pentru muzică super simplă pentru a face desktop-ul grozav .: 5 pași (cu imagini)
Muzică lumină reactivă || Cum să facem muzică super simplă lumină reactivă pentru a face desktopul grozav. basul care este de fapt semnal audio de joasă frecvență. Este foarte simplu de construit. Vom
Lumină pentru pistă multi-culoare: 4 pași
Lumină multifuncțională pentru pistă: Această versiune instructabilă este o versiune modificată a diferitelor instructabile LED Sun Sun și Night Light de pe acest site. Acesta este primul meu instructable postat și este într-adevăr doar o dovadă a conceptului în acest moment. Planurile de revizuire au început deja. Acest pa
Cadru de lumină (pentru caseta de lumină pentru fotografii Tekjocks): 3 pași
Cadru de lumină (pentru Tekjocks Photography Light Box): Iată urmărirea pentru Cutia mea de lumină pentru fotografie. Nu am de gând să-l detaliaz pe acesta, deoarece se va reduce la dimensiunea tubului pe care îl veți determina, de ce dimensiune veți avea nevoie de hardware. Deci, acesta va fi un tutorial de bază. Voi fi postat