Orodha ya maudhui:

Lightmeter ya Picha ya DIY: Hatua 5
Lightmeter ya Picha ya DIY: Hatua 5

Video: Lightmeter ya Picha ya DIY: Hatua 5

Video: Lightmeter ya Picha ya DIY: Hatua 5
Video: VIDEO;MREMBO AKIFANYA NA CHUPA YA FANTA 2024, Novemba
Anonim
Lightmeter ya Picha ya DIY
Lightmeter ya Picha ya DIY
Lightmeter ya Picha ya DIY
Lightmeter ya Picha ya DIY

Agizo hili linashiriki maoni kadhaa juu ya ujenzi wa taa ndogo ndogo na rahisi ya tukio.

Kwa kuwa Maagizo hayaniruhusu kuingiza video zangu mwenyewe, jaribu kiunga hiki:

www.youtube.com/embed/avQD10fd52s

Lengo kwangu lilikuwa mita nyepesi kuongozana na kamera yangu ya filamu ya muundo wa Bronica ETRSi.

Vitu nilitaka iwe na kipengele:

  • ASA moja (100) kwa sababu karibu ninatumia filamu ya ASA 100 tu
  • ndogo iwezekanavyo
  • nipe tu mchanganyiko ambao Bronica yangu inaweza kuzaa, ambayo inamaanisha f2.8-f22 na 1sec hadi sekunde 1/500
  • hakuna mambo ya kipuuzi, isipokuwa nyakati wazi na maadili ya kufungua

Vitu nilivyotumia:

  • Adafruit (Vishay) VEML 7700 mita ya dijiti ya dijiti (karibu 5 $)
  • Mdhibiti mdogo wa Adafruit Trinket M0 (karibu 9 $)
  • Onyesho la 128x32 OLED (karibu dola 10)
  • kitufe cha kushinikiza kuiwasha kwa muda (senti zingine)
  • kipande kidogo cha bodi ya kuvua, kwa sababu ninajaribu kutotumia nyaya, lakini kwa kweli unaweza kutumia nyaya pia

Hatua ya 1: Mahesabu ya Msingi | Lux hadi EV

Mahesabu ya kimsingi | Lux hadi EV
Mahesabu ya kimsingi | Lux hadi EV
Mahesabu ya kimsingi | Lux hadi EV
Mahesabu ya kimsingi | Lux hadi EV

Sensorer nilinunua hutumia huduma mbili ambazo ziniruhusu niamue juu yake:

  • matokeo ya viwango 16 lux lux badala ya "dimension-less" values light
  • hutoa maadili kupitia I2C

Mita nyepesi ya picha hutumia Maadili ya Mfiduo (EV) sensa nilionunua hutumia maadili ya Lux, ambayo ni kiwango tofauti kabisa. Kwa hivyo hatua ya kwanza ni kupata EV kutoka kwa maadili ya Lux inayotolewa na sensor.

Mtazamo wa haraka kwenye wikipedia na unaweza kupata fomula ya upimaji wa matukio na ubadilishe EV kuwa Lux:

E = 2.5 * 2 ^ EV

ambapo E hupimwa kwa Lux.

Kwa kuwa tayari tumepata dhamana ya Lux kutoka kwa sensa na tunataka thamani ya EV, lazima tuunde tena fomula, ambayo inatupeleka kwa:

EV = log2 (E / 2.5)

Kwa hivyo hiyo ni hesabu ya kwanza ambayo inapaswa kufanywa ili kupata maadili ya picha nje ya taa.

Katika jedwali la kutazama lililoambatishwa unaweza kuona maadili yote ambayo yatatumika kwenye taa hii, pamoja na maadili kulingana na Lux na EV.

Hatua ya 2: Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX

Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX
Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX
Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX
Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX
Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX
Kuwasilisha Maadili kwenye Onyesho | Maktaba ya Adafruit GFX

Nilijaribu kwanza kuwasilisha maadili kwa hatua zote, kwa sababu ndio ninayoweza kuweka Bronica yangu, lakini hiyo inaniletea shida:

Wacha tuchukue matokeo ya sensorer ya Lux thamani ya 20480 haswa, hiyo itamaanisha EV 13 yake kweli kwa hivyo ningeweza kwa mfano kuweka kamera yangu kwenye f4 na 1 / 500th ya sekunde na itakuwa vizuri kwenda

