Tartalomjegyzék:

Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: 5 lépés
Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: 5 lépés

Videó: Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: 5 lépés

Videó: Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: 5 lépés
Videó: Kvantumtitkosítás - Tudomány a kocsmában - Dr. Gurin Péter 2024, Július
Anonim
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez
Fény- és színmérések A Pimoroni Enviro: bit a Micro: bithez

Korábban dolgoztam néhány olyan eszközön, amelyek lehetővé teszik a fény- és színmérést, és sokat találhat az elméletről az ilyen mérések mögött, itt és itt.

A Pimoroni nemrégiben kiadta az enviro: bit-t, a micro: bit kiegészítőjét, amelyhez tartozik egy MEMS mikrofon a hangszint méréséhez, egy BME280 hőmérséklet/páratartalom/légnyomás érzékelő és egy TCS3475 fény- és színérzékelő (RGBC). Ezenkívül két LED található a színérzékelő oldalán, amelyek lehetővé teszik a tárgyak színének mérését a visszavert fény által. Soha nem volt ilyen egyszerű a szerszám építése ezen mérések elvégzésére.

Itt szeretném leírni, hogyan használható az enviro: bit szín- és fénymérésre, valamint a MakeCode szkript, amely lehetővé teszi ezek elvégzését. A micro: bit és az enviro: bit kombinációja szép és olcsó eszköz a tudományos mérések elveinek gyakorlati bemutatására és a velük való játékra.

Ez az utasítás a "Szivárvány" verseny része. Ha tetszik, kérjük, adja meg a szavazatát. KöszönömH

1. lépés: Használt anyagok

Mikro: bit, 13 GBP a Pimoroni -nál.

Pimoroni Enviro: bit, 20 GBP a Pimoroni -nál.

Pimoroni Power: bit, 6 GBP a Piomoroni -nál. A micro: bithez akkumulátorokat vagy LiPo -t is használhat

Rosco Cinegel színszűrő minta blokk. Az enyémet a berlini Modulorból kaptam.

IKEA színű műanyag poharak. IKEA, Berlin.

Vadvirágok. Egy rét Potsdam-Golmban.

2. lépés: A MakeCode/JavaScript szkript

A Pimoroni fejlesztett egy könyvtárat az Enviro: bit számára, mind a MakeCode/JavaScript kódolási környezethez, mind a MicroPythonhoz. Itt a MakeCode -ot használtam, mivel a szkriptek közvetlenül feltölthetők a micro: bitre, és lehetővé teszik a blokk kódolását.

A szkript beolvassa a piros, zöld és kék (RGB) és a tiszta (C) csatornák értékeit. Az első értékek 0 és 255 között vannak megadva, a második a teljes tartományban 0 és körülbelül 61000 között.

A tiszta csatorna tartománya nagyon széles, és lehetővé teszi a mérést a világos napfénytől a sötét helyiségig.

Mostanáig nem értem a színmérési funkció minden részletét, de feltételezem, hogy vannak bizonyos korrekciós és normalizáló mechanizmusok.

Először mind a négy csatorna értékét veszik. Az eredmények 5x5 LED -es mátrixon való megjelenítéséhez a mért értékeket használjuk az eredmények 5 (RGB) vagy 10 (C) tárolóba helyezésére, amelyeket egy LED jelképez az egyikben (R, G, B) vagy két (C) sor.

RGB esetén a skálázás lineáris, és az egyes tartályok intervallum mérete 51 egység széles. C esetén a skálázás 10 lépésen keresztül logaritmikus (log3, tehát minden lépés az előző 3-szorosa). Ez lehetővé teszi a nagyon gyenge és nagyon világos körülmények megjelenítését egyaránt.

Az A gomb megnyomása számokkal jeleníti meg az R, G és B értékeket, B megnyomásával pedig a C értéket. Az A+B aktiválja a LED -eket, és a B kikapcsolja őket.

legyen bR = 0 // bins

hagyja, hogy bG = 0 legyen bB = 0 legyen bS = 0 legyen bC = 0 legyen bCx = 0 legyen S = 0 // mért értékek legyenek C = 0 legyenek B = 0 legyenek G = 0 legyenek R = 0 alapok. 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)} 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) {// Telítettség 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} // írjon 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)}})

3. lépés: RGB mérések: átvitt fény mód

RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód
RGB mérések: átvitt fény mód

Amint azt korábban jeleztük, kétféle színmérési mód létezik: áteresztett és visszavert fény spektroszkópia. Az áteresztett fény módban a fény színes szűrőn vagy oldaton keresztül jut az érzékelőhöz. A visszavert fény méréseiben a kibocsátott fény pl. a LED -ekről egy tárgy visszaveri, és az érzékelő észleli.

Az RGB értékek ezután a micro: bit 5x5 LED mátrix 3. és 5. sorában jelennek meg, a felső LED -ek alacsony, az alsó LED -ek a magas értékeket.

Az itt bemutatott, az áteresztő fény mérésével kapcsolatos kísérletekhez nappali fényt használtam, és Rosco mintacsomagból származó színes szűrőket helyeztem az érzékelő elé. Láthatja a hatásokat a kijelzőn, különösen a piros csatornában. Nézze meg a képeket, és hasonlítsa össze a mintákat.

A tényleges értékek leolvasásához nyomja meg az A gombot.

4. lépés: Tükröződő fény RGB és fényerő mérések

Tükröződő fény RGB és fényerő mérések
Tükröződő fény RGB és fényerő mérések
Tükröződő fény RGB és fényerő mérések
Tükröződő fény RGB és fényerő mérések
Tükröződő fény RGB és fényerő mérések
Tükröződő fény RGB és fényerő mérések

A visszavert fény méréséhez bekapcsoltam a LED -eket ([A+B] gomb), és néhány élénk színű darab IKEA gyermekpoharat helyeztem az érzékelő elé. Amint a képeken is látható, az RGB értékek a várt módon változnak.

A fényerő méréséhez az alacsony értékek jelennek meg az első, a magas értékek a második sorban. Alacsony értékek a felső, magasabb értékek az alsó LED -ek által. A pontos érték leolvasásához nyomja meg a B gombot.

5. lépés: Tükröződő fénymérések: Virágok

Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok
Tükröződő fénymérések: Virágok

Egy rétről szedtem néhány vadvirágot, és megpróbáltam néhány színmérést végezni rajtuk. Pipacs, búzavirág, barna gyöngyfű, falfű és dilandelonlevél volt. Az RGB értékek [R, G, B] voltak:

  • nincs [92, 100, 105]
  • mák (piros) [208, 98, 99]
  • búzavirág (kék) [93, 96, 138]
  • barna gyöngyvirág (lila) [122, 97, 133]
  • falfű (sárga) [144, 109, 63]
  • pitypanglevél (zöld) [164, 144, 124]

Ami megfelel az elvárásoknak, legalábbis az első három üzem esetében. Az értékek színeinek megjelenítéséhez használhat egy színkalkulátort, mint itt.

Ajánlott: