Mundarija:
- 1 -qadam: Ishlatilgan materiallar
- 2 -qadam: MakeCode/JavaScript skriptlari
- 3 -qadam: RGB o'lchovlarini qabul qilish: uzatilgan yorug'lik rejimi
- 4 -qadam: Yorug'lik RGB va yorug'lik o'lchovlari
- 5 -qadam: Ko'zgu nur o'lchovlari: Gullar
Video: Pimoroni muhitida yorug'lik va rang o'lchovlari: mikro uchun bit: bit: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Men ilgari yorug'lik va rangni o'lchash imkonini beradigan ba'zi qurilmalarda ishlaganman va siz bu o'lchovlar nazariyasi haqida ko'p narsalarni topishingiz mumkin.
Pimoroni yaqinda ovoz balandligini o'lchash uchun MEMS mikrofoni, BME280 harorat/namlik/havo bosimi sensori va TCS3475 yorug'lik va rang sensori (RGBC) bilan ta'minlangan mikro: bit uchun qo'shimchali enviro: bit qo'shimchasini chiqardi. Bundan tashqari, rang sensori yon tomonlariga ikkita LED o'rnatilgan bo'lib, ular yorug'lik nurlari yordamida ob'ektlarning rangini o'lchash imkonini beradi. Ushbu o'lchovlarni bajarish uchun o'z qo'lingiz bilan asbob yaratish hech qachon oson bo'lmagan.
Men bu erda enviro: bit rang va yorug'lik o'lchovlari uchun ishlatilishi mumkinligini va buni bajarishga ruxsat beruvchi MakeCode skriptini tasvirlab bermoqchiman. Micro: bit va enviro: bit kombinatsiyasi-bu ilmiy o'lchovlar tamoyillarini qo'l bilan ko'rsatish va ular bilan o'ynash uchun yaxshi va arzon qurilma.
Bu ko'rsatma "Kamalak" tanlovining bir qismidir. Agar sizga yoqqan bo'lsa, iltimos, o'z ovozingizni bering
1 -qadam: Ishlatilgan materiallar
Mikro: bit, Pimoroni -da 13 GBP.
Pimoroni Enviro: bit, Pimoroni -da 20 GBP.
Pimoroni Power: bit, Piomoroni -da 6 GBP. Micro: bit uchun siz batareyalar to'plami yoki LiPo -dan foydalanishingiz mumkin
Rosco Cinegel rangli filtrli namuna bloki. Men o'zimni Berlinning Modulor shahridan oldim.
IKEA rangli plastik idishlar. IKEA, Berlin.
Yovvoyi gullar. Potsdam-Golmdagi o'tloq.
2 -qadam: MakeCode/JavaScript skriptlari
Pimoroni, MakeCode/JavaScript kodlash muhiti uchun ham, MicroPython uchun ham Enviro: bit uchun kutubxona ishlab chiqdi. Men bu erda MakeCode -dan foydalandim, chunki skriptlar to'g'ridan -to'g'ri micro: bit -ga yuklanishi mumkin va blokirovka kodlash imkonini beradi.
Skript qizil, yashil va ko'k (RGB) va aniq (C) kanallarining qiymatlarini o'qiydi. Birinchisi 0 dan 255 gacha, ikkinchisi 0 dan 61000 gacha.
Aniq kanalning diapazoni juda keng va kunduzgi yorug'likdan qorong'i xonaga qadar o'lchash imkonini beradi.
Hozircha men rangni o'lchash funktsiyasining barcha tafsilotlarini tushunmayapman, lekin menimcha, ular tuzatish va normallashtirish mexanizmlariga ega.
Avvaliga barcha to'rt kanalning qiymatlari olinadi. Natijalarni 5x5 LED matritsasida ko'rsatish uchun o'lchangan qiymatlar natijalarni bitta LED (R, G, B) yoki 5 (RGB) yoki 10 (C) qutilariga joylashtirish uchun ishlatiladi. ikkita (C) qator.
RGB holatida o'lchov chiziqli bo'lib, har bir qutining intervalli kengligi 51 birlikni tashkil qiladi. C holatida, o'lchov 10 bosqichdan oshiq logarifmik (log3, shuning uchun har bir qadam avvalgisidan 3 baravar ko'p). Bu juda xira va juda yorqin sharoitlarni ko'rsatishga imkon beradi.
A tugmachasini bosish R, G va B qiymatlarini raqamlar bilan ko'rsatadi, B ni esa C qiymatini bosadi. A+B LEDlarini faollashtiradi va B ularni o'chiradi.
bR = 0 // qutilari bo'lsin
bG = 0 bo'lsin bB = 0 bo'lsin bS = 0 bo'lsin bC = 0 bo'lsin bCx = 0 bo'lsin S = 0 // o'lchangan qiymatlar C = 0 bo'lsin B = 0 bo'lsin G = 0 bo'lsin R = 0 asosiy bo'lsin. => {if (input.buttonIsPressed (Button. AB)) {envirobit.setLEDs (envirobit. OnOff. On)} if if (input.buttonIsPressed (Button. A)) {basic.showString ("R:" + R +) "G:" + G + "B:" + B)} boshqa if (input.buttonIsPressed (Button. B)) {basic.showString ("C:" + C) envirobit.setLEDs (envirobit. OnOff. Off)} boshqa {basic.pause (100) R = envirobit.getRed () G = envirobit.getGreen () B = envirobit.getBlue () C = envirobit.getLight () bC = 5 bCx = 5 agar (R> = 204) { // binning, maksimal 255 bR = 4} if (R> = 153) {bR = 3} if if (R> = 102) {bR = 2} if if (R> = 51) {bR = 1} other {bR = 0} if (G> = 204) {bG = 4} if if (G> = 153) {bG = 3} if if (G> = 102) {bG = 2} if if (G> = 51)) {bG = 1} boshqa {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)) {// SatCh bCx = 4} if if (C> = 20000) {bCx = 3} if if (C> = 6600) {bCx = 2} if if (C> = 2200) {bCx = 1} if else (C> = 729) {bCx = 0} if if (C> = 243) {bC = 4} if if (C> = 81) {bC = 3} if if (C> = 27) {bC = 2} aks holda (C> = 9) {bC = 1} else {bC = 0} // led basic.clearScreen () ga yozing, agar (bCx <5) {led.plot (1, bCx)} boshqa {led.plot (0, bC)} led.plot (2, bR) led.plot (3, bG) led.plot (4, bB)}})
3 -qadam: RGB o'lchovlarini qabul qilish: uzatilgan yorug'lik rejimi
Yuqorida aytib o'tilganidek, rang o'lchashning ikkita rejimi mavjud: uzatilgan va aks ettirilgan yorug'lik spektroskopiyasi. O'tkazilgan yorug'lik rejimida yorug'lik rangli filtrdan yoki sensordan yechim orqali o'tadi. Yansıtılan yorug'lik o'lchovlarida, masalan, yorug'lik. LEDlardan ob'ekt aks etadi va sensor tomonidan aniqlanadi.
Keyin RGB qiymatlari micro: bit 5x5 LED matritsasining 3-5 -qatorlarida ko'rsatiladi, yuqori LEDlar past, pastki LEDlar yuqori qiymatlarni bildiradi.
Bu erda o'tkazilgan yorug'lik o'lchovlari bo'yicha o'tkazilgan tajribalar uchun men kunduzgi yorug'likni ishlatardim va sensori oldiga Rosco namunali paketidagi rangli filtrlarni qo'ydim. Siz effektlarni displeyda, ayniqsa qizil kanalda ko'rishingiz mumkin. Rasmlarni ko'rib chiqing va naqshlarni solishtiring.
Haqiqiy qiymatlarni o'qish uchun A tugmachasini bosish kifoya.
4 -qadam: Yorug'lik RGB va yorug'lik o'lchovlari
Yorug'likni o'lchash uchun men LEDlarni yoqdim (tugma [A+B]) va sensor oldiga IKEA bolalar stakanlarining yorqin rangli qismlarini qo'ydim. Rasmlardan ko'rinib turibdiki, RGB qiymatlari kutilganidek o'zgarmoqda.
Yorqinlikni o'lchash uchun birinchi qatorda past qiymatlar ikkinchi qatorda ko'rsatiladi. Pastki LEDlar yuqori, pastroq qiymatlar. Aniq qiymatni o'qish uchun B tugmachasini bosing.
5 -qadam: Ko'zgu nur o'lchovlari: Gullar
Men o'tloqdan yovvoyi gullarni tanladim va ularga rang o'lchovlarini o'tkazishga harakat qildim: ko'knor, makkajo'xori, jigarrang o'rik, devor harkweed va dilandelon barglari. RGB qiymatlari [R, G, B]:
- hech kim [92, 100, 105]
- ko'knor (qizil) [208, 98, 99]
- makkajo'xori (ko'k) [93, 96, 138]
- jigarrang o'rik (nilufar) [122, 97, 133]
- devor harkvidi (sariq) [144, 109, 63]
- momaqaymoq barglari (yashil) [164, 144, 124]
Hech bo'lmaganda dastlabki uchta o'simlik uchun kutilganidek. Ranglarni qiymatlardan ko'rsatish uchun siz bu erda bo'lgani kabi rang kalkulyatoridan foydalanishingiz mumkin.
Tavsiya:
YN160 Pro LED yoritgichli yorug'lik chiroqlari, o'zgaruvchan toklar va yorug'lik chiroqlari: 8 qadam
YN160 Pro LED yoritgichli yorug'lik manbai (AC)
Sirli yorug'lik qutisi (tungi yorug'lik): 4 qadam
Sirli yorug'lik qutisi (tungi yorug'lik): Va bu juda oson qiziqarli loyiha, bu loyiha https://www.instructables.com/id/Arduino-Traffic-L…, lekin men allaqachon Men asl saytning tuzilishini o'zgartirdim, men qo'shimcha yoritgichlar qo'shaman va uni to'plash uchun poyabzal qutisini ishlataman
O'zgaruvchan yorug'lik sezuvchi tungi yorug'lik: 8 qadam (rasmlar bilan)
O'zgaruvchan yorug'lik sezgichli tungi yorug'lik: Bu ko'rsatma qo'lda o'chirish uchun tungi yorug'lik sensori qanday buzilganligini ko'rsatadi. Diqqat bilan o'qing, har qanday ochiq sxemalarni yodda tuting va agar kerak bo'lsa, birlikni sinovdan o'tkazishdan oldin o'z hududingizni o'chiring
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: 5 qadam
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: Harakatlanuvchi yorug'lik tugmasi uyda ham, ofisda ham juda ko'p qo'llanmalarga ega. Biroq, bu yorug'lik sensori bilan jihozlanishning qo'shimcha afzalliklari bo'lib, bu yorug'lik faqat tunda yoqilishi mumkin
Yorug'lik va tovush effektlari bilan Arduino asosidagi yorug'lik chiroqlari: 14 qadam (rasmlar bilan)
Yorug'lik va tovush effektlari bilan Arduino asosidagi Lightsaber: Salom jedi! Bu ko'rsatma kinofilmda bo'lgani kabi ko'rinadigan, ovoz chiqaradigan va bajaradigan chiroqni yasash haqida. Yagona farq - bu metallni kesolmaydi: (Bu qurilma Arduino platformasiga asoslangan va men unga juda ko'p funktsiyalar va funktsiyalarni beraman, u