Ifuatayo, wacha tuchukue sensor ya Lux itatoa 20479 Lux, 1 Lux chini ya EV13, ambayo itatoa thamani ya EV ya 12, lakini ni Lux tu mbali na EV13

Kwa hivyo ningeweka kamera yangu kwenye f2.8 na 1 / 500th ya sekunde ambayo ingeweza kuonyesha 1 kuacha bila mimi hata kujua jinsi nilikuwa karibu na EV13.

Hitimisho: tunahitaji aina fulani ya onyesho la maadili ya angalau ili kuona jinsi mita iko karibu au mbali kutoka kwa hatua inayofuata au ya awali ya EV.

Baada ya kujaribu kutumia iliyojengwa kwa herufi na fonti ya maktaba ya GFX niliamua kutumia picha mbili maalum ambazo zitapita kwenye skrini ya OLED.

Moja ya maadili ya kufungua, moja kwa nyakati.

Maktaba ya GFX hutumia maadili ya 8bit kuwasilisha picha, kwa hivyo nilitengeneza karatasi ya xls (angalia picha hapo juu).

  • kila thamani ina idadi sawa ya saizi kwa kila thamani
  • nyakati na apertures zina idadi sawa ya maadili kwa safu
  • Niliongeza "B" ya kawaida mwanzoni mwa kila ka na "," mwishoni
  • Kisha nikaihamisha kwa maandishi wazi na voila: nilikuwa na picha ya tatu iliyoambatanishwa

Thamani za wakati huanza na 1/8 sekunde na maadili ya kufungua huanza na f2.8

Kutumia jedwali la kutafuta hatua ya awali tunajua hii inawakilisha 160 Lux au EV6.

Thamani nyeusi kabisa basi itakuwa f22 na 1 / 500th ya sekunde

Tena kupitia meza ya kutafuta tunaweza kuona hiyo inamaanisha 655360 Lux au EV18

Hadi sasa ni nzuri sana.

Kwa hivyo kwenye EV6 mchoro wa kufungua unapaswa kuwa upande wa kushoto zaidi, nyakati upande wa kulia, na kinyume chake kwenye EV18

Hatua ya 3: Kusoma na kulipa Fidia ya Thamani za Lux | VEML7700

Kusoma na Kufidia Thamani za Lux | VEML7700
Kusoma na Kufidia Thamani za Lux | VEML7700
Kusoma na Kufidia Thamani za Lux | VEML7700
Kusoma na Kufidia Thamani za Lux | VEML7700

Wakati nikitembea kwenye hati ya data ya matumizi ya Vishay VEML7700 Adafruit kwa bodi yao, nilipata ilani ya kusumbua:

Sensor inafanya kazi tu kati ya 0 na 1000Lux (!)

angalia picha ya skrini na laini ya rangi ya machungwa (laini) na laini ya bluu (pato halisi la sensorer)

Mwanga wa jua (EV15) ni karibu 80.000 Lux, ambayo inamaanisha bila fidia ya sehemu isiyo ya laini ya sensa itakuwa bure kabisa kama mita nyepesi.

Vishay anajua hilo, kwa hivyo waliwapatia wateja wao pdf nyingine inayoitwa Kubuni VEML7700 ndani ya Maombi.

Katika pdf hii unaweza kupata fomula ya kulipa fidia sensorer zisizo za usawa:

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

Ambapo LUX_CORR ni Lux-Value iliyosahihishwa na LUX ni thamani ya matokeo ya sensorer.

Hizo ndio vigeuzi nilivyotumia, zile tofauti zilizotumiwa kwenye karatasi yao.

Kile kinachoniumiza kidogo ni kwamba Adafruit haisemi hii kwa neno moja kwenye ukurasa wao, nyaraka zao, maktaba yao au mahali pengine.

Kwa hivyo siku chache za kwanza nilikuwa nikijiuliza kwanini taa yangu ya umeme hutoa tu 20000 Lux upeo hata kwa jua moja kwa moja.

Ukiangalia grafu iliyo na nyekundu na laini ya samawati unaweza kuona kwanini: kwa sababu haiwezi kwenda juu zaidi bila fomula ya fidia.

Lakini kuna dokezo lingine lililofichwa kwenye nyaraka za sensa:

Fomula hii ya fidia inafanya kazi tu ikiwa utaweka sensa kwa 25ms na uwiano wa faida ya 1/8.

Hiyo imefanywa kwa urahisi na maktaba ya Adafruits kwa kuongeza:

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

katika usanidi wako batili ()

Kwa hivyo baada ya kuiweka kwa 1/8 na 25ms na kuongeza fomula ya fidia unaweza kupima hadi 120000 lux, njia ya kutosha kufunika jua kwa 80-100k Lux

Hatua ya 4: Arduino / C-code

Kama inategemea onyesho lako lililotumiwa na mtawala unayependelea sitaenda kwa undani zaidi, mawazo machache tu na vidokezo vya kuongeza, haswa wakati wa kutumia maktaba za Adafruit na 128x32 px OLED:

katika usanidi batili:

nimeweka sehemu ya maktaba ya VEML kuwa:

veml.setGain (VEML7700_GAIN_1_8);

veml.setIntegrationTime (VEML7700_IT_25MS);

veml.setLowThreshold (10000);

veml.setHighThreshold (20000);

veml.interruptIwezesha (kweli);

katika kitanzi batili:

hakikisha kuongeza fidia:

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

kupata EVs kutoka Lux tumia laini hii:

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

kusonga bitmaps

kuhakikisha bitmaps zinasonga tu wakati maadili ni kati ya 160Lux na 655360Lux kama ilivyoelezwa katika hatua ya awali, ifunge kwa kifungu kama hicho:

ikiwa (LUX_CORR> 159 && LUX_CORR <655361)

Ifuatayo tunahitaji kuweka ramani ya maadili ya EV kuratibu, kwani anuwai ya EV ni tarakimu mbili na tunataka kuziondoa kutoka kwa onyesho zaidi ya 128px kwenye onyesho lote tunahitaji maadili makubwa.

Kwa kuwa tayari tumepata nambari ya kuelea tunazidisha hiyo kwa 100 na tumia nambari hiyo kuorodhesha kuratibu

int EV_DSPL = EV * 100;

na:

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

Kama unavyoona kwa upande wangu nafasi ya chini ya bitmap itakuwa -260px na kiwango cha juu kitakuwa 39px

Kile ambacho kinaweza kuonekana hapa ni kwamba nilibadilisha kuratibu ili bitmaps mbili zihamie upande mwingine

Ifuatayo tunahitaji kusonga bitmaps kulingana na kuratibu na:

onyesha.drawBitmap ((TIME), (0), TIMES_bmp, 352, 16, 1);

Na hiyo ndiyo yote ambayo inahitaji kufanywa

Kama bonasi ninaonyesha maadili ya moja kwa moja ya EV na Lux wakati sensor inapotoa Thamani chini ya 160Lux, kwa sababu tu nilitaka kuona vitu wakati wa kuipima.

Hatua ya 5: Kuiweka Pamoja

Kuiweka Pamoja
Kuiweka Pamoja
Kuiweka Pamoja
Kuiweka Pamoja

Kama zote mbili, onyesho na sensa zinatumia I2C kuwasiliana, ujenzi wa vifaa halisi ni rahisi kama inavyowezekana.

Unganisha tu Takwimu, Saa ya Saa na mistari ya 3V na Arduino na umewekwa tayari.

Niliongeza picha jinsi nilivyofanya na ukanda, lakini kama inavyosemwa hapo awali unaweza kutumia nyaya au hata kuijengea bawa, yote inategemea mtawala gani na onyesha unayotumia.

Kwenye picha yangu, dots nyeupe zinapaswa kuunganishwa na onyesho na sensa na dots za manjano zinaunganisha kwenye Trinket.

Chaguo pekee litakuwa pini ya data ya laini ya I2C inayounganisha na onyesho, pini hiyo pia inaunganisha kwenye pini ya data ya Trinkets.

Nilichagua kutotumia kitufe cha kuwasha / kuzima lakini badala yake nitumie kitufe cha kushinikiza na seli mbili za kitufe cha 3V kuiwezesha kwa muda mrefu tu ninapobonyeza kitufe. Inajiweza chini ya 1/10 ya sekunde ili iwe haraka haraka kwangu kuachilia kitufe na kuifanya iwe ndogo.

Ilipendekeza: