Isi kandungan:

Lightmeter Fotografi DIY: 5 Langkah
Lightmeter Fotografi DIY: 5 Langkah

Video: Lightmeter Fotografi DIY: 5 Langkah

Video: Lightmeter Fotografi DIY: 5 Langkah
Video: How to Use a Light Meter for Film Photography #shorts 2024, Julai
Anonim
Lightmeter Fotografi DIY
Lightmeter Fotografi DIY
Lightmeter Fotografi DIY
Lightmeter Fotografi DIY

Instructable ini berkongsi beberapa idea untuk membina lightmeter kejadian kecil dan murah.

Oleh kerana Instructables tidak akan membiarkan saya memasukkan video saya sendiri, cuba pautan ini:

www.youtube.com/embed/avQD10fd52s

Tujuan saya adalah pengukur cahaya untuk menemani kamera filem format sederhana Bronica ETRSi saya.

Perkara yang saya mahukan adalah:

  • single ASA (100) kerana saya hampir hanya menggunakan filem ASA 100
  • sekecil mungkin
  • hanya berikan kombinasi yang dapat dihasilkan oleh Bronica saya, yang bermaksud f2.8-f22 dan 1sec hingga 1/500 saat
  • tidak ada ciri-ciri karut, kecuali waktu biasa dan nilai bukaan

Perkara yang saya gunakan:

  • Adafruit (Vishay) VEML 7700 Lux-meter digital (sekitar $ 5)
  • Pengawal mikro Adafruit Trinket M0 (sekitar $ 9)
  • Paparan OLED 128x32 (sekitar 10 $)
  • butang tekan untuk menghidupkannya buat sementara waktu (beberapa sen)
  • sekeping papan jalur kecil, kerana saya cuba untuk tidak menggunakan kabel, tetapi anda juga boleh menggunakan kabel

Langkah 1: Pengiraan Asas | Lux hingga EV

Pengiraan Asas | Lux hingga EV
Pengiraan Asas | Lux hingga EV
Pengiraan Asas | Lux hingga EV
Pengiraan Asas | Lux hingga EV

Sensor yang saya beli menggunakan dua ciri yang membolehkan saya memutuskannya:

  • mengeluarkan nilai 16bit lux dan bukannya nilai cahaya "tanpa dimensi"
  • menghasilkan nilai melalui I2C

Meter cahaya fotografi menggunakan Nilai Pendedahan (EV) yang saya beli menggunakan nilai Lux, yang merupakan skala yang berbeza. Jadi langkah pertama adalah mendapatkan EV dari nilai Lux yang disediakan sensor.

Sekilas pantas di wikipedia dan anda boleh mendapatkan formula untuk mengukur kejadian dan menukar EV menjadi Lux:

E = 2.5 * 2 ^ EV

di mana E diukur dalam Lux.

Oleh kerana kita sudah mendapat nilai Lux dari sensor dan menginginkan nilai EV, kita harus membentuk semula formula, yang membuat kita dapat:

EV = log2 (E / 2.5)

Jadi itu adalah pengiraan pertama yang harus dilakukan untuk mengeluarkan nilai fotografi dari lightmeter.

Dalam jadual carian yang dilampirkan, anda dapat melihat semua nilai yang akan digunakan dalam lightmeter ini, bersama dengan nilai Lux dan EV yang sesuai.

Langkah 2: Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX

Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX
Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX
Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX
Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX
Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX
Mempersembahkan Nilai di Paparan | Perpustakaan Adafruit GFX

Saya mula-mula mencuba memberikan nilai-nilai secara keseluruhan, kerana itulah yang dapat saya tetapkan pada Bronica saya, tetapi itu membawa saya kepada masalah:

Mari kita anggap sensor Lux mengeluarkan nilai tepat 20480, itu bermaksud ia betul-betul EV 13 jadi saya misalnya boleh menyetel kamera saya pada f4 dan 1/500 saat dan akan baik

Seterusnya, mari kita anggap sensor Lux akan mengeluarkan 20479 Lux, 1 Lux di bawah EV13, yang akan menghasilkan nilai EV 12, tetapi hanya Lux jauh dari EV13

Oleh itu, saya akan menetapkan kamera saya pada f2.8 dan 1/500 saat yang akan menyebabkan 1 berhenti tanpa saya sedar walaupun saya dekat dengan EV13.

Kesimpulan: kita memerlukan beberapa jenis paparan analog dari nilai untuk sekurang-kurangnya melihat sejauh mana jarak atau jarak meter dari langkah EV seterusnya atau sebelumnya.

Setelah cuba menggunakan huruf dan fon binaan perpustakaan GFX, saya memutuskan untuk menggunakan dua grafik tersuai yang akan bergerak melintasi skrin OLED.

Satu untuk nilai bukaan, satu untuk masa.

Perpustakaan GFX menggunakan nilai 8bit untuk menunjukkan grafik, jadi saya membuat lembaran xls (lihat gambar di atas).

  • setiap nilai mempunyai jumlah piksel per nilai yang sama
  • masa dan bukaan mempunyai jumlah nilai yang sama setiap baris
  • Saya menambahkan "B" yang diperlukan pada awal setiap bait dan "," pada akhir
  • Saya kemudian mengeksportnya ke teks biasa dan voila: saya melampirkan grafik ketiga

Nilai masa bermula pada 1/8 sesaat dan nilai apertur bermula pada f2.8

Dengan menggunakan jadual pencarian dari langkah sebelumnya, kita tahu ini mewakili 160 Lux atau EV6.

Nilai yang paling gelap kemudiannya adalah f22 dan 1/500 saat

Sekali lagi melalui jadual carian kita dapat melihat itu bermaksud 655360 Lux atau EV18

Setakat ini begitu baik.

Jadi pada EV6 grafik aperture mesti berada di paling kiri, waktu di paling kanan, dan sebaliknya di EV18

Langkah 3: Membaca dan Mengimbangi Nilai Lux | VEML7700

Membaca dan Mengimbangi Nilai Lux | VEML7700
Membaca dan Mengimbangi Nilai Lux | VEML7700
Membaca dan Mengimbangi Nilai Lux | VEML7700
Membaca dan Mengimbangi Nilai Lux | VEML7700

Semasa menelusuri lembar data penggunaan Vishay VEML7700 Adafruit untuk papan mereka, saya dapati notis yang agak mengganggu:

Sensor hanya berfungsi linear antara 0 dan 1000Lux (!)

lihat tangkapan skrin dengan garis oren (linier) dan garis biru (output sensor sebenar)

Cahaya matahari (EV15) adalah sekitar 80.000 Lux, yang bermaksud tanpa pampasan dari bahagian tak linear sensor itu akan menjadi tidak berguna sepenuhnya sebagai meter cahaya.

Vishay mengetahuinya, jadi mereka memberikan pelanggan mereka pdf lain yang disebut Merancang VEML7700 Ke dalam Aplikasi.

Dalam pdf ini anda dapat mencari formula untuk mengimbangi sensor yang tidak linear:

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

Di mana LUX_CORR adalah Nilai Lux yang diperbetulkan dan LUX adalah nilai yang dikeluarkan oleh sensor.

Itulah pemboleh ubah yang saya gunakan, yang berbeza digunakan dalam helaiannya.

Apa yang mengganggu saya adalah Adafruit tidak menyebutnya dengan satu perkataan di halaman mereka, dokumentasi mereka, perpustakaan mereka atau di tempat lain.

Oleh itu, beberapa hari pertama saya tertanya-tanya mengapa meter cahaya saya hanya menghasilkan maksimum 20000 Lux walaupun dalam cahaya matahari langsung.

Sekiranya anda melihat grafik dengan garis merah dan biru, anda dapat melihat sebabnya: kerana tidak dapat naik lebih tinggi tanpa formula pampasan.

Tetapi ada petunjuk lain yang tersembunyi dalam dokumentasi sensor:

Formula pampasan ini hanya berfungsi jika anda menetapkan sensor ke 25ms dan nisbah keuntungan 1/8.

Perkara itu dilakukan dengan mudah dengan perpustakaan Adafruits dengan menambahkan:

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

dalam persediaan kosong anda ()

Oleh itu, setelah menetapkannya kepada 1/8 dan 25ms dan menambahkan formula pampasan, anda dapat mengukur hingga 120000 lux, cukup untuk menutup cahaya matahari pada 80-100k Lux

Langkah 4: Arduino / C-code

Kerana bergantung pada paparan terpakai dan pengawal pilihan anda, saya tidak akan terlalu terperinci, hanya beberapa idea dan petunjuk untuk ditambahkan, terutama ketika menggunakan perpustakaan Adafruit dan OLED 128x32 px:

dalam persediaan kosong:

saya menetapkan bahagian perpustakaan VEML ke:

veml.setGain (VEML7700_GAIN_1_8);

veml.setIntegrationTime (VEML7700_IT_25MS);

veml.setLowThreshold (10000);

veml.setHighThreshold (20000);

veml.interruptEnable (benar);

dalam gelung kekosongan:

pastikan untuk menambah pampasan:

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

untuk mendapatkan EV dari Lux gunakan baris ini:

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

menggerakkan bitmap

untuk memastikan bitmap hanya bergerak apabila nilai antara 160Lux dan 655360Lux seperti yang dinyatakan pada langkah sebelumnya, bungkusnya dengan klausa jika seperti itu:

jika (LUX_CORR> 159 && LUX_CORR <655361)

Seterusnya kita perlu memetakan nilai EV ke koordinat, kerana julat EV adalah dua digit dan kita ingin memindahkannya dari luar paparan lebih dari 128 piksel di seluruh paparan, kita memerlukan nilai yang lebih besar.

Oleh kerana kita sudah mendapat nombor apungan, kita gandakan dengan 100 dan gunakan bilangan bulat itu untuk memetakan koordinat

int EV_DSPL = EV * 100;

dan:

MASA = peta (EV_DSPL, 600, 1900, -260, 39); APERTURE = peta (EV_DSPL, 600, 1900, 39, -260);

Seperti yang anda lihat dalam keadaan saya, kedudukan minimum bitmap adalah -260px dan maksimum ialah 39px

Yang juga dapat dilihat di sini ialah saya menukar koordinat sehingga kedua bitmap bergerak ke arah yang bertentangan

Seterusnya kita perlu menggerakkan bitmap mengikut koordinat dengan:

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

Itu sahaja yang perlu dilakukan

Sebagai bonus, saya memaparkan nilai EV dan Lux lurus ketika sensor mengeluarkan Nilai di bawah 160Lux, hanya kerana saya ingin melihat barang semasa mengujinya.

Langkah 5: Menyatukannya

Menggabungkannya
Menggabungkannya
Menggabungkannya
Menggabungkannya

Kerana keduanya, paparan dan sensor menggunakan I2C untuk berkomunikasi, membina perkakasan sebenarnya semudah yang mungkin.

Cukup sambungkan Data, tanah Jam dan garis 3V dengan Arduino dan anda sudah bersedia.

Saya menambahkan grafik bagaimana saya melakukannya dengan papan selisih, tetapi seperti yang dikatakan sebelumnya anda boleh menggunakan kabel atau bahkan membina sayap untuk itu, semuanya bergantung pada alat kawalan dan paparan yang anda gunakan.

Pada grafik saya, titik putih sepatutnya disambungkan ke paparan dan sensor dan titik kuning menyambung ke Trinket.

Satu-satunya pengecualian adalah pin data dari garis I2C yang menghubungkan ke paparan, pin itu juga menghubungkan ke pin data Trinkets.

Saya memilih untuk tidak menggunakan suis hidup / mati tetapi sebaliknya menggunakan butang tekan dan dua sel butang 3V untuk sementara menghidupkannya selama saya menekan butang. Kekuatannya dalam masa kurang dari 1/10 sesaat sehingga cukup cepat untuk saya menyimpan butang dan menjadikannya lebih kecil.

Disyorkan: