Բովանդակություն:

Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ

Video: Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ

Video: Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Video: Ֆիզիկա, Լույսի կլանում և անդրադարձում. 6-րդ դասարան 2024, Հուլիսի
Anonim
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ
Լույսի և գույնի չափումներ Pimoroni Enviro- ի հետ

Նախկինում ես աշխատում էի որոշ սարքերի վրա, որոնք թույլ են տալիս չափել լույսի և գույնի չափերը, և դուք կարող եք շատ բան գտնել նման չափումների հիմքում ընկած տեսության մասին ՝ այստեղ և այստեղ:

Pimoroni- ն վերջերս թողարկել է enviro: bit- ը, որը հավելում է միկրո: Բացի այդ, կա երկու LED, որոնք տեղադրված են գույնի սենսորի կողմերում, ինչը թույլ է տալիս չափել առարկաների գույնը արտացոլված լույսի միջոցով: Այս չափումները կատարելու համար ինքներդ գործիք կառուցելը երբեք ավելի հեշտ չի եղել:

Այստեղ ես կցանկանայի նկարագրել, թե ինչպես է շրջակա միջավայրը. Micro: bit- ի և enviro: bit- ի համադրությունը գեղեցիկ և էժան սարք է ՝ գիտական չափումների սկզբունքները գործնականում ցուցադրելու և դրանց հետ խաղալու համար:

Այս հրահանգը «ainիածան» մրցույթի մի մասն է: Եթե ձեզ դուր է գալիս, խնդրում ենք տալ ձեր ձայնը: Շնորհակալություն

Քայլ 1: Օգտագործված նյութեր

Միկրո ՝ բիթ, 13 GBP Pimoroni- ում:

Pimoroni Enviro. Բիթ, 20 GBP Pimoroni- ում:

Pimoroni Power: բիթ, 6 GBP Piomoroni- ում: Դուք նաև կարող եք օգտագործել մարտկոցի տուփերը կամ LiPo- ն միկրո: բիտի համար

Rosco Cinegel գույնի ֆիլտրի նմուշի բլոկ: Ես իմը ստացել եմ Բեռլինի Մոդուլոր քաղաքից:

IKEA գունավոր պլաստիկ բաժակներ: ԻԿԵԱ, Բեռլին:

Վայրի ծաղիկներ: Մարգագետին Պոտսդամ-Գոլմում:

Քայլ 2: MakeCode/JavaScript Script

Pimoroni- ն Enviro: bit- ի համար մշակել է գրադարան, ինչպես MakeCode/JavaScript կոդավորման միջավայրի, այնպես էլ MicroPython- ի համար: Ես այստեղ օգտագործել եմ MakeCode- ը, քանի որ սցենարները կարող են ուղղակիորեն վերբեռնվել միկրո: բիթ և թույլ է տալիս արգելափակել կոդավորումը:

Սցենարը կարդում է կարմիր, կանաչ և կապույտ (RGB) և հստակ (C) ալիքների արժեքները: Առաջինը տրվում է 0 -ից 255 արժեքներով, երկրորդը `0 -ից մինչև 61000 ամբողջ տիրույթում:

Մաքուր ալիքի միջակայքը շատ լայն է և թույլ է տալիս չափումներ կատարել ցերեկային լույսից մինչև մութ սենյակ:

Մինչ այժմ ես չեմ հասկանում գույնի չափման գործառույթի բոլոր մանրամասները, բայց ենթադրում եմ, որ դրանցում կիրառվել են ուղղման և նորմալացման որոշ մեխանիզմներ:

Սկզբում վերցված են բոլոր չորս ալիքների արժեքները: 5x5 LED մատրիցի վրա արդյունքները ցուցադրելու համար չափված արժեքներն օգտագործվում են արդյունքները տեղադրելու համար 5 (RGB) կամ 10 (C) աղբարկղերում, որոնք ներկայացված են մեկ LED- ով մեկում (R, G, B) կամ երկու (C) տող:

RGB- ի դեպքում մասշտաբավորումը գծային է, և յուրաքանչյուր աղբարկղի միջակայքի չափը `51 միավոր լայնություն: C- ի դեպքում մասշտաբավորումը լոգարիթմական է 10 քայլից (log3, այնպես որ յուրաքանչյուր քայլ նախորդի եռապատիկն է): Սա թույլ է տալիս ցուցադրել շատ մռայլ և շատ պայծառ պայմաններ:

Կտտացնելով կոճակը A- ն ցուցադրում է R, G և B արժեքները թվերով, B- ն սեղմելով C արժեքը: A+B- ն ակտիվացնում է LED- ները, և B- ն դրանք կփակեն:

թող bR = 0 // աղբարկղեր

թող bG = 0 թող bB = 0 թող bS = 0 թող bC = 0 թող bCx = 0 թող S = 0 // չափված արժեքները թող C = 0 թող B = 0 թող G = 0 թող R = 0 հիմնական: հավերժ (() => {if (input.buttonIsPressed (Button. AB)) {envirobit.setLEDs (envirobit. OnOff. On)} else if (input.buttonIsPressed (Button. A)) {basic.showString ("R:" + R + "G:" + G + "B:" + B)} այլ դեպքում, եթե (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 եթե (R> = 204) { // binning, առավելագույնը 255 bR = 4} այլ դեպքում (R> = 153) {bR = 3} այլ դեպքում, եթե (R> = 102) {bR = 2} այլ դեպքում, եթե (R> = 51) {bR = 1} այլ {bR = 0} եթե (G> = 204) {bG = 4} այլ դեպքում (G> = 153) {bG = 3} այլ դեպքում, եթե (G> = 102) {bG = 2} այլ դեպքում, եթե (G> = 51) {bG = 1} այլ {bG = 0} եթե (B> = 204) {bB = 4} այլ դեպքում, եթե (B> = 153) {bB = 3} այլ դեպքում, եթե (B> = 102) {bB = 2} հակառակ դեպքում (B> = 51) {bB = 1} այլ {bB = 0} եթե (C> = 60000) {// Հագեցվածությունը bCx = 4} այլ դեպքում (C> = 20000) {bCx = 3} այլ դեպքում, եթե (C> = 6600) {bCx = 2} այլ դեպքում, եթե (C> = 2200) {bCx = 1} այլ դեպքում, եթե (C> = 729) {bCx = 0} այլ դեպքում (C> = 243) {bC = 4} այլ դեպքում, եթե (C> = 81) {bC = 3} այլ դեպքում, եթե (C> = 27) {bC = 2} else if (C> = 9) {bC = 1} else {bC = 0} // գրել led basic.clearScreen () if (bCx <5) {led.plot (1, bCx)} else {led.plot (0, մ.թ.)} led.plot (2, bR) led.plot (3, bG) led.plot (4, bB)}})

Քայլ 3. RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ

RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ
RGB չափումներ կատարելը. Փոխանցվող լույսի ռեժիմ

Ինչպես նշվեց նախկինում, գույների չափման երկու եղանակ կա `փոխանցվող և արտացոլված լույսի սպեկտրոսկոպիա: Փոխանցվող լույսի ռեժիմում լույսը անցնում է սենսորի գունավոր ֆիլտրով կամ լուծույթով: Արտացոլված լույսի չափումներում արտանետվող լույսը, օրինակ. LED- ներից արտացոլվում է օբյեկտի կողմից և հայտնաբերվում է սենսորի կողմից:

RGB- ի արժեքներն այնուհետև ցուցադրվում են միկրոյի 3 -ից 5 -րդ շարքերում `բիթ 5x5 LED մատրիցա, որի վերին LED- ները ցածր են ներկայացնում, իսկ ցածր LED- ները` բարձր արժեքներ:

Այստեղ փոխանցված լույսի չափումների վրա ցուցադրված փորձերի համար ես օգտագործել եմ ցերեկը և սենսորի դիմաց տեղադրել Rosco- ի նմուշի տուփի գունավոր զտիչներ: Էֆեկտները կարող եք տեսնել էկրանին, հատկապես կարմիր ալիքում: Նայեք նկարներին և համեմատեք նախշերը:

Իրական արժեքները կարդալու համար պարզապես սեղմեք կոճակը A.

Քայլ 4: Արտացոլված լույսի RGB և պայծառության չափումներ

Արտացոլված լույսի RGB և պայծառության չափումներ
Արտացոլված լույսի RGB և պայծառության չափումներ
Արտացոլված լույսի RGB և պայծառության չափումներ
Արտացոլված լույսի RGB և պայծառության չափումներ
Արտացոլված լույսի RGB և պայծառության չափումներ
Արտացոլված լույսի RGB և պայծառության չափումներ

Լույսի արտացոլված չափումների համար ես միացրեցի LED- ները (կոճակը [A+B]) և սենսորի դիմաց տեղադրեցի IKEA- ի մանկական բաժակների մի քանի վառ գույնի կտորներ: Ինչպես երևում է նկարներից, RGB- ի արժեքները փոխվում են սպասվածի պես:

Պայծառության չափումների համար առաջինում ցուցադրվում են ցածր արժեքներ, երկրորդ շարքում `բարձր արժեքներ: Valuesածր արժեքներ վերին, ավելի բարձր արժեքներ ստորին LED- ների կողմից: Valueշգրիտ արժեքը կարդալու համար սեղմեք B կոճակը:

Քայլ 5. Արտացոլված լույսի չափումներ. Ersաղիկներ

Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ
Արտացոլված լույսի չափումներ. Ersաղիկներ

Ես մարգագետնից որոշ վայրի ծաղիկներ վերցրեցի և փորձեցի դրանց վրա որոշ գունային չափումներ կատարել: Դա եղել է կակաչ, եգիպտացորեն, շագանակագույն թան, պատի թրթուր և դիլանդելոնի տերև: RGB- ի արժեքներն էին [R, G, B]:

  • ոչ մեկը [92, 100, 105]
  • կակաչ (կարմիր) [208, 98, 99]
  • եգիպտացորեն (կապույտ) [93, 96, 138]
  • շագանակագույն հյուս (յասաման) [122, 97, 133]
  • պատի harkweed (դեղին) [144, 109, 63]
  • դանդելի տերև (կանաչ) [164, 144, 124]

Ինչը համապատասխանում է սպասելիքներին, առնվազն առաջին երեք բույսերի համար: Գույները արժեքներից ցուցադրելու համար կարող եք օգտագործել գունային հաշվիչ, ինչպես այստեղ:

Խորհուրդ ենք տալիս: