Мазмуну:

Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит: 5 кадам
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит: 5 кадам

Video: Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит: 5 кадам

Video: Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит: 5 кадам
Video: EEVblog #1291 — Мешок для почты 2024, Ноябрь
Anonim
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит
Pimoroni Enviro менен жарык жана түстү өлчөө: микро үчүн бит: бит

Мен буга чейин жарык менен түстү өлчөөгө мүмкүндүк берген кээ бир түзмөктөрдө иштечүмүн жана мындай өлчөөлөрдүн теориясы жөнүндө бул жерде жана бул жерде көрсөтмөлөрдү көп таба аласыз.

Pimoroni жакында эквивалентти чыгарды: бит, микро: бит, бул үн деңгээлин өлчөө үчүн MEMS микрофону, BME280 температурасы/нымдуулугу/аба басымынын сенсору жана TCS3475 жарык жана түстүү сенсор (RGBC) менен коштолот. Мындан тышкары, түстүү сенсордун капталында жайгаштырылган эки светодиод бар, алар чагылган жарык аркылуу объекттердин түсүн өлчөөгө мүмкүндүк берет. Бул өлчөөлөрдү аткаруу үчүн өзүңүз куралды куруу эч качан оңой болгон эмес.

Мен бул жерде enviro: bitти түстү жана жарыкты өлчөө үчүн жана буларды жасоого мүмкүнчүлүк берген MakeCode сценарийи үчүн кантип колдонсо болорун сүрөттөп бергим келет. Micro: bit жана enviro: bitтин айкалышы-бул илимий өлчөөлөрдүн принциптерин практикалык түрдө көрсөтүү жана алар менен ойноо үчүн жагымдуу жана арзан аппарат.

Бул көрсөтмө "Радуга" сынагынын бир бөлүгү. Эгер сизге жаккан болсо, анда добуш берүүңүздү суранабыз

1 -кадам: Колдонулган материалдар

Микро: бит, Pimoroni боюнча 13 GBP.

Pimoroni Enviro: бит, Pimoroni боюнча 20 GBP.

Pimoroni Power: бит, Piomoroni боюнча 6 GBP. Сиз ошондой эле micro: bit үчүн батарея топтомдорун же LiPo колдоно аласыз

Rosco Cinegel түстүү чыпкасы үлгү блогу. Меники Модулордон, Берлинден.

IKEA түстүү пластикалык чөйчөктөр. IKEA, Берлин.

Жапайы гүлдөр. Потсдам-Голмдогу шалбаалар.

2 -кадам: MakeCode/JavaScript Script

Pimoroni EnCiro: bit үчүн MakeCode/JavaScript коддоо чөйрөсү үчүн жана MicroPython үчүн китепкана иштеп чыкты. Мен бул жерде MakeCode колдондум, анткени сценарийлер түздөн -түз micro: bitке жүктөлүп, блокировкалоого мүмкүндүк берет.

Сценарий кызыл, жашыл жана көк (RGB) жана ачык (C) каналдардын баалуулуктарын окуйт. Биринчилер 0ден 255ке чейин, экинчиси 0дон 61000ге чейинки бүт диапазондо берилет.

Таза каналдын диапазону абдан кең жана күндүн жарыгынан караңгы бөлмөгө чейин өлчөөгө мүмкүндүк берет.

Азырынча мен түстү өлчөө функциясынын бардык деталдарын түшүнбөйм, бирок аларда кээ бир оңдоо жана нормалдаштыруу механизмдери бар деп ойлойм.

Башында бардык төрт каналдын баалуулуктары алынат. Жыйынтыктарды 5x5 LED матрицасында көрсөтө алуу үчүн, өлчөнгөн баалуулуктар натыйжаларды 5 (RGB) же 10 (C) контейнерлерге жайгаштыруу үчүн колдонулат, алар бир LED (R, G, B) же эки (C) катар.

RGB учурда, масштабдоо сызыктуу жана ар бир урнанын интервалынын өлчөмү туурасы 51 бирдик. C учурда, масштабдоо 10 кадамдан ашык логарифмдик (log3, ошондуктан ар бир кадам мурункудан 3 эсе көп). Бул абдан күңүрт жана өтө жарык шарттарды көрсөтүүгө мүмкүндүк берет.

А баскычын басуу R, G жана B маанилерин сандарда көрсөтөт, B ценгин басуу. A+B диоддорду иштетет жана В аларды өчүрөт.

bR = 0 // бинс болсун

let bG = 0 let bB = 0 let bS = 0 let bC = 0 let bCx = 0 let S = 0 // ченелген баалуулуктар C = 0 let B = 0 let G = 0 let R = 0 basic.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} if if (G> = 102) {bG = 2} if if (G> = 51)) {bG = 1} башка {bG = 0} if (B> = 204) {bB = 4} if if (B> = 153) {bB = 3} if if (B> = 102) {bB = 2} else if (B> = 51) {bB = 1} else {bB = 0} if (C> = 60000) {// Saturation bCx = 4} if if (C> = 20000) {bCx = 3} else if (C> = 6600) {bCx = 2} if if (C> = 2200) {bCx = 1} else if (C> = 729) {bCx = 0} if if (C> = 243) {bC = 4} else if (C> = 81) {bC = 3} if if (C> = 27) {bC = 2} else if (C> = 9) {bC = 1} else {bC = 0} // led to 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 -кадам: RGB өлчөөлөрүн алуу: Жарык режими

RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими
RGB өлчөөлөрүн алуу: өткөрүлгөн жарык режими

Жогоруда айтылгандай, түстү өлчөөнүн эки режими бар: өткөрүлгөн жана чагылган жарык спектроскопиясы. Өткөрүлгөн жарык режиминде жарык түстүү чыпкадан же сенсорго эритмеден өтөт. Жарыктын чагылган ченөөлөрүндө жарык ж. Светодиоддордон объект чагылдырылат жана сенсор тарабынан аныкталат.

RGB баалуулуктары андан кийин микро: бит 5x5 LED матрицасынын 3-5 -катарларында көрсөтүлөт, жогорку светодиоддор төмөн, төмөнкү диоддор жогорку баалуулуктарды билдирет.

Бул жерде өткөрүлгөн жарык өлчөө боюнча көрсөтүлгөн эксперименттер үчүн мен күндүзгү жарыкты колдонгон жана сенсордун алдына Rosco үлгүсүндөгү пакеттен түстүү чыпкаларды койгом. Эффекттерди дисплейден, өзгөчө кызыл каналдан көрө аласыз. Сүрөттөрдү карап, үлгүлөрдү салыштырып көрүңүз.

Чыныгы баалуулуктарды окуу үчүн, жөн гана А баскычын басыңыз.

4 -кадам: Reflected Light RGB жана Жарыктык өлчөөлөрү

Чагылган Light RGB жана Жарыктык өлчөөлөрү
Чагылган Light RGB жана Жарыктык өлчөөлөрү
Чагылган Light RGB жана Жарыктык өлчөөлөрү
Чагылган Light RGB жана Жарыктык өлчөөлөрү
Чагылган Light RGB жана Жарыктык өлчөөлөрү
Чагылган Light RGB жана Жарыктык өлчөөлөрү

Жарыктын чагылышын өлчөө үчүн мен диоддорду күйгүздүм (баскыч [A+B]) жана сенсордун алдына IKEA балдар чөйчөгүнүн ачык түстүү бөлүктөрүн койдум. Сүрөттөрдөн көрүнүп тургандай, RGB баалуулуктары күтүлгөндөй өзгөрүүдө.

Жарыктыкты өлчөө үчүн биринчи сапта төмөн маанилер, экинчи сапта жогорку баалуулуктар көрсөтүлөт. Төмөнкү диоддордун үстүнкү, төмөнкү баалуулуктары. Так маанини окуу үчүн B баскычын басыңыз.

5 -кадам: Жарыктын чагылышы: Гүлдөр

Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр
Жарыктын чагылышы: Гүлдөр

Мен шалбаадагы жапайы гүлдөрдү тандап, аларга түс өлчөөлөрүн жасоого аракет кылдым. Бул апийим, жүгөрү гүлү, күрөң чөп, дубал harkweed жана диланделон жалбырагы. RGB баалуулуктары [R, G, B]:

  • эч ким [92, 100, 105]
  • апийим (кызыл) [208, 98, 99]
  • жүгөрү гүлү (көк) [93, 96, 138]
  • күрөң өрүм (сирень) [122, 97, 133]
  • дубал harkweed (сары) [144, 109, 63]
  • каакым жалбырак (жашыл) [164, 144, 124]

Бул күтүүлөргө туура келет, жок дегенде биринчи үч өсүмдүк үчүн. Түстөрдү баалуулуктардан көрсөтүү үчүн, сиз бул жердегидей түстүү эсептегичти колдоно аласыз.

Сунушталууда: