Mundarija:

DIY fotografik yorug'lik o'lchagichi: 5 qadam
DIY fotografik yorug'lik o'lchagichi: 5 qadam

Video: DIY fotografik yorug'lik o'lchagichi: 5 qadam

Video: DIY fotografik yorug'lik o'lchagichi: 5 qadam
Video: Easy diy product photography Using @AMBITFUL FL80RGB light. 2024, Noyabr
Anonim
DIY fotografik yorug'lik o'lchagichi
DIY fotografik yorug'lik o'lchagichi
DIY fotografik yorug'lik o'lchagichi
DIY fotografik yorug'lik o'lchagichi

Bu yo'riqnoma oddiy kichik va arzon nurli o'lchagichni yaratish bo'yicha ba'zi fikrlar bilan bo'lishadi.

Instructables menga o'z videolarimni kiritishga ruxsat bermagani uchun, bu havolani ko'ring:

www.youtube.com/embed/avQD10fd52s

Men uchun maqsad Bronica ETRSi o'rta formatli kino kameramga hamrohlik qilish uchun yorug'lik o'lchagich edi.

Men ko'rsatmoqchi bo'lgan narsalar:

  • bitta ASA (100), chunki men deyarli faqat ASA 100 filmidan foydalanaman
  • iloji boricha kichikroq
  • faqat menga Bronika qayta ishlab chiqarishi mumkin bo'lgan kombinatsiyalarni bering, bu f2.8-f22 va 1 sekunddan 1/500 sekundgacha
  • oddiy vaqtlar va diafragma qiymatlaridan tashqari, bema'nilik xususiyatlari yo'q

Men ishlatgan narsalar:

  • Adafruit (Vishay) VEML 7700 raqamli lyuks-metr (taxminan 5 dollar)
  • Adafruit Trinket M0 mikro boshqaruvchisi (taxminan 9 dollar)
  • 128x32 OLED displey (taxminan 10 dollar)
  • vaqtincha yoqish uchun tugma (bir necha sent)
  • kichik bir bo'lak taxta, chunki men kabellardan foydalanmaslikka harakat qilaman, lekin siz ham kabellardan foydalanishingiz mumkin

1 -qadam: Asosiy hisoblar | EV uchun lyuks

Asosiy hisoblar | EV uchun lyuks
Asosiy hisoblar | EV uchun lyuks
Asosiy hisoblar | EV uchun lyuks
Asosiy hisoblar | EV uchun lyuks

Men sotib olgan sensori ikkita xususiyatdan foydalanadi, bu menga qaror qabul qilishga imkon beradi:

  • "o'lchamsiz" yorug'lik qiymatlari o'rniga 16 bitli lyuks qiymatlarini chiqaradi
  • qiymatlarni I2C orqali chiqaradi

Fotosurat nuri o'lchagichi Ekspozitsiya qiymatlarini (EV) ishlatadi, sensori Lux qiymatlaridan foydalanadi, bu mutlaqo boshqa o'lchov. Shunday qilib, birinchi qadam - bu sensorlar bilan jihozlangan EV qiymatlarini Lux qiymatlaridan olish.

Vikipediyani tezda ko'rib chiqing va siz hodisalarni o'lchash formulasini topishingiz va EVni Lyuksga o'zgartirishingiz mumkin:

E = 2,5 * 2^EV

bu erda E Lyuksda o'lchanadi.

Sensordan Lux qiymatini olganimiz va EV qiymatini xohlaganimiz uchun, biz formulani qayta tuzishimiz kerak, bu bizni quyidagilarga olib keladi:

EV = log2 (E/2.5)

Shunday qilib, yorug'lik o'lchagichdan fotografik qiymatlarni olish uchun birinchi hisob -kitob qilish kerak.

Qidiruv jadvalida siz ushbu yorug'lik o'lchagichida ishlatiladigan barcha qiymatlarni, shuningdek Lux va EV qiymatlari bilan ko'rishingiz mumkin.

2 -qadam: Qiymatlarni displeyda ko'rsatish | Adafruit GFX kutubxonasi

Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi
Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi
Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi
Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi
Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi
Ekranda qiymatlarni taqdim etish | Adafruit GFX kutubxonasi

Men birinchi navbatda qadriyatlarni bosqichma -bosqich ko'rsatishga harakat qildim, chunki men Bronikani shunday sozlashim mumkin, lekin bu meni muammoga olib keladi:

Faraz qilaylik, Lux sensori aynan 20480 qiymatini chiqaradi, bu aynan EV 13 degan ma'noni anglatadi, shuning uchun men masalan, kameramni f4 va 1/500 soniyasiga o'rnatib qo'ygan bo'lardim

Keling, Lyuks sensori EV13 ostida 20479 Lux, 1 Lux ishlab chiqaradi, bu EV qiymatini 12 ga chiqaradi, lekin u EV13dan uzoqda

Shunday qilib, men kameramni f2.8 va 1/500 soniyalariga o'rnatardim, bu men EV13 ga qanchalik yaqinligimni bilmasdan ham 1 to'xtash joyini haddan tashqari oshirib yuborardi.

Xulosa: hech bo'lmaganda hisoblagichning keyingi yoki oldingi EV bosqichidan qanchalik yaqin yoki uzoqroq ekanligini ko'rish uchun bizga qandaydir analogli displey kerak.

GFX kutubxonasining ichki harflari va shriftidan foydalanishga urinib ko'rganimdan so'ng, men OLED ekranida harakatlanadigan ikkita maxsus grafikadan foydalanishga qaror qildim.

Biri diafragma qiymatlari uchun, biri vaqt uchun.

GFX kutubxonasi grafikani ko'rsatish uchun 8 bitli qiymatlardan foydalanadi, shuning uchun men xls varag'i tayyorladim (yuqoridagi rasmga qarang).

  • har bir qiymat har bir piksel uchun bir xil miqdordagi pikselga ega
  • vaqt va diafragma har bir satrda bir xil miqdordagi qiymatga ega
  • Men har bir baytning boshiga "B" va oxirida "," qo'shdim
  • Keyin men uni oddiy matn va voilaga eksport qildim: uchinchi grafik biriktirilgan

Vaqt qiymatlari 1/8 sekundda, diafragma f2.8 da boshlanadi

Oldingi qadamni qidirish jadvalidan foydalanib, biz bilamizki, bu 160 Lux yoki EV6.

Eng qorong'i qiymatlar f22 va soniyaning 1/500 qismi bo'ladi

Yana qidiruv jadvali orqali biz bu 655360 Lux yoki EV18 degan ma'noni anglatishini ko'rishimiz mumkin

Hozircha hammasi yaxshi.

Shunday qilib, EV6da diafragma grafigi chapda, o'ngda - o'ngda va aksincha - EV18da bo'lishi kerak.

3 -qadam: hashamatli qadriyatlarni o'qish va kompensatsiya qilish VEML7700

Hashamatli qadriyatlarni o'qish va kompensatsiya qilish | VEML7700
Hashamatli qadriyatlarni o'qish va kompensatsiya qilish | VEML7700
Hashamatli qadriyatlarni o'qish va kompensatsiya qilish | VEML7700
Hashamatli qadriyatlarni o'qish va kompensatsiya qilish | VEML7700

Vishay VEML7700 Adafruit -ning ma'lumotlar jadvalini varaqlab o'tirganimda, men juda xavotirli xabarni topdim:

Sensor faqat 0 dan 1000Luxgacha chiziqli ishlaydi (!)

to'q sariq (chiziqli) chiziq va ko'k (haqiqiy sensor chiqishi) bilan ekran tasvirini ko'ring

Quyosh nuri (EV15) taxminan 80.000 lyuksni tashkil etadi, ya'ni sensorning chiziqli bo'lmagan qismini kompensatsiya qilmasa, yorug'lik o'lchagich sifatida umuman foydasiz bo'ladi.

Vishay buni biladi, shuning uchun ular o'z mijozlariga "VEML7700 ni ilovaga loyihalash" deb nomlangan boshqa pdf faylni taqdim etdilar.

Ushbu pdf-da siz datchiklarning chiziqli bo'lmaganligini qoplaydigan formulani topishingiz mumkin:

LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX

Bu erda LUX_CORR-to'g'rilangan Lux-Value va LUX-sensor chiqaradigan qiymat.

Bular men ishlatgan o'zgaruvchilar, o'z varaqlarida ishlatilganlar.

Adafruit o'z sahifasida, hujjatlarida, kutubxonasida yoki boshqa joyda bir so'z bilan bu haqda gapirmaydi.

Birinchi kunlarda men nima uchun mening yorug'lik o'lchagichim to'g'ridan -to'g'ri quyosh nurida ham maksimal 20000 lyuks chiqaradi?

Agar siz qizil va ko'k chiziqli grafikga nazar tashlasangiz, buning sababini ko'rishingiz mumkin: chunki kompensatsiya formulasisiz u yuqoriroq bo'lolmaydi.

Sensor hujjatlarida boshqa maslahat yashiringan:

Ushbu kompensatsiya formulasi faqat sensorni 25ms ga va daromad nisbatini 1/8 ga o'rnatganingizda ishlaydi.

Buni Adafruits kutubxonasi bilan osonlikcha bajarish mumkin:

veml.setGain (VEML7700_GAIN_1_8); veml.setIntegrationTime (VEML7700_IT_25MS);

sizning bo'sh sozlamangizda ()

Shunday qilib, uni 1/8 va 25 ms ga o'rnatganingizdan va kompensatsiya formulasini qo'shgandan so'ng, siz quyosh nurini 80-100k lyuksda qoplash uchun 120000 lyuksgacha o'lchashingiz mumkin

4-qadam: Arduino / C-kod

Bu sizning ishlatilgan displeyingiz va tanlangan boshqaruvchingizga bog'liq bo'lgani uchun men juda ko'p tafsilotlarni aytmayman, faqat bir nechta fikr va maslahatlarni qo'shish kerak, ayniqsa Adafruit kutubxonalari va 128x32 pikselli OLED -dan foydalanganda:

bo'sh sozlamalarda:

VEML kutubxona qismini quyidagicha o'rnatdim:

veml.setGain (VEML7700_GAIN_1_8);

veml.setIntegrationTime (VEML7700_IT_25MS);

veml.setLowThreshold (10000);

veml.setHighThreshold (20000);

veml.interruptEnable (haqiqiy);

bo'sh davrda:

kompensatsiyani qo'shganingizga ishonch hosil qiling:

int LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX;

Lyuksdan EV olish uchun ushbu qatordan foydalaning:

float EV = log2 ((LUX_CORR/2.5));

bitmaplarni ko'chirish

bitmaplar faqat oldingi bosqichda aytilganidek, qiymatlar 160Lux va 655360Lux oralig'ida harakatlanishiga ishonch hosil qilish uchun uni quyidagi if bandiga o'rang:

agar (LUX_CORR> 159 && LUX_CORR <655361)

Keyin biz EV qiymatlarini koordinatalar bilan taqqoslashimiz kerak, chunki EVlar diapazoni ikki xonali va biz ularni displeydan 128 pikselgacha butun ekran bo'ylab ko'chirishni xohlaymiz.

O'zgaruvchan raqamni olganimizdan so'ng, biz uni 100 ga ko'paytiramiz va koordinatalarni xaritada ko'rsatish uchun shu tamsayıdan foydalanamiz

int EV_DSPL = EV*100;

va:

TIME = xarita (EV_DSPL, 600, 1900, -260, 39); APERTURE = xarita (EV_DSPL, 600, 1900, 39, -260);

Ko'rib turganingizdek, mening misolimda, bitmapning minimal pozitsiyasi -260 piksel va maksimal 39 piksel bo'lishi mumkin.

Bu erda ko'rish mumkin bo'lgan narsa shundaki, men koordinatalarni ikkita bitmap teskari yo'nalishda harakat qilish uchun o'zgartirdim

Keyin biz bitmapalarni koordinatalarga muvofiq ko'chirishimiz kerak:

display.drawBitmap ((TIME), (0), TIMES_bmp, 352, 16, 1); display.drawBitmap ((APERTURE), (15), APERTURES_bmp, 352, 16, 1);

Va buni qilish kerak bo'lgan hamma narsa

Bonus sifatida men sensori 160Lux ostida qiymatlarni chiqarganda, men EV va Lux qiymatlarini ko'rsataman, chunki men uni sinab ko'rganimda narsalarni ko'rishni xohlardim.

5 -qadam: uni birlashtirish

Birgalikda joylashtirish
Birgalikda joylashtirish
Birgalikda joylashtirish
Birgalikda joylashtirish

Ikkala holatda ham, displey va sensor aloqa qilish uchun I2C -dan foydalanadi, haqiqiy uskunani yaratish imkoni boricha sodda.

Ma'lumotlar, soat va 3V liniyalarini Arduino -ga ulang va siz borishga tayyormiz.

Men tasma bilan qanday ishlaganimni grafik bilan qo'shib qo'ydim, lekin ilgari aytilganidek, siz kabellardan foydalanishingiz yoki hatto qanot yasashingiz mumkin, hammasi qaysi nazoratchi va displeydan foydalanayotganingizga bog'liq.

Mening grafikimda oq nuqta displey va sensorga, sariq nuqta esa Trinketga ulangan bo'lishi kerak.

Faqatgina istisno bu I2C liniyasining displeyga ulanadigan pin-pinidir, u ham Trinkets ma'lumotlar piniga ulanadi.

Men yoqish/o'chirish tugmachasini ishlatmaslikni tanladim, lekin men tugmani bosganimcha uni vaqtincha yoqish uchun tugma va ikkita 3V tugmachasini ishlataman. U 1/10 sekunddan kam quvvat oladi, shuning uchun men tugmani zaxiralashim va uni kichraytirishim mumkin.

Tavsiya: