Мазмуну:

DIY Photograph Lightmeter: 5 кадам
DIY Photograph Lightmeter: 5 кадам

Video: DIY Photograph Lightmeter: 5 кадам

Video: DIY Photograph Lightmeter: 5 кадам
Video: Laws of Light: 5 Portrait Lighting Setups 2024, Июль
Anonim
DIY Photograph Lightmeter
DIY Photograph Lightmeter
DIY Photograph Lightmeter
DIY Photograph Lightmeter

Бул Instructable жөнөкөй чакан жана арзан инцидентти куруу боюнча кээ бир идеяларды бөлүшөт.

Instructables менин жеке видеолорумду киргизүүгө уруксат бербегендиктен, бул шилтемени колдонуп көрүңүз:

www.youtube.com/embed/avQD10fd52s

Менин максатым-Bronica ETRSi орто форматтагы кино камерамды коштоо үчүн жарык метр.

Мен көрсөтүүнү каалаган нерселер:

  • жалгыз ASA (100), анткени мен дээрлик ASA 100 пленкасын колдоном
  • мүмкүн болушунча кичине
  • мага Броникам репродукция кыла турган комбинацияларды гана бер, бул f2.8-f22 жана 1 сек/500 сек.
  • жөнөкөй убакыттан жана диафрагманын маанилеринен башка эч кандай мааниси жок өзгөчөлүктөр

Мен колдонгон нерселер:

  • Adafruit (Vishay) VEML 7700 санариптик люкс-метр (болжол менен 5 $)
  • Adafruit Trinket M0 микро контроллери (9 доллардын тегерегинде)
  • 128x32 OLED дисплей (болжол менен 10 $)
  • убактылуу күйгүзүү үчүн баскыч (кээ бир цент)
  • кичинекей тилке тактайы, анткени мен кабелдерди колдонбоого аракет кылам, бирок сиз кабелдерди колдоно аласыз

1 -кадам: Негизги эсептөөлөр | EV үчүн Lux

Негизги эсептөөлөр | EV үчүн Lux
Негизги эсептөөлөр | EV үчүн Lux
Негизги эсептөөлөр | EV үчүн Lux
Негизги эсептөөлөр | EV үчүн Lux

Мен сатып алган сенсор мага чечим чыгарууга мүмкүндүк берген эки өзгөчөлүктү колдонот:

  • "Өлчөмсүз" жарык маанилердин ордуна 16 бит люкс баалуулуктарын чыгарат
  • баалуулуктарды I2C аркылуу чыгарат

Фотографиялык жарык эсептегич Мен сатып алган сенсор таптакыр башка масштабдагы Lux баалуулуктарын колдонот. Ошентип, биринчи кадам - бул сенсор менен камсыз болгон Люкс баалуулуктарынан EV алуу.

Уикипедияга кыскача көз чаптырсаңыз, инциденттерди эсептөөнүн формуласын таба аласыз жана EVди Люкска айландырасыз:

E = 2.5 * 2^EV

мында Е Люкс менен өлчөнөт.

Биз сенсордон Люкс баасын алгандыктан жана EV маанисин каалаганыбыз үчүн, бизди ала турган формуланы кайра түзүшүбүз керек:

EV = log2 (E/2.5)

Ошентип, бул жарык өлчөгүчтөн фотографиялык баалуулуктарды алуу үчүн жасалышы керек болгон биринчи эсептөө.

Тиркелген издөө таблицасында сиз Luxmet жана EV баалуулуктары менен бирге бул жарык ченегичте колдонула турган бардык баалуулуктарды көрө аласыз.

2 -кадам: Дисплейдеги баалуулуктарды көрсөтүү | Adafruit GFX китепканасы

Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы
Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы
Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы
Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы
Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы
Дисплейде баалуулуктарды көрсөтүү | Adafruit GFX китепканасы

Мен адегенде баалуулуктарды бүт кадамдар менен көрсөтүүгө аракет кылдым, анткени бул менин Броникамды орното алам, бирок бул мени көйгөйгө алып келет:

Келгиле, Lux сенсорунун так 20480 мааниси чыгат, бул анын так EV 13 дегенди билдирет, ошондуктан мен камерамды f4 жана 1/500 секундасына коюп алсам жакшы болмок

Андан кийин, Люкс сенсору EV13 астында 20479 Lux, 1 Lux чыгарат деп ойлойбуз, бул EV маанисин 12ге чыгарат, бирок EV13тен бир люкс алыс

Ошентип, мен камерамды f2.8ге жана секунданын 1/500сүнө коймокмун, бул болсо EV13ке канчалык жакын экенимди билбей туруп эле 1 аялдаманы ашырып жиберет.

Жыйынтык: эсептегичтин кийинки же мурунку EV кадамынан канчалык жакын же алыс экенин көрүү үчүн бизге кандайдыр бир аналогдук дисплей керек.

GFX китепканасынын курулган тамгаларын жана шрифтин колдонууга аракет кылгандан кийин, мен OLED экранында жыла турган эки ыңгайлаштырылган графиканы колдонууну чечтим.

Бири диафрагма баалуулуктары үчүн, бири убакыт үчүн.

GFX китепканасы графиканы көрсөтүү үчүн 8 бит баалуулуктарды колдонот, андыктан мен xls барагын жасадым (жогорудагы сүрөттү караңыз).

  • ар бир мааниде бир пикселдин бирдей өлчөмү бар
  • жолу жана тешиктери бир сапта бирдей өлчөмдө болот
  • Мен ар бир байттын башында "B" жана аягында "," коштум
  • Мен аны жөнөкөй текстке жана voilaга экспорттодум: үчүнчү график тиркелди

Убакыт баалуулуктары секунданын 1/8 секундасында жана диафрагманын маанилери f2.8де башталат

Мурунку кадамдын таблицасын колдонуу менен биз билебиз, бул 160 люкс же EV6.

Эң караңгы маанилер f22 жана секунданын 1/500сү болмок

Дагы издөө столу аркылуу биз 655360 Lux же EV18 дегенди көрө алабыз

Азырынча ушунчалык жакшы.

Ошентип, EV6де диафрагманын графиги эң сол жакта, убакыттар эң оң жакта жана тескерисинче EV18де болушу керек

3 -кадам: Люкс баалуулуктарын окуу жана компенсациялоо | VEML7700

Люкс баалуулуктарын окуу жана компенсациялоо | VEML7700
Люкс баалуулуктарын окуу жана компенсациялоо | VEML7700
Люкс баалуулуктарын окуу жана компенсациялоо | VEML7700
Люкс баалуулуктарын окуу жана компенсациялоо | VEML7700

Vishay VEML7700 Adafruit маалымат тактасын жылдырып, тактайын колдонуп жатып, мен бир топ тынчсыздандыруучу билдирүү таптым:

Сенсор 0 менен 1000Lux ортосунда гана сызыктуу иштейт (!)

апельсин (сызыктуу) сызык жана көк (чыныгы сенсордун чыгышы) сызыгы менен скриншотту караңыз

Күндүн нуру (EV15) болжол менен 80.000 люкс, бул сенсордун сызыктуу эмес бөлүгүн компенсация албаганда, жарык эсептегич катары толугу менен жараксыз болуп калат дегенди билдирет.

Вишай муну билет, ошондуктан алар өз кардарларына VEML7700 тиркемесин долбоорлоо деп аталган башка pdf файлын беришти.

Бул 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-Value жана LUX-бул сенсор чыгарган маани.

Бул мен колдонгон өзгөрмөлөр, алардын баракчасында колдонулган ар кандай.

Мени бир аз бушайман кылган нерсе, Адафрут муну өз баракчасында, документтеринде, китепканасында же башка жерде бир сөз менен айтпайт.

Алгачкы күндөрдө мен эмнеге менин жарык эсептегичим түз күн нурунда да 20000 люкс максимумду чыгарат деп ойлончумун.

Эгерде сиз кызыл жана көк сызыгы бар графаны карасаңыз, анда анын себебин көрө аласыз: анткени ал компенсация формуласы жок жогору көтөрүлө албайт.

Бирок сенсордун документтеринде катылган дагы бир ишарат бар:

Бул компенсация формуласы сенсорду 25 мске жана кирешенин 1/8 өлчөмүнө койсоңуз гана иштейт.

Бул Adafruits китепканасы менен оңой эле жасалат:

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

боштук орнотууңузда ()

Ошентип, аны 1/8 жана 25 мске коюп, компенсация формуласын кошкондон кийин, күн нурун 80-100 к Люкс жабуу үчүн 120000 люкс чейин өлчөй аласыз

4-кадам: Arduino / C-коду

Бул сиздин колдонулган дисплейиңизге жана тандалган контроллерге жараша болот, мен майда -чүйдөсүнө чейин барбайм, бир нече ойлорду жана кеңештерди кошуу керек, айрыкча Adafruit китепканаларын жана 128x32 px OLED колдонууда:

боштук орнотууда:

Мен 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;

Люкстен EV алуу үчүн бул линияны колдонуңуз:

калкып EV = log2 ((LUX_CORR/2.5));

битмаптарды жылдыруу

Битмаптар мурунку кадамда айтылгандай 160Lux менен 655360Lux ортосунда болгондо гана жылышын камсыз кылуу үчүн, аны төмөнкүдөй пунктка ороп коюңуз:

эгер (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);

Менин учурда көрүп тургандай, битмаптын минималдуу позициясы -260px болмокчу жана максимум 39px болмок

Бул жерде да көрүнүп тургандай, мен эки координатаны карама -каршы багытта жылдыруу үчүн координаттарды алмаштырдым

Андан кийин биз координаттар боюнча битмаптарды жылдырышыбыз керек:

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

Жана мунун баарын жасоо керек

Бонус катары мен сенсор 160Lux астындагы баалуулуктарды чыгарганда түз EV жана Lux баалуулуктарын көрсөтөм, анткени мен аны сынап жатканда нерселерди көргүм келди.

5 -кадам: Аны бириктирүү

Аны бириктирүү
Аны бириктирүү
Аны бириктирүү
Аны бириктирүү

Экөө тең, дисплей жана сенсор I2C байланыш үчүн колдонушат, чыныгы аппараттык жабдууну куруу мүмкүн болушунча жөнөкөй.

Жөн гана Arduino менен Data, Clock жерин жана 3V линияларын туташтырыңыз жана сиз кетүүгө даярсыз.

Мен муну стриптиз менен кантип жасаганымды график менен коштум, бирок мурда айтылгандай, сиз кабелдерди колдоно аласыз, ал тургай канат кура аласыз, мунун баары сиз колдонгон контроллер менен дисплейге байланыштуу.

Менин графикте ак чекиттер дисплейге жана сенсорго, ал эми сары чекиттер Тринкетке туташышы керек.

Дисплейге туташкан I2C линиясынын маалымат-пини гана болот, бул пин да Trinkets маалымат пинине туташат.

Мен күйгүзүү/өчүрүү которгучун колдонууну эмес, тескерисинче, баскычты жана 3V баскычынын эки уячасын колдонуп, аны баскычын басканымда убактылуу иштетүү үчүн. Бул секунданын 1/10 бөлүгүндө иштейт, ошондуктан бат эле баскычты сактап, кичирейтип коём.

Сунушталууда: