Obsah:
- Krok 1: Základné výpočty | Lux až EV
- Krok 2: Zobrazenie hodnôt na displeji | Knižnica Adafruit GFX
- Krok 3: Čítanie a kompenzácia hodnôt Lux | VEML7700
- Krok 4: Arduino / C-kód
- Krok 5: Dajte to dohromady
Video: Fotografický svetelný merač DIY: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Tento návod zdieľa niekoľko nápadov na stavbu jednoduchého malého a lacného merača dopadajúceho svetla.
Keďže mi Instructables nedovolí vkladať vlastné videá, vyskúšajte tento odkaz:
www.youtube.com/embed/avQD10fd52s
Cieľom pre mňa bol svetelný meter, ktorý by sprevádzal moju strednoformátovú filmovú kameru Bronica ETRSi.
Veci, ktoré som chcel, aby predstavoval:
- single ASA (100), pretože takmer výlučne používam film ASA 100
- čo najmenšie
- len mi dajte kombinácie, ktoré dokáže moja Bronica reprodukovať, čo znamená f2,8-f22 a 1 s až 1/500 s
- žiadne nezmyselné funkcie, okrem bežných časov a hodnôt clony
Veci, ktoré som použil:
- Adafruit (Vishay) VEML 7700 digitálny luxmeter (približne 5 $)
- Mikroprocesor Adafruit Trinket M0 (približne 9 $)
- 128 x 32 OLED displej (približne 10 $)
- tlačidlo na dočasné zapnutie (niekoľko centov)
- malý kúsok pásky, pretože sa snažím nepoužívať káble, ale určite môžete použiť aj káble
Krok 1: Základné výpočty | Lux až EV
Senzor, ktorý som si kúpil, používa dve funkcie, ktoré mi umožňujú rozhodnúť sa o ňom:
- namiesto hodnôt svetla „bez rozmerov“vydáva hodnoty 16 bitov lux
- odosiela hodnoty cez I2C
Fotografický merač svetla používa hodnoty expozície (EV), snímač, ktorý som kúpil, používa hodnoty Lux, čo je úplne iná mierka. Prvým krokom je teda získanie EV z hodnôt Lux za predpokladu, že bude snímač.
Krátky pohľad na wikipédiu a môžete nájsť vzorec na meranie incidentov a prevod EV na Lux:
E = 2,5 * 2^EV
kde E sa meria v luxoch.
Pretože sme už dostali hodnotu Lux zo senzora a chceme hodnotu EV, musíme znova vytvoriť vzorec, ktorý nás dostane:
EV = log2 (E/2,5)
Toto je prvý výpočet, ktorý je potrebné vykonať, aby sa zo svetelného merača dostali fotografické hodnoty.
V priloženej vyhľadávacej tabuľke môžete vidieť všetky hodnoty, ktoré budú použité v tomto svetelnom merači, spolu s príslušnými hodnotami Lux a EV.
Krok 2: Zobrazenie hodnôt na displeji | Knižnica Adafruit GFX
Najprv som sa pokúsil prezentovať hodnoty v celých krokoch, pretože na to môžem nastaviť svoju Bronicu, ale to ma priviedlo k problému:
Predpokladajme, že snímač Lux má výstup presne 20480, to by znamenalo jeho presný EV 13, takže by som napríklad mohol nastaviť fotoaparát na f4 a 1/500 sekundy a bolo by dobré ísť
Ďalej predpokladajme, že snímač Lux by produkoval 20479 Lux, 1 Lux pod EV13, ktorý by produkoval hodnotu EV 12, ale bol by len Lux vzdialený od EV13
Fotoaparát by som teda nastavil na f2,8 a 1/500 sekundy, čo by preexponovalo 1 zastávku bez toho, aby som vedel, ako blízko som k EV13.
Záver: Potrebujeme nejaký druh analógového zobrazenia hodnôt, aby sme aspoň videli, ako blízko alebo ďaleko je merač od nasledujúceho alebo predchádzajúceho kroku EV.
Keď som sa pokúsil použiť vstavané písmená a písma knižnice GFX, rozhodol som sa použiť dve vlastné grafiky, ktoré sa budú pohybovať po obrazovke OLED.
Jeden pre hodnoty clony, jeden pre časy.
Knižnica GFX používa na prezentáciu grafiky hodnoty 8 bitov, a tak som vytvoril list xls (pozri obrázok vyššie).
- každá hodnota má presne rovnaký počet pixelov na hodnotu
- časy a clony majú presne rovnaký počet hodnôt na riadok
- Pridal som potrebné „B“na začiatok každého bajtu a „,“na koniec
- Potom som to exportoval do obyčajného textu a voila: pripojil som tretiu grafiku
Časové hodnoty začínajú o 1/8 sekundy a hodnoty clony začínajú na f2,8
Pomocou vyhľadávacej tabuľky z predchádzajúceho kroku vieme, že to predstavuje 160 Lux alebo EV6.
Najtmavšie hodnoty by potom boli f22 a 1/500 sekundy
Opäť prostredníctvom vyhľadávacej tabuľky vidíme, že to znamená 655360 Lux alebo EV18
Zatiaľ je všetko dobré.
Takže na EV6 musí byť grafika clony úplne vľavo, časy úplne vpravo a naopak na EV18
Krok 3: Čítanie a kompenzácia hodnôt Lux | VEML7700
Pri listovaní v technickom liste Vishay VEML7700 Adafruit, ktorý používa na svojej doske, som našiel dosť znepokojujúce oznámenie:
Senzor funguje lineárne iba medzi 0 a 1000 Lux (!)
pozrite si snímku obrazovky s oranžovou (lineárnou) čiarou a modrou (skutočný výstup snímača)
Slnečné svetlo (EV15) sa pohybuje okolo 80 000 Luxov, čo znamená, že bez kompenzácie nelineárnej časti senzora by bolo ako merač svetla úplne zbytočné.
Vishay to vie, a tak svojim zákazníkom poskytlo ďalšie pdf s názvom Navrhovanie VEML7700 do aplikácie.
V tomto pdf nájdete vzorec na kompenzáciu nelinearity senzorov:
LUX_CORR = 6,0135e-13*prášok (LUX, 4) -9,3924e-9*prášok (LUX, 3)+8,1488e-5*prášok (LUX, 2)+1,0023*LUX
Kde LUX_CORR je korigovaná hodnota Lux a LUX je hodnota, ktorú senzor vydáva.
Toto sú premenné, ktoré som použil, použité rôzne v ich hárku.
Trochu mi vadí, že Adafruit to nespomína jediným slovom na svojej stránke, dokumentácii, knižnici ani inde.
Prvých niekoľko dní som sa teda čudoval, prečo môj merač svetla vydáva maximum iba 20 000 Luxov, dokonca aj na priamom slnku.
Ak sa pozriete na graf s červenou a modrou čiarou, pochopíte prečo: pretože bez vzorca pre kompenzáciu nemôže ísť vyššie.
V dokumentácii senzora je však skrytý ďalší náznak:
Tento vzorec kompenzácie funguje iba vtedy, ak nastavíte snímač na 25 ms a pomer zisku 1/8.
S knižnicou Adafruits sa to robí celkom jednoducho pridaním:
veml.setGain (VEML7700_GAIN_1_8); veml.setIntegrationTime (VEML7700_IT_25MS);
vo vašom neplatnom nastavení ()
Takže po nastavení na 1/8 a 25 ms a pridaní vzorca pre kompenzáciu môžete namerať až 1 200 000 luxov, čo je dostatočné množstvo na pokrytie slnečného svetla pri 80 až 100 000 luxoch
Krok 4: Arduino / C-kód
Keďže to závisí od použitého displeja a preferovaného ovládača, nebudem sa príliš rozpisovať, len niekoľko myšlienok a rád, ktoré je potrebné doplniť, najmä pri použití knižníc Adafruit a OLED s rozlíšením 128 x 32 px:
v nastavení prázdnoty:
Nastavil som časť knižnice VEML na:
veml.setGain (VEML7700_GAIN_1_8);
veml.setIntegrationTime (VEML7700_IT_25MS);
veml.setLowThreshold (10 000);
veml.setHighThreshold (20 000);
veml.interruptEnable (true);
v prázdnej slučke:
Nezabudnite pridať kompenzáciu:
int LUX_CORR = 6,0135e-13*prášok (LUX, 4) -9,3924e-9*prášok (LUX, 3)+8,1488e-5*prášok (LUX, 2)+1,0023*LUX;
na získanie EV z Luxu použite tento riadok:
float EV = log2 ((LUX_CORR/2,5));
presúvanie bitových máp
aby ste sa uistili, že sa bitmapy pohybujú iba vtedy, keď sú hodnoty medzi 160Lux a 655360Lux, ako je uvedené v predchádzajúcom kroku, zabaľte ho do klauzule if takto:
ak (LUX_CORR> 159 && LUX_CORR <655361)
Ďalej musíme mapovať hodnoty EV na súradnice, pretože rozsah EV je dvojciferný a chceme ich presunúť z mimo displeja na 128 pixelov na celý displej, potrebujeme väčšie hodnoty.
Keď sme už dostali číslo s pohyblivou číslicou, vynásobíme ho 100 a pomocou tohto celého čísla zmapujeme súradnice
int EV_DSPL = EV*100;
a:
TIME = mapa (EV_DSPL, 600, 1900, -260, 39); APERTURE = mapa (EV_DSPL, 600, 1900, 39, -260);
Ako vidíte v mojom prípade, minimálna poloha bitmapy by bola -260 pixelov a maximálna by bola 39 pixelov
Tu je tiež možné vidieť, že som zmenil súradnice tak, aby sa dve bitové mapy pohybovali v opačnom smere
Ďalej musíme presunúť bitmapy podľa súradníc podľa:
display.drawBitmap ((TIME), (0), TIMES_bmp, 352, 16, 1); display.drawBitmap ((APERTURE), (15), APERTURES_bmp, 352, 16, 1);
A to je všetko, čo je potrebné urobiť
Ako bonus zobrazujem rovné hodnoty EV a Lux, keď snímač vydáva hodnoty pod 160 Lux, len preto, že som chcel pri testovaní vidieť veci.
Krok 5: Dajte to dohromady
Pretože displej aj senzor používajú na komunikáciu I2C, budovanie skutočného hardvéru je také jednoduché, ako to len môže byť.
Stačí prepojiť dátové, hodinové a 3V vedenia s Arduino a môžete ísť.
Pridal som grafiku, ako som to urobil s tabuľou, ale ako už bolo povedané, môžete na to použiť káble alebo dokonca postaviť krídlo, všetko závisí od toho, ktorý ovládač a displej použijete.
Na mojej grafike majú byť biele bodky pripojené k displeju a senzoru a žlté bodky k Trinketu.
Jedinou výnimkou by bol dátový kolík linky I2C, ktorý sa pripája k displeju, tento pin sa tiež pripája k dátovému kolíku Trinkets.
Rozhodol som sa nepoužívať vypínač/vypínač, ale namiesto toho použiť tlačidlo a dva 3V gombíkové články na dočasné zapnutie, pokiaľ tlačidlo stlačím. Zapne sa za menej ako 1/10 sekundy, takže pre mňa dostatočne rýchlo ušetrím tlačidlo a zmenším ho.
Odporúča:
Lacný fotografický box pre domácich majstrov: 5 krokov
Lacný fotografický box pre domácich majstrov: Potrebovali ste niekedy niečo, aby vaše fotografie vyzerali lepšie pre váš projekt s pokynmi, alebo len potrebujete správne osvetlenie pre svoje obrázky, môžete použiť aj fotografický box, ktorý sa dá ľahko vyrobiť doma. Môj tu nie je najlepší, ale je lacný a
Fotografický svetelný box vyrobený z lepenky: 6 krokov (s obrázkami)
Fotografický svetelný box vyrobený z lepenky: Dostali ste sa niekedy do situácie, keď ste museli niečo dokonale odfotiť a nemali ste dokonalé blesky ani pekné pozadie? Máte radi fotografovanie, ale nemáte veľa peňazí na drahé vybavenie štúdia? Ak áno, toto je
Svetelný merač Arduino DIY so snímačom BH1750: 6 krokov (s obrázkami)
Svetelný merač Arduino DIY so snímačom BH1750: V tomto návode vám ukážem, ako vytvoriť merač svetla s veľkým LCD displejom Nokia 5110 pomocou Arduina. Budovanie svetelného merača je skvelá učebná skúsenosť. Po dokončení stavby tohto projektu lepšie porozumiete
Skladací svetelný box / svetelný stan v komerčnej kvalite za 20 dolárov / 20 minút: 7 krokov (s obrázkami)
Skladací svetelný box / svetelný stan v komerčnej kvalite za 20 dolárov / 20 minút: Ak ste hľadali svetelný box na výrobu vlastných výrobkov alebo fotografie zblízka, už viete, že máte veľa možností. Od kartónových škatúľ po prekážky bielizne si môžete myslieť, že projekt bol dokončený na smrť. Ale počkaj! Za 20 dolárov
Svetelný rám (pre svetelný box na fotografovanie Tekjocks): 3 kroky
Svetelný rám (pre svetelný box pre fotografovanie Tekjocks): Tu nadväzuje na môj svetelný box pre fotografiu. Nebudem sa o tom rozpisovať, pretože príde na to, akú veľkosť hadičky získate, ktorá veľkosť hardvéru budete potrebovať. Toto bude teda veľmi základný návod. Uverejním príspevok