Sisällysluettelo:
- Vaihe 1: Käytetyt materiaalit
- Vaihe 2: MakeCode/JavaScript -skripti
- Vaihe 3: RGB -mittausten tekeminen: Lähetetty valotila
- Vaihe 4: Heijastuneen valon RGB ja kirkkauden mittaukset
- Vaihe 5: Heijastuneet valomittaukset: Kukat
Video: Valon ja värin mittaukset Pimoroni Enviro: bitillä Micro: bitille: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Olin aiemmin työskennellyt joidenkin laitteiden kanssa, jotka mahdollistavat valon ja värin mittaamisen, ja saatat löytää paljon teoriasta tällaisten mittausten takana.
Pimoroni on äskettäin julkaissut enviro: bit -lisäosan micro: bitille, jossa on MEMS-mikrofoni äänitason mittaamiseen, BME280-lämpötila-/kosteus-/ilmanpaineanturi ja TCS3475-valo- ja värianturi (RGBC). Lisäksi värianturin sivuilla on kaksi LEDiä, joiden avulla voidaan mitata esineiden väriä heijastuneen valon avulla. Työkalun rakentaminen näiden mittausten suorittamiseen ei ole koskaan ollut helpompaa.
Haluaisin tässä kuvata, miten enviro: bittiä voidaan käyttää väri- ja valomittauksiin ja MakeCode -skriptiin, jonka avulla ne voidaan suorittaa. Micro: bitin ja enviro: bitin yhdistelmä on mukava ja edullinen laite, joka osoittaa tieteellisten mittausten periaatteet käytännössä ja leikkii niiden kanssa.
Tämä ohje on osa "Rainbow" -kilpailua. Jos pidät siitä, anna sille äänesi. KiitosH
Vaihe 1: Käytetyt materiaalit
Mikro: bitti, 13 GBP Pimoronissa.
Pimoroni Enviro: bitti, 20 GBP Pimoronissa.
Pimoroni Power: bitti, 6 GBP Piomoronissa. Voit myös käyttää micro -bitin akkuja tai LiPo -laitetta
Rosco Cinegel -värisuodattimen näytekappale. Sain omani Modulorista, Berliinistä.
IKEA -väriset muovikupit. IKEA, Berliini.
Villit kukat. Niitty Potsdam-Golmissa.
Vaihe 2: MakeCode/JavaScript -skripti
Pimoroni on kehittänyt Enviro: bitille kirjaston sekä MakeCode/JavaScript -koodausympäristöön että MicroPythoniin. Tässä olen käyttänyt MakeCodea, koska komentosarjat voidaan ladata suoraan micro: bitille ja sallii lohkokoodauksen.
Käsikirjoitus lukee punaisen, vihreän ja sinisen (RGB) ja selkeän (C) kanavan arvot. Ensimmäiset arvot ovat 0–255, toinen koko alueella 0–61000.
Kirkkaiden kanavien alue on erittäin laaja ja mahdollistaa mittaukset kirkkaasta päivänvalosta pimeään huoneeseen.
Tähän mennessä en ymmärrä kaikkia värinmittaustoiminnon yksityiskohtia, mutta oletan, että niissä on joitakin korjaus- ja normalisointimekanismeja.
Aluksi otetaan kaikkien neljän kanavan arvot. Jotta tulokset voidaan näyttää 5x5 LED -matriisissa, mitattuja arvoja käytetään tulosten sijoittamiseen 5 (RGB) tai 10 (C) lokeroon, joita edustaa yksi LED joko yhdessä (R, G, B) tai kaksi (C) riviä.
RGB: n tapauksessa skaalaus on lineaarinen ja kunkin säiliön väli on 51 yksikköä leveä. C: n tapauksessa skaalaus on logaritminen 10 vaiheen aikana (log3, joten jokainen vaihe on edellisen kolminkertainen). Tämä mahdollistaa erittäin hämärien ja erittäin kirkkaiden olosuhteiden näyttämisen.
Painikkeen A painaminen näyttää R-, G- ja B -arvot numeroina ja paina B -arvoa C. A+B aktivoi LEDit ja B sammuttaa ne.
olkoon bR = 0 // bins
Olkoon bG = 0 anna bB = 0 anna bS = 0 anna bC = 0 anna bCx = 0 anna S = 0 // mitatut arvot anna C = 0 anna B = 0 anna G = 0 anna R = 0 perus. 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, enintään 255 bR = 4} else if (R> = 153) {bR = 3} else if (R> = 102) {bR = 2} else if (R> = 51) {bR = 1} else {bR = 0} jos (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) {// Kylläisyys 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} // kirjoita 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)}})
Vaihe 3: RGB -mittausten tekeminen: Lähetetty valotila
Kuten edellä on mainittu, värimittauksia on kaksi: läpäisevän ja heijastuneen valon spektroskopia. Läpäisevän valon tilassa valo kulkee värillisen suodattimen tai liuoksen läpi anturiin. Heijastuneen valon mittauksissa valoa säteilee mm. LED -valoista heijastuu esine ja anturi havaitsee ne.
RGB -arvot näytetään sitten micro: bit 5x5 LED -matriisin 3. - 5. rivillä, ja ylemmät LEDit edustavat matalia, alemmat LEDit korkeita arvoja.
Tässä näytetyissä kokeissa läpäisevän valon mittauksista käytin päivänvaloa ja asetin värilliset suodattimet Roscon näytepakkauksesta anturin eteen. Näet tehosteet näytöllä, etenkin punaisella kanavalla. Katso kuvia ja vertaa kuvioita.
Voit lukea todelliset arvot painamalla painiketta A.
Vaihe 4: Heijastuneen valon RGB ja kirkkauden mittaukset
Heijastuneen valon mittauksia varten laitoin LEDit päälle (painike [A+B]) ja asetin anturin eteen joitakin kirkkaanvärisiä IKEA -lapsikuppeja. Kuten kuvista näkyy, RGB -arvot muuttuvat odotetusti.
Kirkkausmittauksissa pienet arvot näkyvät ensimmäisellä ja suuret arvot toisella rivillä. Alhaiset arvot ylemmillä, korkeammat arvot alemmilla LEDeillä. Voit lukea tarkan arvon painamalla painiketta B.
Vaihe 5: Heijastuneet valomittaukset: Kukat
Poimin niityltä villikukkia ja yritin tehdä niille värimittauksia: ne olivat unikkoa, ruiskaunokkaa, ruskeaa kukkaa, seinäharkkoa ja dilandeloninlehteä. RGB -arvot olivat [R, G, B]:
- ei mitään [92, 100, 105]
- unikko (punainen) [208, 98, 99]
- ruiskaunokki (sininen) [93, 96, 138]
- ruskea nilviä (lila) [122, 97, 133]
- seinäharkko (keltainen) [144, 109, 63]
- voikukanlehti (vihreä) [164, 144, 124]
Joka vastaa odotuksia, ainakin kolmen ensimmäisen tehtaan osalta. Jos haluat näyttää arvot väreistä, voit käyttää värilaskinta, kuten tässä.
Suositeltava:
Pimoroni Enviro+ FeatherWingin käyttö Adafruit Feather NRF52840 Expressin kanssa: 8 vaihetta
Pimoroni Enviro+ FeatherWingin käyttö Adafruit Feather NRF52840 Expressin kanssa: Pimoroni Enviro+ FeatherWing on levy, joka on täynnä antureita, jotka on suunniteltu toimimaan Adafruit Feather -sarjan levyjen kanssa. Se on hyödyllinen paikka aloittaa kaikille, jotka ovat kiinnostuneita ympäristön seurannasta, ilmansaasteista ja tiedonsiirrosta. Minä
Servomoottorien käyttäminen Moto: bitillä Mikro: bitillä: 7 vaihetta (kuvilla)
Servomoottoreiden käyttäminen Moto: bitin kanssa Micro: bit: Yksi tapa laajentaa micro: bitin toimintoja on käyttää korttia nimeltä moto: bit SparkFun Electronics (noin 15-20 dollaria). Se näyttää monimutkaiselta ja siinä on monia ominaisuuksia, mutta ei ole vaikeaa käyttää servomoottoreita siitä. Moto: bitin avulla voit
ACS724 Virta -anturin mittaukset Arduinolla: 4 vaihetta
ACS724 -virta -anturin mittaukset Arduinolla: Tässä ohjeessa kokeillaan ACS724 -virta -anturin liittämistä Arduinoon virtamittausten tekemiseksi. Tässä tapauksessa nykyinen anturi on +/- 5A-lajike, joka lähettää 400 mv/A.Arduino Unossa on 10-bittinen ADC, joten hyviä kysymyksiä
Verkkokilpailu: matalan latenssin peli BBC Micro: bitille: 10 vaihetta (kuvilla)
Verkkokilpailu: matalan viiveen peli BBC Micro: bitille: Tässä opetusohjelmassa selitän, kuinka perusmoninpeli toteutetaan BBC: n mikro: bitillä seuraavilla ominaisuuksilla: Yksinkertainen käyttöliittymä Pieni viive painikkeiden ja näytön päivitykset Joustava osallistujamäärä Helppo yhteistyö
Lelunosturin hakkerointi Micro: bitille: 9 askelta
Lelunosturin hakkerointi Micro: bit Controlille: Tässä vaiheittaisessa oppaassa käymme läpi lelunosturin mukauttamisen niin, että sitä voidaan ohjata BBC: n mikrobitillä käyttämällä Kitronik Motor Driver Boardia BBC: lle: bitti ja BBC micro: bitin sisäänrakennettu kiihtyvyysmittari kallistuksen havaitsemiseksi