Përmbajtje:
- Hapi 1: Llogaritjet Themelore | Lux në EV
- Hapi 2: Paraqitja e Vlerave në Ekran | Biblioteka Adafruit GFX
- Hapi 3: Leximi dhe Kompensimi i Vlerave Lux | VEML7700
- Hapi 4: Kodi Arduino / C
- Hapi 5: Vendosja së bashku
Video: Lightmetër fotografik DIY: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Ky Instructable ndan disa ide mbi ndërtimin e një ndriçuesi të thjeshtë të vogël dhe të lirë të incidentit.
Meqenëse Instructables nuk më lejon të fut videot e mia, provoni këtë lidhje:
www.youtube.com/embed/avQD10fd52s
Qëllimi për mua ishte një dritë-metër që të shoqëronte kamerën time të filmit të formatit të mesëm Bronica ETRSi.
Gjërat që doja që të shfaqte:
- single ASA (100) sepse unë pothuajse përdor vetëm filmin ASA 100
- sa më e vogël
- më jep vetëm kombinime që Bronica ime mund të riprodhojë, që do të thotë f2.8-f22 dhe 1 sekondë deri në 1/500 sekonda
- nuk ka veçori të pakuptimta, përveç kohës së thjeshtë dhe vlerave të hapjes
Gjërat që kam përdorur:
- Adafruit (Vishay) VEML 7700 Lux-meter dixhital (rreth 5 $)
- Mikrofontues Adafruit Trinket M0 (rreth 9 $)
- Ekran OLED 128x32 (rreth 10 $)
- një buton për ta ndezur përkohësisht (disa cent)
- një copë e vogël e dërrasës së shiritit, sepse përpiqem të mos përdor kabllo, por sigurisht që mund të përdorni edhe kabllo
Hapi 1: Llogaritjet Themelore | Lux në EV
Sensori që bleva përdor dy veçori që më lejojnë të vendos për të:
- nxjerr vlera 16bit lux në vend të vlerave të dritës "pa dimension"
- nxjerr vlerat përmes I2C
Një matës fotografik i dritës përdor Vlerat e ekspozimit (EV), sensori që bleva përdor vlerat Lux, që është një shkallë krejtësisht e ndryshme. Pra, hapi i parë është të merrni EV nga vlerat Lux me kusht që sensori.
Një paraqitje e shpejtë në wikipedia dhe mund të gjeni një formulë për matjen e incidentit dhe konvertimin e EV në Lux:
E = 2.5 * 2^EV
ku E matet në Lux.
Meqenëse ne kemi marrë tashmë vlerën Lux nga sensori dhe duam vlerën EV, ne duhet të ri-formojmë formulën, e cila na çon në:
EV = log2 (E/2.5)
Pra, kjo është llogaritja e parë që duhet bërë për të nxjerrë vlerat fotografike nga matësi i dritës.
Në tabelën e bashkangjitur të kërkimit mund të shihni të gjitha vlerat që do të përdoren në këtë dritë metër, së bashku me vlerat sipas Lux dhe EV.
Hapi 2: Paraqitja e Vlerave në Ekran | Biblioteka Adafruit GFX
Së pari u përpoqa të paraqes vlerat në hapa të tërë, sepse kjo është ajo që unë mund ta vendos Bronica -n time, por kjo më çon në një problem:
Le të supozojmë se sensori Lux del me një vlerë prej saktësisht 20480, që do të thotë se është saktësisht EV 13, kështu që unë mund të vendos për shembull kamerën time në f4 dhe 1/500 të sekondës dhe do të ishte mirë të shkoja
Tjetra, le të supozojmë se sensori Lux do të prodhonte 20479 Lux, 1 Lux nën EV13, që do të prodhonte një vlerë EV prej 12, por është vetëm një Lux larg EV13
Kështu që unë do ta vendosja kamerën time në f2.8 dhe 1/500 të sekondës e cila do të ekspozonte tej mase 1 ndalesë pa e ditur as sa afër isha me EV13.
Përfundim: ne kemi nevojë për një lloj shfaqjeje analoge të vlerave për të parë së paku sa afër ose larg është njehsori nga hapi tjetër ose i mëparshëm EV.
Pasi u përpoqa të përdor shkronjat dhe fontin e integruar të bibliotekës GFX, vendosa të përdor dy grafika të personalizuara që do të lëvizin nëpër ekranin OLED.
Një për vlerat e hapjes, një për kohën.
Biblioteka GFX përdor vlera 8bit për të paraqitur grafikë, kështu që unë bëra një fletë xls (shiko imazhin më lart).
- çdo vlerë ka të njëjtën sasi pikselësh për vlerë
- kohët dhe hapjet kanë saktësisht të njëjtën sasi vlerash për rresht
- Shtova "B" të domosdoshme në fillim të secilit bajt dhe "", në fund
- Më pas e eksportova në një tekst të thjeshtë dhe voila: grafikun e tretë e bashkangjita
Vlerat e kohës fillojnë me 1/8 e sekondës dhe vlerat e hapjes fillojnë me f2.8
Duke përdorur tabelën e kërkimit të hapit të mëparshëm ne e dimë se kjo përfaqëson 160 Lux ose EV6.
Vlerat më të errëta do të ishin f22 dhe 1/500 e sekondës
Përsëri përmes tabelës së kërkimit ne mund të shohim që do të thotë 655360 Lux ose EV18
Deri këtu mirë.
Pra, në EV6 grafiku i hapjes duhet të jetë në të majtë, koha në të djathtë, dhe anasjelltas në EV18
Hapi 3: Leximi dhe Kompensimi i Vlerave Lux | VEML7700
Ndërsa lëvizja nëpër fletën e të dhënave të përdorimit të Vishay VEML7700 Adafruit për tabelën e tyre, gjeta një njoftim mjaft shqetësues:
Sensori funksionon vetëm linear midis 0 dhe 1000Lux (!)
shihni pamjen e ekranit me vijën portokalli (lineare) dhe vijën blu (dalja aktuale e sensorit)
Rrezet e diellit (EV15) janë rreth 80.000 Lux, që do të thotë se pa kompensim të pjesës jo-lineare të sensorit do të ishte krejtësisht e padobishme si njehsor drite.
Vishay e di këtë, kështu që ata u siguruan klientëve të tyre një pdf tjetër të quajtur Dizajnimi i VEML7700 në një Aplikim.
Në këtë pdf mund të gjeni një formulë për të kompensuar sensorët jo-linearitet:
LUX_CORR = 6.0135e-13*fuqi (LUX, 4) -9.3924e-9*fuqi (LUX, 3)+8.1488e-5*fuqi (LUX, 2)+1.0023*LUX
Aty ku LUX_CORR është Lux-Value e korrigjuar dhe LUX është vlera që nxjerr sensori.
Ato janë variablat që kam përdorur, ato të ndryshme të përdorura në fletën e tyre.
Ajo që më shqetëson pak është se Adafruit nuk e përmend këtë me një fjalë të vetme në faqen e tyre, dokumentacionin e tyre, bibliotekën e tyre ose diku tjetër.
Kështu që ditët e para po pyesja veten se përse matësi i dritës sime del vetëm 20000 Lux maksimal edhe në rrezet e diellit direkte.
Nëse i hidhni një sy grafikut me vijën e kuqe dhe blu mund të shihni pse: sepse nuk mund të shkojë më lart pa formulën e kompensimit.
Por ka një aluzion tjetër të fshehur në dokumentacionin e sensorit:
Kjo formulë kompensimi funksionon vetëm nëse e vendosni sensorin në 25ms dhe një raport fitimi prej 1/8.
Kjo është bërë shumë lehtë me bibliotekën Adafruits duke shtuar:
veml.setGain (VEML7700_GAIN_1_8); veml.setIntegrationTime (VEML7700_IT_25MS);
në konfigurimin tuaj të zbrazët ()
Pra, pasi ta vendosni në 1/8 dhe 25ms dhe të shtoni formulën e kompensimit, mund të matni deri në 120000 lux, mjaftueshëm për të mbuluar rrezet e diellit në 80-100k Lux
Hapi 4: Kodi Arduino / C
Meqenëse varet nga ekrani juaj i përdorur dhe kontrolluesi i preferuar nuk do të hyj shumë në detaje, vetëm disa mendime dhe sugjerime për të shtuar, veçanërisht kur përdorni bibliotekat Adafruit dhe OLED 128x32 px:
në konfigurimin e zbrazëtisë:
e vendosa pjesën e bibliotekës VEML në:
veml.setGain (VEML7700_GAIN_1_8);
veml.setIntegrationTime (VEML7700_IT_25MS);
veml.setLowThreshold (10000);
veml.setHighThreshold (20000);
veml.interruptEnable (e vërtetë);
në lakun e zbrazëtisë:
sigurohuni që të shtoni kompensimin:
int LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX;
për të marrë EV nga Lux përdorni këtë linjë:
noton EV = log2 ((LUX_CORR/2.5));
duke lëvizur bitmaps
për t'u siguruar që bitmap -ët lëvizin vetëm kur vlerat janë midis 160Lux dhe 655360Lux siç është thënë në një hap të mëparshëm, mbështilleni atë në një klauzolë if si kjo:
nëse (LUX_CORR> 159 && LUX_CORR <655361)
Tjetra ne duhet të hartojmë vlerat e EV në koordinata, pasi diapazoni i EV -ve është dyshifrorë dhe ne duam t'i zhvendosim ato nga jashtë ekranit mbi 128px në të gjithë ekranin që na duhen vlera më të mëdha.
Ndërsa tashmë kemi një numër notues, thjesht e shumëzojmë atë me 100 dhe e përdorim atë numër të plotë për të hartuar koordinatat
int EV_DSPL = EV*100;
dhe:
KOHA = harta (EV_DSPL, 600, 1900, -260, 39); APERTURE = hartë (EV_DSPL, 600, 1900, 39, -260);
Siç mund ta shihni në rastin tim, pozicioni minimal i bitmap do të ishte -260px dhe maksimumi do të ishte 39px
Ajo që gjithashtu mund të shihet këtu është se i ndërrova koordinatat në mënyrë që dy hartat bit të lëvizin në drejtim të kundërt
Tjetra ne duhet të lëvizim bitmaps sipas koordinatave nga:
display.drawBitmap ((KOHA), (0), TIMES_bmp, 352, 16, 1); display.drawBitmap ((APERTURE), (15), APERTURES_bmp, 352, 16, 1);
Dhe kjo është gjithçka që duhet bërë
Si bonus unë shfaq vlerat e drejtpërdrejta të EV dhe Lux kur sensori del me vlera nën 160Lux, vetëm sepse doja të shikoja gjëra kur e testoja.
Hapi 5: Vendosja së bashku
Si të dy, ekrani dhe sensori po përdorin I2C për të komunikuar, ndërtimi i harduerit aktual është aq i thjeshtë sa mund të jetë.
Thjesht lidhni të dhënat, orën e tokës dhe linjat 3V me Arduino dhe jeni gati për të shkuar.
Unë shtova një grafik se si e bëra atë me një stripboard, por siç u tha më herët ju mund të përdorni kabllo ose edhe të ndërtoni një krah për të, gjithçka varet nga cili kontrollues dhe ekran që përdorni.
Në grafikun tim, pikat e bardha supozohet të jenë të lidhura me ekranin dhe sensorin dhe pikat e verdha të lidhen me xhingël.
Përjashtimi i vetëm do të ishte pin-i i të dhënave i linjës I2C që lidhet me ekranin, ai pin gjithashtu lidhet me pinin e të dhënave Trinkets.
Zgjodha të mos përdor një çelës ndezje/fikje, por në vend të tij të përdor një buton dhe dy qeliza të butonit 3V për ta ndezur përkohësisht atë për aq kohë sa unë shtyp butonin. Fuqizohet nën 1/10 e sekondës në mënyrë që të jetë mjaft e shpejtë për mua që të kursej një buton dhe ta bëj atë më të vogël.
Recommended:
Ndërruesi i pedalit Bluetooth për një aparat fotografik të smartphone: 13 hapa (me fotografi)
Ndërruesi i pedalit Bluetooth për një aparat smartphone: Këto ditë, unë jam duke bërë udhëzime, video në youtube dhe postime në blog. Për ta bërë postimin e blogut produktiv, është thelbësore të bëni shumë fotografi sa më hollësisht të jetë e mundur. Nuk është aq e lehtë për tu bërë sepse një qenie njerëzore ka vetëm dy duar. Kam nevoje
Ringjallni një aparat fotografik Polaroid Land: 32 hapa (me fotografi)
Ringjallni një Kamera Polaroid Land: Kamera Polaroid Land u emërua pas shpikësit të saj, Edwin Land. Ajo e prezantoi botën me idenë e fotografisë së menjëhershme dhe, në njëfarë mënyre, hapi rrugën për epokën moderne të kënaqësisë së menjëhershme dixhitale. Ky është një udhëzues i plotë për të marrë
DropArt - Përplasës fotografik Precision Two Drop: 11 hapa (me fotografi)
DropArt - Precision Two Drop Photographic Collider: Përshëndetje një dhe të gjithëve, Në këtë udhëzues unë paraqes modelin tim për një përplasës me dy pika të lëngshme të kontrolluara nga një kompjuter. Para se të fillojmë me detajet e dizajnit, mendoj se ka kuptim të shpjegojmë saktësisht se cili është qëllimi i dizajnit. Një argëtim, interesim
Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: 6 hapa
Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: Unë aktualisht jam duke planifikuar disa punë të brendshme për pranverën e ardhshme, por pasi sapo bleva një shtëpi të vjetër nuk kam ndonjë plan shtëpie. Fillova të mas distancat mur me mur duke përdorur një vizore, por është i ngadalshëm dhe i prirur ndaj gabimeve. Mendova të blija një gamë të gjerë
Si të bëni një aparat fotografik: 7 hapa (me fotografi)
Si të bëni një aparat fotografik: Bëni kamerën tuaj nga materialet në shtëpi dhe bëni fotografi bardh e zi me të