Мазмұны:
- 1 -қадам: Негізгі есептеулер | EV -ге люкс
- 2 -қадам: Мәндерді дисплейде көрсету | Adafruit GFX кітапханасы
- 3 -қадам: Люкс құндылықтарын оқу және өтеу | VEML7700
- 4-қадам: Arduino / C-коды
- 5 -қадам: оны біріктіру
Бейне: DIY фотографиялық жарық өлшегіші: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл нұсқаулық қарапайым шағын және арзан жарық шамының құрылысына қатысты кейбір идеялармен бөліседі.
Instructables маған өз бейнелерімді енгізуге рұқсат бермейтіндіктен, мына сілтемені қолданып көріңіз:
www.youtube.com/embed/avQD10fd52s
Менің мақсатым-орташа форматтағы Bronica ETRSi кинокамерасын сүйемелдеу үшін жарық өлшеуіш.
Мен көрсеткісі келетін нәрселер:
- жалғыз ASA (100), себебі мен тек ASA 100 пленкасын қолданамын
- мүмкіндігінше кіші
- маған тек Bronica шығаратын комбинацияларды беріңіз, бұл f2.8-f22 және 1sec-1/500 сек.
- қарапайым уақыттар мен диафрагмалық мәндерді қоспағанда, мағынасыз ерекшеліктер жоқ
Мен қолданған заттар:
- Adafruit (Vishay) VEML 7700 сандық люкс метрі (шамамен 5 доллар)
- Adafruit Trinket M0 микроконтроллері (шамамен 9 доллар)
- 128x32 OLED дисплей (шамамен 10 доллар)
- уақытша қосу түймесі (бірнеше цент)
- Кішкене жолақ тақтасы, өйткені мен кабельдерді қолданбауға тырысамын, бірақ сіз кабельдерді де қолдана аласыз
1 -қадам: Негізгі есептеулер | EV -ге люкс
Мен сатып алған сенсор бұл туралы шешім қабылдауға мүмкіндік беретін екі мүмкіндікті пайдаланады:
- «өлшемсіз» жарық мәндерінің орнына 16 биттік люкс мәндерін шығарады
- мәндерді I2C арқылы шығарады
Фотографиялық жарық өлшегіш экспозиция мәндерін (EV) пайдаланады, мен сатып алған сенсор мүлдем басқа масштабтағы Lux мәндерін пайдаланады. Бірінші қадам - сенсормен жабдықталған Люкс мәнінен EV алу.
Уикипедияға жылдам қарау және сіз оқиғаларды өлшеу формуласын таба аласыз және EV -ны Люкске айналдыра аласыз:
E = 2,5 * 2^EV
мұндағы Е люкспен өлшенеді.
Біз сенсордан Lux мәнін алғандықтан және EV мәнін алғымыз келетіндіктен, біз формуланы қайта құруға тиіспіз, ол бізге:
EV = log2 (E/2.5)
Бұл жарық өлшегіштен фотографиялық мәндерді алу үшін жасалуы керек бірінші есеп.
Қосылған іздеу кестесінде Lux және EV мәндерімен бірге осы жарық өлшегіште қолданылатын барлық мәндерді көруге болады.
2 -қадам: Мәндерді дисплейде көрсету | Adafruit GFX кітапханасы
Мен алдымен құндылықтарды толық қадаммен ұсынуға тырыстым, себебі мен Брониканы осылай қоя аламын, бірақ бұл мені проблемаға әкеледі:
Lux сенсоры дәл 20480 мәнін шығарады деп есептейік, бұл оның EV 13 дегенді білдіреді, сондықтан мен камерамды f4 пен 1/500 секундына орната аламын және баруға жақсы болар еді
Келіңіздер, Lux сенсоры EV13 астында 20479 Lux, 1 Lux шығарады, бұл EV мәнін 12 шығарады, бірақ EV13 -тен бір люкс
Сондықтан мен камерамды f2.8 және секундтың 1/500 бөлігіне қоятын едім, ол EV13 -ке қаншалықты жақын екенімді білмей -ақ, 1 аялдаманы шамадан тыс арттырады.
Қорытынды: есептегіштің келесі немесе алдыңғы EV қадамынан қаншалықты жақын немесе алыс екенін көру үшін бізге мәндердің аналогтық көрінісі қажет.
GFX кітапханасының кіріктірілген әріптері мен қарпін қолдануға тырысқаннан кейін мен OLED экранында жылжитын екі реттелетін графиканы қолдануға шешім қабылдадым.
Бірі диафрагма мәндері үшін, екіншісі уақыт үшін.
GFX кітапханасы графиканы көрсету үшін 8 биттік мәндерді пайдаланады, сондықтан мен xls парағын жасадым (жоғарыдағы суретті қараңыз).
- әрбір мәнде бір мәнге сәйкес келетін пиксельдер саны бірдей
- уақыттар мен саңылаулардың бір жолдағы мәндері бірдей
- Мен әр байттың басына қажет «В» мен соңына «,» қостым
- Содан кейін мен оны қарапайым мәтінге және воилаға экспорттадым: мен үшінші графиканы тіркедім
Уақыт мәндері секундына 1/8 секундтан басталады және диафрагма мәндері f2.8 басталады
Алдыңғы қадамның іздеу кестесін қолдана отырып, бұл 160 Lux немесе EV6 екенін білеміз.
Ең қараңғы мәндер f22 және секундтың 1/500 болады
Тағы да іздеу кестесі арқылы бұл 655360 Lux немесе EV18 дегенді білдіреді
Әзірше бәрі жақсы.
Сондықтан EV6 -де диафрагма графигі сол жақта, уақыт оң жақта және керісінше EV18 -де болуы керек.
3 -қадам: Люкс құндылықтарын оқу және өтеу | 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 Lux максимумын тікелей күн сәулесінде де шығарады деп ойладым.
Егер сіз қызыл және көк сызығы бар графикке қарасаңыз, оның себебін көре аласыз: себебі ол өтемақы формуласынсыз жоғары көтеріле алмайды.
Бірақ сенсордың құжаттамасында жасырылған тағы бір кеңес бар:
Бұл компенсация формуласы сенсорды 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 алу үшін мына жолды пайдаланыңыз:
float EV = log2 ((LUX_CORR/2.5));
нүктелік карталарды жылжыту
нүктелік карталар алдыңғы қадамда көрсетілгендей мәндер 160Lux пен 655360Lux аралығында болғанда ғана қозғалатынына көз жеткізу үшін оны келесі сөйлемге ораңыз:
егер (LUX_CORR> 159 && LUX_CORR <655361)
Содан кейін біз EV мәндерін координаттармен салыстыруымыз керек, өйткені EV -дің диапазоны екі таңбалы және біз оларды дисплейден 128 пиксельден жоғары дисплейден жылжытқымыз келеді, бізге үлкен мәндер қажет.
Бізде өзгермелі нөмір бар болғандықтан, біз оны 100 -ге көбейтеміз және координаттарды салыстыру үшін сол санды қолданамыз
int EV_DSPL = EV*100;
және:
УАҚЫТ = карта (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 -ді қолданады, сондықтан нақты жабдықты құру мүмкіндігінше қарапайым.
Деректерді, Clock жерін және 3V желілерін Arduino -мен байланыстырыңыз, сонда сіз дайын боласыз.
Мен оны стриптиз тақтасында қалай жасағанымды графикамен қостым, бірақ бұрын айтылғандай, сіз кабельдерді қолдана аласыз немесе тіпті қанат жасай аласыз, бәрі сіз басқаратын дисплей мен дисплейге байланысты.
Менің графикамда ақ нүктелер дисплей мен сенсорға, ал сары нүктелер Сегізкіге қосылуы керек.
Жалғыз ерекшелік дисплейге қосылатын I2C желісінің деректер түйреуіші болады, бұл түйін Trinkets деректер түйреуішіне де қосылады.
Мен қосу/өшіру қосқышын пайдаланбауды шештім, бірақ мен түймені басқанша оны уақытша қуаттандыру үшін батырманы және 3В екі түйме ұяшығын қолдандым. Ол 1/10 секундтан аз уақыт ішінде қосылады, осылайша мен батырманы босатып, оны кішірейте аламын.
Ұсынылған:
Бағдарламасыз жарық қарқындылығы өлшегіші: 7 қадам (суреттермен)
Бағдарламасыз жарық қарқындылығы өлшегіші: Бұл нұсқаулық Arduino немесе кез келген басқа микроконтроллерді немесе бағдарламалауды пайдаланбай, негізгі жарық интенсивті өлшегішті жасау туралы. Жарық интенсивтілігін өлшейтін құрал жарық диодтарының әр түрлі түстерімен жарықтың әр түрлі қарқындылығын көрсетеді. Қызыл жарық диодты
BH1750 сенсоры бар Arduino DIY жарық өлшегіші: 6 қадам (суреттермен)
BH1750 сенсоры бар Arduino DIY жарық өлшегіші: Бұл нұсқаулықта мен сізге Arduino көмегімен үлкен Nokia 5110 LCD дисплейі бар жарық өлшегішті қалай жасау керектігін көрсетемін. Сіз бұл жобаны құруды аяқтағаннан кейін сіз жақсы түсінесіз
Түсті басқаратын фотографиялық жарық қорабы: 5 қадам
Түстерді басқаратын фотосурет жарық қорабы: Жарық жәшігі - бұл фотосуретте объектке түсетін жарықтың ақтығын басқаруға арналған құрылғы. Мен Интернетте көрген көптеген лайтбокс жоспарлары табиғи жарыққа немесе ақ жасанды жарықтандыруға негізделген, мысалы, шамдар, люминесцентті лампалар және
Фотографиялық жарықтандыруды қысу серіппелі полюс: 12 қадам
Фотографиялық жарықтандыруды сығымдау серіппелі полюс: Бұл нұсқаулық басқа нұсқаулықпен, фотостудияның MK1 қысу полюсінен алынған. Мен түпнұсқа дизайнын жасамақ болдым, бірақ толық жабық нұсқасын жасауға шешім қабылдадым. Жанама әсер ретінде ол кеңейеді, кез келген жерде 5,5 ф
Фотографиялық жарық қорап: 6 қадам (суреттермен)
Фотографиялық жарық қорапшасы: Кішігірім мен орташа заттарды суретке түсіру үшін фотографиялық жарық қорап. ) Wide/Think екі қабатты таспа (мен қолдандым