Obsah:

Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit: 5 kroků
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit: 5 kroků

Video: Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit: 5 kroků

Video: Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit: 5 kroků
Video: Měření barev aneb barvy ve světě čísel – Fyzikální kaleidoskop s Karlem Lemrem 2024, Listopad
Anonim
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit
Měření světla a barev pomocí Pimoroni Enviro: bit pro Micro: bit

Dříve jsem pracoval na některých zařízeních, která umožňují měření světla a barev, a zde a zde najdete mnoho o teorii těchto měření.

Společnost Pimoroni nedávno vydala enviro: bit, doplněk pro micro: bit, který je dodáván s mikrofonem MEMS pro měření hladiny zvuku, snímačem teploty/vlhkosti/tlaku vzduchu BME280 a světelným a barevným senzorem TCS3475 (RGBC). Kromě toho jsou na bocích barevného senzoru umístěny dvě LED diody, které umožňují měřit barvu předmětů odraženým světlem. Sestavení nástroje pro provádění těchto měření nebylo nikdy jednodušší.

Zde bych chtěl popsat, jak lze enviro: bit použít pro měření barev a světla a skript MakeCode, který je umožňuje provádět. Kombinace micro: bit a enviro: bit je pěkné a levné zařízení, které vám umožní demonstrovat principy vědeckých měření a hrát si s nimi.

Tento návod je součástí soutěže „Duha“. Pokud se vám líbí, dejte mu prosím svůj hlas. Děkuji

Krok 1: Použité materiály

Micro: bit, 13 GBP u Pimoroni.

Pimoroni Enviro: bit, 20 GBP u Pimoroni.

Výkon Pimoroni: bit, 6 GBP u Piomoroni. Můžete také použít baterie nebo LiPo pro micro: bit

Blok vzorku barevného filtru Rosco Cinegel. Svůj jsem dostal z Moduloru v Berlíně.

IKEA barevné plastové kelímky. IKEA, Berlín.

Divoké květiny. Louka v Postupimi-Golmu.

Krok 2: Skript MakeCode/JavaScript

Pimoroni vyvinul knihovnu pro Enviro: bit, a to jak pro kódovací prostředí MakeCode/JavaScript, tak pro MicroPython. Zde jsem použil MakeCode, protože skripty lze nahrát přímo na micro: bit a umožňují blokové kódování.

Skript čte hodnoty červeného, zeleného a modrého (RGB) a čistého (C) kanálu. První jsou uvedeny v hodnotách od 0 do 255, druhé v celém rozsahu od 0 do zhruba 61000.

Rozsah čistého kanálu je velmi široký a umožňuje měření od jasného denního světla po temnou místnost.

Teď už nerozumím všem podrobnostem funkce měření barev, ale předpokládám, že mají implementovány nějaké korekční a normalizační mechanismy.

Nejprve se vezmou hodnoty všech čtyř kanálů. Aby bylo možné zobrazit výsledky na matici LED 5x5, používají se naměřené hodnoty k umístění výsledků do 5 (RGB) nebo 10 (C) zásobníků, které jsou reprezentovány jednou LED v jednom (R, G, B) nebo dva (C) řádky.

V případě RGB je škálování lineární a velikost intervalu každého zásobníku je široká 51 jednotek. V případě C je škálování logaritmické na 10 kroků (log3, takže každý krok je 3násobek předchozího). To umožňuje zobrazit velmi slabé a velmi jasné podmínky.

Stisknutím tlačítka A zobrazíte hodnoty R, G a B v číslech, stisknutím B hodnotu C. A+B aktivuje LED diody a B je vypne.

nechte bR = 0 // koše

nech bG = 0 nech bB = 0 nech bS = 0 nech bC = 0 nech bCx = 0 nech S = 0 // naměřené hodnoty nech C = 0 nech B = 0 nech G = 0 nech R = 0 základní. navždy (() => {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} else if (B> = 51) {bB = 1} else {bB = 0} if (C> = 60000) {// Saturace bCx = 4} else if (C> = 20000) {bCx = 3} else if (C> = 6600) {bCx = 2} else if (C> = 2200) {bCx = 1} else if 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} // write to 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)}})

Krok 3: Měření RGB: Režim přenášeného světla

Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla
Měření RGB: Režim přenášeného světla

Jak již bylo naznačeno, existují dva režimy měření barev: spektroskopie procházejícího a odraženého světla. V režimu procházejícího světla světlo prochází barevným filtrem nebo roztokem k senzoru. Při měření odraženého světla světlo vyzařované např. od diod LED se odráží od předmětu a je detekován senzorem.

Hodnoty RGB se pak zobrazí ve 3. až 5. řadě mikro: bitové 5x5 LED matice, přičemž horní LED diody představují nízké, spodní LED vysoké hodnoty.

Pro experimenty zde ukázané na měření procházejícího světla jsem použil denní světlo a před senzor umístil barevné filtry ze sady vzorků Rosco. Efekty můžete vidět na displeji, zejména v červeném kanálu. Podívejte se na obrázky a porovnejte vzory.

Chcete -li přečíst skutečné hodnoty, stačí stisknout tlačítko A.

Krok 4: Odražené světlo RGB a měření jasu

Odražené světlo RGB a měření jasu
Odražené světlo RGB a měření jasu
Odražené světlo RGB a měření jasu
Odražené světlo RGB a měření jasu
Odražené světlo RGB a měření jasu
Odražené světlo RGB a měření jasu

Pro měření odraženého světla jsem rozsvítil diody LED (tlačítko [A+B]) a před senzor umístil několik pestrobarevných kusů dětských šálků IKEA. Jak je vidět z obrázků, hodnoty RGB se mění podle očekávání.

Pro měření jasu jsou nízké hodnoty zobrazeny v prvním, vysoké hodnoty ve druhém řádku. Nízké hodnoty v horních, vyšší hodnoty ve spodních LED diodách. Přesnou hodnotu přečtete stisknutím tlačítka B.

Krok 5: Měření odraženého světla: květiny

Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny
Měření odraženého světla: květiny

Nasbíral jsem nějaké divoké květiny z louky a pokusil se na nich provést nějaké barevné měření. Byl to mák, chrpa, hnědý plíseň, nástěnka a listnatý list. Hodnoty RGB byly [R, G, B]:

  • žádný [92, 100, 105]
  • mák (červený) [208, 98, 99]
  • chrpa (modrá) [93, 96, 138]
  • plevel hnědý (šeřík) [122, 97, 133]
  • žralok nástěnný (žlutý) [144, 109, 63]
  • list pampelišky (zelený) [164, 144, 124]

Což odpovídá očekávání, alespoň pro první tři závody. K zobrazení barev z hodnot můžete použít kalkulačku barev, jako je zde.

Doporučuje: