Мазмұны:

Pimoroni Enviro көмегімен жарық пен түсті өлшеу: микро үшін бит: бит: 5 қадам
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: микро үшін бит: бит: 5 қадам

Бейне: Pimoroni Enviro көмегімен жарық пен түсті өлшеу: микро үшін бит: бит: 5 қадам

Бейне: Pimoroni Enviro көмегімен жарық пен түсті өлшеу: микро үшін бит: бит: 5 қадам
Бейне: Introducing Enviro: The Ultimate Indoor Environmental Monitor for Raspberry Pi 2024, Шілде
Anonim
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит
Pimoroni Enviro көмегімен жарық пен түсті өлшеу: Micro: bit үшін бит

Мен бұрын жарық пен түстерді өлшеуге мүмкіндік беретін кейбір құрылғыларда жұмыс істедім, және сіз осындай өлшемдердің теориясы туралы көп нәрсені таба аласыз, мұнда және мұнда нұсқаулықтар.

Pimoroni жақында микро: битке арналған экологиялық ортаны шығарды, ол дыбыс деңгейін өлшеуге арналған MEMS микрофонымен, BME280 температура/ылғалдылық/ауа қысымы сенсорымен және TCS3475 жарық пен түс сенсорымен (RGBC) жабдықталған. Сонымен қатар, түс сенсорының екі жағында жарық диодтары бар, олар шағылысқан жарық арқылы заттардың түсін өлшеуге мүмкіндік береді. Бұл өлшемдерді орындау үшін өз қолыңызбен құрал жасау ешқашан оңай болған емес.

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

Бұл нұсқаулық «Радуга» конкурсының бөлігі болып табылады. Егер сізге ұнаса, дауысыңызды беріңіз

1 -қадам: Қолданылатын материалдар

Микро: бит, Pimoroni -де 13 фунт стерлинг.

Pimoroni Enviro: бит, Pimoroni -де 20 GBP.

Pimoroni қуаты: бит, 6 GBP Piomoroni. Сондай -ақ, микро: бит үшін батарея пакеттерін немесе LiPo пайдалануға болады

Rosco Cinegel түсті сүзгі үлгі блогы. Менікі Берлиннің Модулор қаласынан келді.

IKEA түсті пластикалық шыныаяқтар. IKEA, Берлин.

Жабайы гүлдер. Потсдам-Голмдағы шалғын.

2 -қадам: MakeCode/JavaScript сценарийі

Pimoroni компаниясы MakeCode/JavaScript кодтау ортасы үшін де, MicroPython үшін де Enviro: bit үшін кітапхана әзірледі. Мен мұнда MakeCode қолдандым, себебі сценарийлерді micro: bitке тікелей жүктеуге болады және блокты кодтауға мүмкіндік береді.

Сценарий қызыл, жасыл және көк (RGB) және таза (C) арналардың мәндерін оқиды. Біріншілері 0 -ден 255 -ке дейінгі мәндерде беріледі, екіншісі 0 -ден 61000 -ға дейінгі аралықта.

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

Қазіргі уақытта мен түс өлшеу функциясының барлық мәліметтерін түсінбеймін, бірақ оларда түзету мен қалыпқа келтіру механизмдері бар деп ойлаймын.

Алдымен барлық төрт арнаның мәндері алынады. Нәтижелерді 5х5 жарықдиодты матрицада көрсете алу үшін өлшенген мәндер нәтижелерді 5 (RGB) немесе 10 (C) контейнерлерге орналастыру үшін қолданылады, олар бір жарық диодты бір (R, G, B) немесе екі (С) қатар.

RGB жағдайында масштабтау сызықты және әр қалтаның интервал өлшемі ені 51 бірлік. С жағдайында масштабтау 10 қадамнан астам логарифмдік болып табылады (log3, сондықтан әрбір қадам алдыңғыға қарағанда 3 есе). Бұл өте күңгірт және өте жарқын жағдайларды көрсетуге мүмкіндік береді.

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

bR = 0 // bins болсын

bG = 0 болсын bB = 0 болсын bS = 0 болсын bC = 0 болсын bCx = 0 болсын S = 0 // өлшенген мәндер болсын C = 0 болсын B = 0 болсын G = 0 болсын R = 0 болсын базалық.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 егер (R> = 204) { // binning, max 255 bR = 4} else if (R> = 153) {bR = 3} else if (R> = 102) {bR = 2} if 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} if if (G> = 51)) {bG = 1} else {bG = 0} if (B> = 204) {bB = 4} else if (B> = 153) {bB = 3} if if (B> = 102) {bB = 2} else if (B> = 51) {bB = 1} else {bB = 0} if (C> = 60000)) {// Қанықтылық 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} else if (C> = 27) {bC = 2} else if (C> = 9) {bC = 1} else {bC = 0} // led basic.clearScreen () -ге жазыңыз, егер (bCx <5) {led.plot (1, bCx)} басқа {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 мәндері микро: биттік 5х5 жарықдиодты матрицаның 3-5 -ші қатарларында көрсетіледі, жоғарғы светодиодтары төмен, төменгі жарық диодтары жоғары мәндерді көрсетеді.

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

Нақты мәндерді оқу үшін А түймесін басыңыз.

4 -қадам: шағылысқан жарық RGB және жарықтық өлшемдері

Жарық шағылыстыратын жарық сәулесі мен жарықтылық өлшемдері
Жарық шағылыстыратын жарық сәулесі мен жарықтылық өлшемдері
Жарық шағылыстыратын RGB және жарықтылық өлшемдері
Жарық шағылыстыратын RGB және жарықтылық өлшемдері
Жарық шағылыстыратын RGB және жарықтылық өлшемдері
Жарық шағылыстыратын RGB және жарықтылық өлшемдері

Жарықтың шағылуын өлшеу үшін мен светодиодтарды ([A+B] түймесін) қосып, сенсордың алдына ашық түсті IKEA балалар шыныаяқтарының бірнеше бөлігін қойдым. Суреттерден көрініп тұрғандай, RGB мәндері күткендей өзгереді.

Жарықтықты өлшеу үшін бірінші жолда төмен мәндер, екінші жолда жоғары мәндер көрсетіледі. Төменгі светодиодтармен жоғарғы, төмен мәндер. Нақты мәнді оқу үшін B түймесін басыңыз.

5 -қадам: шағылысқан жарық өлшемдері: гүлдер

Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер
Жарықтың шағылу өлшемдері: Гүлдер

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

  • жоқ [92, 100, 105]
  • көкнәр (қызыл) [208, 98, 99]
  • жүгері гүлі (көк) [93, 96, 138]
  • қоңыр өрік (сирень) [122, 97, 133]
  • қабырғадағы харквид (сары) [144, 109, 63]
  • одуванчика жапырағы (жасыл) [164, 144, 124]

Бұл күтулерге сәйкес келеді, кем дегенде алғашқы үш зауыт үшін. Түстерді мәндерден көрсету үшін сіз мұнда калькуляторды қолдана аласыз.

Ұсынылған: