فهرست مطالب:

نورسنج عکاسی DIY: 5 مرحله
نورسنج عکاسی DIY: 5 مرحله

تصویری: نورسنج عکاسی DIY: 5 مرحله

تصویری: نورسنج عکاسی DIY: 5 مرحله
تصویری: عکاسی از محصولات با کمترین هزینه - نگاه شاپ 2024, جولای
Anonim
نورسنج عکاسی DIY
نورسنج عکاسی DIY
نورسنج عکاسی DIY
نورسنج عکاسی DIY

این دستورالعمل ایده هایی در مورد ساخت یک نورسنج ساده کوچک و ارزان قیمت به اشتراک می گذارد.

از آنجا که Instructables به من اجازه نمی دهد ویدیوهای خود را وارد کنم ، این پیوند را امتحان کنید:

www.youtube.com/embed/avQD10fd52s

هدف برای من یک متر نور همراه با دوربین فیلم برونیکا ETRSi با فرمت متوسط بود.

مواردی که می خواستم در آن وجود داشته باشد:

  • تک ASA (100) زیرا تقریباً فقط از فیلم ASA 100 استفاده می کنم
  • تا حد امکان کوچک
  • فقط ترکیبی به من بدهید که برونیکا بتواند آن را تکثیر کند ، یعنی f2.8-f22 و 1 ثانیه تا 1/500 ثانیه
  • بدون ویژگی های مزخرف ، به جز زمان های ساده و مقادیر دیافراگم

مواردی که استفاده کردم:

  • لوکس متر دیجیتال Adafruit (Vishay) VEML 7700 (حدود 5 دلار)
  • میکرو کنترلر Adafruit Trinket M0 (حدود 9 دلار)
  • صفحه نمایش OLED 128x32 (حدود 10 دلار)
  • یک دکمه برای روشن کردن موقت آن (چند سنت)
  • یک تکه نوار کوچک ، زیرا من سعی می کنم از کابل استفاده نکنم ، اما شما مطمئناً می توانید از کابل نیز استفاده کنید

مرحله 1: محاسبات اساسی | لوکس به EV

محاسبات اساسی | لوکس به EV
محاسبات اساسی | لوکس به EV
محاسبات اساسی | لوکس به EV
محاسبات اساسی | لوکس به EV

سنسوری که خریدم از دو ویژگی استفاده می کند که به من اجازه می دهد در مورد آن تصمیم بگیرم:

  • به جای مقادیر نور "بدون ابعاد" ، مقادیر لوکس 16 بیتی را خروجی می دهد
  • مقادیر را از طریق I2C خروجی می دهد

نورسنج عکاسی از Exposure Values (EV) استفاده می کند که سنسوری که خریدم از مقادیر Lux استفاده می کند ، که مقیاس کاملاً متفاوتی است. بنابراین اولین قدم این است که EV ها را از مقادیر Lux که سنسور ارائه می دهد دریافت کنید.

با نگاهی گذرا به ویکی پدیا ، می توانید فرمولی برای اندازه گیری حادثه پیدا کرده و EV را به Lux تبدیل کنید:

E = 2.5 * 2^EV

جایی که E در لوکس اندازه گیری می شود.

همانطور که قبلاً مقدار Lux را از سنسور گرفته ایم و مقدار EV را می خواهیم ، باید فرمول را دوباره شکل دهیم ، که ما را مجبور می کند:

EV = log2 (E/2.5)

بنابراین این اولین محاسبه ای است که باید انجام شود تا مقادیر عکاسی از نورسنج خارج شود.

در جدول جستجوی پیوست می توانید تمام مقادیری را که در این چراغ سنج استفاده می شود ، همراه با مقادیر Lux و EV مشاهده کنید.

مرحله 2: ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX

ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX
ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX
ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX
ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX
ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX
ارائه مقادیر روی صفحه نمایش | کتابخانه Adafruit GFX

من ابتدا سعی کردم مقادیر را به صورت کامل ارائه دهم ، زیرا این چیزی است که من می توانم برونیکای خود را روی آن تنظیم کنم ، اما این من را به یک مشکل می رساند:

بیایید فرض کنیم سنسور Lux دقیقاً 20480 خروجی دارد ، این بدان معناست که دقیقاً EV 13 است ، بنابراین من می توانم به عنوان مثال دوربین خود را روی f4 و 1/500 ثانیه تنظیم کنم و خوب خواهد بود

در مرحله بعد ، فرض کنید سنسور لوکس 20479 لوکس ، 1 لوکس تحت EV13 ، خروجی EV 12 را تولید می کند ، اما فقط یک لوکس از EV13 فاصله دارد

بنابراین من دوربین خود را روی f2.8 و 1/500 ثانیه قرار می دهم که بدون توقف حتی بدون اینکه بدانم چقدر به EV13 نزدیک شده ام ، 1 توقف را بیش از حد نشان می دهد.

نتیجه گیری: ما نیاز به نوعی نمایش آنالوگ مقادیر داریم تا حداقل میزان نزدیکی یا فاصله متر از مرحله بعدی یا قبلی EV را مشاهده کنیم.

پس از استفاده از حروف و فونت داخلی کتابخانه GFX ، تصمیم گرفتم از دو گرافیک سفارشی استفاده کنم که روی صفحه OLED حرکت می کنند.

یکی برای مقادیر دیافراگم ، یکی برای زمان.

کتابخانه GFX از مقادیر 8 بیتی برای ارائه گرافیک استفاده می کند ، بنابراین من یک صفحه xls تهیه کردم (تصویر بالا را ببینید).

  • هر مقدار مقدار دقیق پیکسل در هر مقدار را دارد
  • زمان و دیافراگم دقیقاً مقدار یکسانی در هر سطر دارند
  • "B" مورد نیاز را در ابتدای هر بایت و "" را در پایان اضافه کردم
  • سپس آن را به یک متن ساده و voila صادر کردم: گرافیک سوم را پیوست کردم

مقادیر زمان با 1/8 ثانیه و مقادیر دیافراگم با f2.8 شروع می شود

با استفاده از جدول جستجوی مرحله قبل می دانیم که این نشان دهنده 160 Lux یا EV6 است.

تاریک ترین مقادیر f22 و 1/500 ثانیه خواهد بود

دوباره از طریق جدول جستجو می توانیم ببینیم که به معنی 655360 Lux یا EV18 است

تا کنون خیلی خوب.

بنابراین در EV6 گرافیک دیافراگم باید در سمت چپ ، زمان در سمت راست و برعکس در EV18 باشد.

مرحله 3: خواندن و جبران ارزش لوکس | VEML7700

خواندن و جبران ارزش لوکس | VEML7700
خواندن و جبران ارزش لوکس | VEML7700
خواندن و جبران ارزش لوکس | VEML7700
خواندن و جبران ارزش لوکس | VEML7700

در حین جستجوی برگه اطلاعات Vishay VEML7700 Adafruit که برای صفحه آنها استفاده می شود ، متوجه یک نکته نگران کننده شدم:

سنسور فقط بین 0 تا 1000Lux (!) خطی کار می کند

تصویر صفحه را با خط نارنجی (خطی) و آبی (خروجی واقعی سنسور) مشاهده کنید

نور خورشید (EV15) حدود 80.000 لوکس است ، به این معنی که بدون جبران قسمت غیر خطی سنسور ، به عنوان یک مترسنج کاملاً بی فایده است.

ویشی این را می داند ، بنابراین آنها pdf دیگری به نام Designing the VEML7700 Into a Application به مشتریان خود ارائه کردند.

در این pdf می توانید فرمول جبران غیر خطی بودن سنسورها را بیابید:

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

جایی که LUX_CORR Lux-Value تصحیح شده و LUX مقدار خروجی سنسور است.

اینها متغیرهایی هستند که من استفاده کردم ، متغیرهای متفاوتی را در برگه خود استفاده کردم.

چیزی که من را کمی ناراحت می کند این است که Adafruit این موضوع را با یک کلمه در صفحه خود ، اسناد ، کتابخانه یا جاهای دیگر ذکر نمی کند.

بنابراین در چند روز اول می پرسیدم چرا چراغ سنج من تنها حداکثر 20000 لوکس را حتی در نور مستقیم خورشید تولید می کند.

اگر به نمودار با خط قرمز و آبی نگاهی بیندازید می توانید دلیل آن را بیابید: زیرا بدون فرمول جبران نمی تواند بالاتر برود.

اما نکته دیگری در اسناد سنسور پنهان شده است:

این فرمول جبران تنها در صورتی کار می کند که سنسور را روی 25ms و نسبت افزایش 1/8 تنظیم کنید.

این کار به راحتی با کتابخانه Adafruits با افزودن موارد زیر انجام می شود:

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

در تنظیم void شما ()

بنابراین پس از تنظیم آن بر روی 1/8 و 25 میلی ثانیه و افزودن فرمول جبران ، می توانید تا 120000 لوکس اندازه گیری کنید ، به اندازه ای که نور خورشید را در 80-100k Lux پوشش دهید

مرحله 4: کد Arduino / C

از آنجا که به صفحه نمایش استفاده شده و کنترل کننده ترجیحی شما بستگی دارد ، من چندان وارد جزئیات نمی شوم ، فقط چند نکته و نکته را باید اضافه کنم ، مخصوصاً هنگام استفاده از کتابخانه های Adafruit و OLED 128x32 px:

در تنظیم void:

من بخش کتابخانه VEML را روی:

veml.setGain (VEML7700_GAIN_1_8) ؛

veml.setIntegrationTime (VEML7700_IT_25MS) ؛

veml.setLowThreshold (10000) ؛

veml.setHighThreshold (20000) ؛

veml.interruptEnable (true)؛

در حلقه خالی:

حتماً جبران را اضافه کنید:

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

برای دریافت خودروهای برقی از Lux از این خط استفاده کنید:

شناور EV = log2 ((LUX_CORR/2.5)) ؛

حرکت بیت مپ ها

برای اطمینان از اینکه bitmap ها فقط زمانی حرکت می کنند که مقادیر بین 160Lux و 655360Lux باشند همانطور که در مرحله قبل گفته شد ، آن را در یک عبارت if مانند بپیچید:

if (LUX_CORR> 159 && LUX_CORR <655361)

در مرحله بعد ما باید مقادیر EV را بر روی مختصات ترسیم کنیم ، زیرا محدوده EV ها دو رقمی هستند و ما می خواهیم آنها را از خارج از صفحه نمایش روی 128 پیکسل در سراسر صفحه نمایش منتقل کنیم ، به مقادیر بزرگتری نیاز داریم.

همانطور که قبلاً یک عدد شناور دریافت کردیم ، فقط آن را در 100 ضرب می کنیم و از آن عدد صحیح برای ترسیم مختصات استفاده می کنیم

int EV_DSPL = EV*100 ؛

و:

TIME = نقشه (EV_DSPL ، 600 ، 1900 ، -260 ، 39) ؛ APERTURE = نقشه (EV_DSPL ، 600 ، 1900 ، 39 ، -260) ؛

همانطور که می بینید در مورد من حداقل موقعیت بیت مپ -260 پیکسل و حداکثر 39 پیکسل خواهد بود

آنچه در اینجا نیز مشاهده می شود این است که مختصات را طوری تغییر دادم که دو نقشه بیت در جهت مخالف حرکت کنند

در مرحله بعد ما باید بیت مپ ها را با توجه به مختصات به صورت زیر حرکت دهیم:

display.drawBitmap ((TIME) ، (0) ، TIMES_bmp ، 352 ، 16 ، 1) ؛ display.drawBitmap ((APERTURE) ، (15) ، APERTURES_bmp ، 352 ، 16 ، 1) ؛

و این تنها کاری است که باید انجام شود

به عنوان یک امتیاز ، هنگامی که سنسور مقادیر زیر 160Lux را نشان می دهد ، مستقیماً EV و Lux را نشان می دهم ، فقط به این دلیل که می خواستم هنگام آزمایش موارد را ببینم.

مرحله 5: ترکیب آن

کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن

از آنجا که هر دو ، صفحه نمایش و سنسور از I2C برای برقراری ارتباط استفاده می کنند ، ساخت سخت افزار واقعی به همان سادگی ممکن است باشد.

فقط خطوط Data ، Clock ground و 3V را با آردوینو وصل کنید و آماده حرکت هستید.

من نحوه انجام این کار با نوار چسب را اضافه کردم ، اما همانطور که قبلاً گفته شد می توانید از کابل استفاده کنید یا حتی یک بال برای آن بسازید ، همه چیز بستگی به این دارد که از کدام کنترلر و صفحه نمایش استفاده می کنید.

در گرافیک من ، نقاط سفید قرار است به صفحه نمایش و سنسور و نقاط زرد به Trinket متصل شوند.

تنها نسخه مورد نظر پین داده خط I2C است که به صفحه نمایش متصل می شود ، آن پین همچنین به پین داده Trinkets متصل می شود.

من ترجیح دادم از کلید روشن/خاموش استفاده نکنم ، بلکه از دکمه فشاری و دو سلول دکمه ای 3 ولت استفاده کردم تا به شرطی که دکمه را فشار می دهم موقتاً آن را روشن کنم. در کمتر از 1/10 ثانیه قدرت می گیرد به طوری که به قدری سریع است که بتوانم یک دکمه را ذخیره کنم و آن را کوچکتر کنم.

توصیه شده: