جدول المحتويات:
- الخطوة 1: الحسابات الأساسية | لوكس إلى EV
- الخطوة 2: عرض القيم على الشاشة | مكتبة Adafruit GFX
- الخطوة الثالثة: قراءة قيم Lux وتعويضها | VEML7700
- الخطوة 4: Arduino / C-code
- الخطوة 5: ضعها معًا
فيديو: مقياس ضوء التصوير الفوتوغرافي DIY: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
يشارك Instructable بعض الأفكار حول بناء مقياس ضوئي بسيط ورخيص الثمن.
نظرًا لأن Instructables لن تسمح لي بإدراج مقاطع الفيديو الخاصة بي ، جرب هذا الرابط:
www.youtube.com/embed/avQD10fd52s
كان الهدف بالنسبة لي هو مقياس الضوء لمرافقة كاميرا الأفلام المتوسطة Bronica ETRSi الخاصة بي.
الأشياء التي أردت إبرازها:
- ASA واحد (100) لأنني أستخدم فيلم ASA 100 فقط تقريبًا
- صغيرة قدر الإمكان
- أعطني فقط التركيبات التي تستطيع Bronica إنتاجها ، مما يعني f2.8-f22 و 1 ثانية إلى 1/500 ثانية
- لا توجد ميزات غير منطقية ، باستثناء الأوقات العادية وقيم الفتحة
الأشياء التي استخدمتها:
- Adafruit (Vishay) VEML 7700 مقياس لوكس الرقمي (حوالي 5 دولارات)
- وحدة تحكم Adafruit Trinket M0 الصغيرة (حوالي 9 دولارات)
- شاشة OLED بحجم 128 × 32 (حوالي 10 دولارات)
- زر ضغط لتشغيله مؤقتًا (بعض السنتات)
- قطعة صغيرة من اللوح الشريطي ، لأنني أحاول عدم استخدام الكابلات ، ولكن يمكنك بالتأكيد استخدام الكابلات أيضًا
الخطوة 1: الحسابات الأساسية | لوكس إلى EV
يستخدم المستشعر الذي اشتريته ميزتين تسمحان لي باتخاذ القرار بشأنهما:
- لإخراج قيم لوكس 16 بت بدلاً من قيم الإضاءة "الخالية من الأبعاد"
- تخرج القيم عبر I2C
يستخدم مقياس الضوء الفوتوغرافي قيم التعرض (EV) ، يستخدم المستشعر الذي اشتريته قيم Lux ، وهو مقياس مختلف تمامًا. لذا فإن الخطوة الأولى هي الحصول على EVs من قيم Lux المقدمة للمستشعر.
نظرة سريعة على ويكيبيديا ويمكنك العثور على صيغة لقياس الحوادث وتحويل EV إلى Lux:
E = 2.5 * 2 ^ EV
حيث يتم قياس E بوحدة Lux.
نظرًا لأننا حصلنا بالفعل على قيمة Lux من المستشعر ونريد قيمة EV ، يتعين علينا إعادة تشكيل الصيغة ، مما يدفعنا إلى:
EV = log2 (E / 2.5)
لذلك هذا هو الحساب الأول الذي يجب القيام به من أجل الحصول على القيم الفوتوغرافية من مقياس الضوء.
في جدول البحث المرفق ، يمكنك رؤية جميع القيم التي سيتم استخدامها في مقياس الضوء هذا ، جنبًا إلى جنب مع قيم Lux و EV وفقًا لذلك.
الخطوة 2: عرض القيم على الشاشة | مكتبة Adafruit GFX
حاولت أولاً تقديم القيم في خطوات كاملة ، لأن هذا هو ما يمكنني ضبط Bronica عليه ، لكن هذا يقودني إلى مشكلة:
لنفترض أن مستشعر Lux يخرج قيمة 20480 بالضبط ، وهذا يعني أنه EV 13 بالضبط ، لذا يمكنني على سبيل المثال ضبط الكاميرا على f4 و 1 / 500th من الثانية وسيكون من الجيد أن تبدأ
بعد ذلك ، لنفترض أن مستشعر Lux سينتج 20479 Lux ، و 1 Lux تحت EV13 ، والذي من شأنه أن ينتج قيمة EV تبلغ 12 ، ولكن ليس سوى Lux بعيدًا عن EV13
لذا أود ضبط الكاميرا على f2.8 و 1/500 جزء من الثانية والتي من شأنها أن تزيد من تعريض نقطة توقف واحدة دون أن أعرف حتى مدى اقترابي من EV13.
الخلاصة: نحتاج إلى نوع من العرض التناظري للقيم لنرى على الأقل مدى قرب أو بعد المقياس عن خطوة EV التالية أو السابقة.
بعد محاولة استخدام الحروف والخط المدمجين في مكتبة GFX ، قررت استخدام رسمين مخصصين سينتقلان عبر شاشة OLED.
واحد لقيم الفتحة ، واحد للأوقات.
تستخدم مكتبة GFX قيم 8 بت لتقديم الرسومات ، لذلك قمت بعمل ورقة xls (انظر الصورة أعلاه).
- كل قيمة لها نفس المقدار بالضبط من البكسل لكل قيمة
- الأوقات وفتحات العدسة لها نفس المقدار من القيم في كل صف
- أضفت "ب" الضرورية في بداية كل بايت و "،" في النهاية
- ثم قمت بتصديره إلى نص عادي وفويلا: لقد تم إرفاق الرسم الثالث
تبدأ قيم الوقت بـ 1/8 من الثانية وتبدأ قيم الفتحة بـ f2.8
باستخدام جدول البحث الخاص بالخطوة السابقة ، نعلم أن هذا يمثل 160 Lux أو EV6.
ستكون القيم الأكثر قتامة عندئذ هي f22 و 1/500 جزء من الثانية
مرة أخرى من خلال جدول البحث يمكننا أن نرى أن هذا يعني 655360 Lux أو EV18
حتى الان جيدة جدا.
لذا في EV6 ، يجب أن تكون فتحة العدسة في أقصى اليسار ، والأوقات في أقصى اليمين ، والعكس بالعكس في EV18
الخطوة الثالثة: قراءة قيم Lux وتعويضها | VEML7700
أثناء التمرير عبر ورقة البيانات الخاصة باستخدام Vishay VEML7700 Adafruit للوحة الخاصة بهم ، وجدت إشعارًا مزعجًا إلى حد ما:
يعمل المستشعر فقط بشكل خطي بين 0 و 1000Lux (!)
انظر لقطة الشاشة مع الخط البرتقالي (الخطي) والخط الأزرق (خرج المستشعر الفعلي)
يبلغ ضوء الشمس (EV15) حوالي 80.000 لوكس ، مما يعني أنه بدون تعويض الجزء غير الخطي من المستشعر ، سيكون عديم الفائدة تمامًا كمقياس ضوئي.
يعرف Vishay ذلك ، لذلك قاموا بتزويد عملائهم بملف pdf آخر يسمى Designing the VEML7700 Into an Application.
في ملف pdf هذا ، يمكنك العثور على صيغة لتعويض المستشعرات غير الخطية:
LUX_CORR = 6.0135e-13 * pow (LUX، 4) -9.3924e-9 * pow (LUX، 3) + 8.1488e-5 * pow (LUX، 2) + 1.0023 * LUX
حيث LUX_CORR هي قيمة Lux المصححة و LUX هي القيمة التي يخرجها المستشعر.
هذه هي المتغيرات التي استخدمتها ، المتغيرات المستخدمة في ورقتهم.
ما يزعجني قليلاً هو أن Adafruit لم يذكر هذا بكلمة واحدة على صفحتهم أو وثائقهم أو مكتبتهم أو في أي مكان آخر.
لذا في الأيام القليلة الأولى كنت أتساءل لماذا يخرج مقياس الضوء الخاص بي فقط 20000 لوكس كحد أقصى حتى في ضوء الشمس المباشر.
إذا ألقيت نظرة على الرسم البياني الذي يحتوي على الخط الأحمر والأزرق ، يمكنك معرفة السبب: لأنه لا يمكن أن يرتفع إلى أعلى بدون صيغة التعويض.
لكن هناك تلميح آخر مخفي في توثيق المستشعر:
تعمل صيغة التعويض هذه فقط إذا قمت بتعيين المستشعر على 25 مللي ثانية ونسبة كسب 1/8.
تم ذلك بسهولة مع مكتبة Adafruits عن طريق إضافة:
veml.setGain (VEML7700_GAIN_1_8) ؛ veml.setIntegrationTime (VEML7700_IT_25MS) ،
في إعداد الفراغ الخاص بك ()
لذلك بعد ضبطه على 1/8 و 25 مللي ثانية وإضافة صيغة التعويض ، يمكنك قياس ما يصل إلى 120000 لوكس ، وهي طريقة كافية لتغطية ضوء الشمس عند 80-100 كيلو لوكس
الخطوة 4: Arduino / C-code
نظرًا لأنه يعتمد على شاشة العرض المستخدمة ووحدة التحكم المفضلة ، فلن أخوض كثيرًا في التفاصيل ، فقط بعض الأفكار والتلميحات التي يجب إضافتها ، خاصة عند استخدام مكتبات Adafruit و OLED بحجم 128 × 32 بكسل:
في الإعداد الفارغ:
قمت بتعيين جزء مكتبة VEML على:
veml.setGain (VEML7700_GAIN_1_8) ،
veml.setIntegrationTime (VEML7700_IT_25MS) ،
veml.setLowThreshold (10000) ،
veml.setHighThreshold (20000) ،
veml.interruptEnable (صحيح) ؛
في الحلقة الفارغة:
تأكد من إضافة التعويض:
int LUX_CORR = 6.0135e-13 * pow (LUX، 4) -9.3924e-9 * pow (LUX، 3) + 8.1488e-5 * pow (LUX، 2) + 1.0023 * LUX ؛
للحصول على EVs من Lux ، استخدم هذا الخط:
تعويم EV = log2 ((LUX_CORR / 2.5)) ؛
تحريك الصور النقطية
للتأكد من أن الصور النقطية تتحرك فقط عندما تكون القيم بين 160Lux و 655360Lux كما هو مذكور في الخطوة السابقة ، قم بلفها بجملة if مثل هذه:
إذا (LUX_CORR> 159 && LUX_CORR <655361)
بعد ذلك ، نحتاج إلى تعيين قيم EV للإحداثيات ، نظرًا لأن نطاق EVs عبارة عن أرقام مزدوجة ونريد نقلها من خارج الشاشة بأكثر من 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) ؛
وهذا كل ما يجب القيام به
على سبيل المكافأة ، أعرض قيم EV و Lux مباشرة عندما يخرج المستشعر قيمًا أقل من 160Lux ، فقط لأنني أردت رؤية الأشياء عند اختبارها.
الخطوة 5: ضعها معًا
نظرًا لأن كل من الشاشة والمستشعر يستخدمان I2C للتواصل ، فإن بناء الأجهزة الفعلية أمر بسيط بقدر الإمكان.
ما عليك سوى توصيل خطوط البيانات والساعة الأرضية وخطوط 3 فولت بـ Arduino وستكون جاهزًا للانطلاق.
لقد أضفت رسمًا كيف فعلت ذلك باستخدام لوحة شريطية ، ولكن كما قيل سابقًا ، يمكنك استخدام الكابلات أو حتى بناء جناح لها ، كل هذا يتوقف على وحدة التحكم والعرض الذي تستخدمه.
في رسومي ، من المفترض أن تكون النقاط البيضاء متصلة بالشاشة والمستشعر وتتصل النقاط الصفراء بـ Trinket.
سيكون الاستثناء الوحيد هو دبوس البيانات لخط I2C الذي يتصل بالشاشة ، ويتصل هذا الدبوس أيضًا بدبوس بيانات Trinkets.
اخترت عدم استخدام مفتاح تشغيل / إيقاف ولكن بدلاً من ذلك استخدم زر ضغط وخلايا زر 3 فولت لتشغيله مؤقتًا طالما أضغط على الزر. يتم تشغيله في أقل من 1/10 من الثانية ، لذا فهو سريع بما يكفي بالنسبة لي لحفظ زر وجعله أصغر.
موصى به:
Lighbox التصوير الفوتوغرافي مصنوع من الورق المقوى: 6 خطوات (بالصور)
التصوير الفوتوغرافي Lighbox مصنوع من الورق المقوى: هل سبق لك أن كنت في موقف كان عليك فيه التقاط صورة مثالية لشيء ما ولم يكن لديك برق مثالي أو خلفية جميلة؟ هل تهتم بالتصوير ولكن ليس لديك الكثير من المال لشراء معدات استوديو باهظة الثمن؟ إذا كان الأمر كذلك ، فهذا
منزلق التصوير الفوتوغرافي DIY: 4 خطوات
منزلق التصوير الفوتوغرافي DIY: مرحبًا بالجميع! هذا هو مشروعي الخاص بمنزلق كاميرا DIY ، لقد مررت بوقت عصيب معي ، لكنني متأكد من أنك إذا كنت تولي مزيدًا من الاهتمام بالتفاصيل ، فستنجح! من الناحية النظرية ، يجب أن يعمل هذا بشكل كامل إذا اخترت القيام بذلك ، أتمنى أن تستمتع هو - هي
DIY - إعادة تدوير مروحة أرضية إلى مُعدِّل ضوء التصوير الفوتوغرافي / مصباح الكل في واحد: 11 خطوة
افعل ذلك بنفسك - إعادة تدوير مروحة أرضية إلى مُعدِّل إضاءة التصوير الفوتوغرافي / مصباح الكل في واحد: لذلك كنت أقوم بالتنظيف مؤخرًا في الربيع ووجدت مروحة أرضية محترقة بمحركها. وكنت بحاجة إلى مصباح طاولة. 2 + 2 وقمت ببعض العصف الذهني وتوصلت إلى فكرة تحويل المروحة إلى معدل إضاءة بعرض 20 بوصة. تابع القراءة لـ
ضوء الفيديو الحميم / ضوء التصوير المحمول: 7 خطوات (بالصور)
ضوء الفيديو الحميم / ضوء المصور المحمول: أعرف ما تفكر فيه. بقلم & quot؛ حميمي & quot؛ قصدت الإضاءة عن قرب في ظل ظروف الإضاءة الصعبة - وليس بالضرورة & quot؛ المواقف الحميمة. & quot؛ (ومع ذلك ، يمكن استخدامه لذلك أيضًا …) بصفتك مصور فيديو في مدينة نيويورك - أو
مصدر ضوء التصوير الفوتوغرافي للماكرو باستخدام مصابيح الكاثود الباردة: 9 خطوات (بالصور)
مصدر ضوء التصوير الفوتوغرافي للماكرو باستخدام مصابيح الكاثود الباردة: عند التصوير باستخدام خيمة ضوئية ، يكون مصدر الضوء منخفض الكثافة مفيدًا جدًا. يعتبر CCFL (ضوء الفلورسنت الكاثود البارد) الموجود في شاشات LCD مثاليًا لهذا الغرض. يمكن العثور على CCFL وألواح تشتت الضوء المرتبطة بها في كمبيوتر محمول مكسور