Სარჩევი:

წვრილმანი ფოტოგრაფიული განათება: 5 ნაბიჯი
წვრილმანი ფოტოგრაფიული განათება: 5 ნაბიჯი

ვიდეო: წვრილმანი ფოტოგრაფიული განათება: 5 ნაბიჯი

ვიდეო: წვრილმანი ფოტოგრაფიული განათება: 5 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
წვრილმანი ფოტოგრაფიული განათება
წვრილმანი ფოტოგრაფიული განათება
წვრილმანი ფოტოგრაფიული განათება
წვრილმანი ფოტოგრაფიული განათება

ეს ინსტრუქცია იზიარებს რამდენიმე იდეას მარტივი მცირე და იაფი ინციდენტის მსუბუქიმეტრის შესაქმნელად.

როგორც Instructables არ მაძლევს უფლებას ჩავამატო ჩემი საკუთარი ვიდეოები, სცადეთ ეს ბმული:

www.youtube.com/embed/avQD10fd52s

ჩემთვის მიზანი იყო სინათლის მეტრი, ჩემი ბრონიკა ETRSi საშუალო ფორმატის კინოკამერის თანხლებით.

ის, რაც მინდოდა რომ გამოეჩინა:

  • მარტოხელა ASA (100), რადგან მე თითქმის მხოლოდ ASA 100 ფილმს ვიყენებ
  • რაც შეიძლება პატარა
  • მომეცი მხოლოდ კომბინაციები, რომელთა რეპროდუცირებაც შეუძლია ჩემს ბრონიკას, რაც ნიშნავს f2.8-f22 და 1 წამში 1/500-ე წმ
  • არ არის უაზრო მახასიათებლები, გარდა უბრალო დროისა და დიაფრაგმის მნიშვნელობებისა

ნივთები, რომლებიც მე გამოვიყენე:

  • Adafruit (Vishay) VEML 7700 ციფრული ლუქსმეტრი (დაახლოებით 5 $)
  • Adafruit Trinket M0 მიკრო კონტროლერი (დაახლოებით 9 $)
  • 128x32 OLED დისპლეი (დაახლოებით 10 $)
  • ღილაკი, რომ დროებით ჩართო (რამდენიმე ცენტი)
  • ზოლებიანი დაფის პატარა ნაჭერი, რადგან ვცდილობ არ გამოვიყენო კაბელები, მაგრამ თქვენც შეგიძლიათ კაბელები გამოიყენოთ

ნაბიჯი 1: ძირითადი გათვლები | ლუქსი EV– მდე

ძირითადი გათვლები | ლუქსი EV– მდე
ძირითადი გათვლები | ლუქსი EV– მდე
ძირითადი გათვლები | ლუქსი EV– მდე
ძირითადი გათვლები | ლუქსი EV– მდე

სენსორი, რომელიც მე შევიძინე, იყენებს ორ მახასიათებელს, რაც მე მაძლევს გადაწყვეტილებას:

  • გამოაქვს 16 ბიტიანი ლუქსი მნიშვნელობები "განზომილების გარეშე" სინათლის მნიშვნელობების ნაცვლად
  • გამოაქვს მნიშვნელობები I2C საშუალებით

ფოტოგრაფიული სინათლის მრიცხველი იყენებს ექსპოზიციის ღირებულებებს (EV) სენსორი, რომელიც მე შევიძინე, იყენებს Lux მნიშვნელობებს, რაც არის სრულიად განსხვავებული მასშტაბი. ასე რომ, პირველი ნაბიჯი არის ელექტროენერგიის მიწოდება Lux– ის მნიშვნელობებით, იმ პირობით, რომ სენსორია.

ვიკიპედიის სწრაფი მიმოხილვა და თქვენ შეგიძლიათ იპოვოთ ინციდენტის გაზომვის ფორმულა და გადააკეთოთ EV ლუქსი:

E = 2.5 * 2^EV

სადაც E იზომება ლუქსში.

ვინაიდან ჩვენ უკვე მივიღეთ Lux- ის მნიშვნელობა სენსორისგან და გვინდა EV- ის მნიშვნელობა, ჩვენ უნდა შევქმნათ ფორმულა, რომელიც გვაიძულებს:

EV = log2 (E/2.5)

ასე რომ, ეს არის პირველი გაანგარიშება, რომელიც უნდა გაკეთდეს იმისათვის, რომ მიიღოთ სინათლის მრიცხველიდან ფოტოგრაფიული მნიშვნელობები.

თანდართულ საძიებო ცხრილში შეგიძლიათ ნახოთ ყველა მნიშვნელობა, რომელიც გამოყენებული იქნება ამ შუქმეტრში, Lux და EV მნიშვნელობების შესაბამისად.

ნაბიჯი 2: ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა

ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა
ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა
ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა
ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა
ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა
ჩვენება ღირებულებების ჩვენება | ადაფრუტის GFX ბიბლიოთეკა

მე პირველად შევეცადე წარმომედგინა ღირებულებები მთლიანი ნაბიჯებით, რადგან ეს არის ის, რისი დაყენებაც შემიძლია ჩემი Bronica– სთვის, მაგრამ ამან მიმიყვანა პრობლემასთან:

დავუშვათ, რომ ლუქსის სენსორი გამოდის ზუსტად 20480 მნიშვნელობით, ეს ნიშნავს რომ ის არის ზუსტად EV 13, ასე რომ მე შემიძლია, მაგალითად, ჩემი კამერა დავაყენო f4 და 1/500 წამი და კარგი იქნება წასვლა

შემდეგი, დავუშვათ, რომ ლუქსი სენსორი გამოიღებს 20479 ლუქსი, 1 ლუქსი EV13– ის ქვეშ, რომელიც გამოიმუშავებს EV– ს ღირებულებას 12, მაგრამ ის მხოლოდ ლუქსია EV13– დან

ასე რომ, მე დავაყენებდი ჩემს კამერას f2.8 და 1/500 წამის მანძილზე, რაც მეტისმეტად ასახავდა 1 გაჩერებას, იმისდა მიუხედავად, რომ არ ვიცოდი რამდენად ახლოს ვიყავი EV13– თან.

დასკვნა: ჩვენ გვჭირდება მნიშვნელობების ანალოგური ჩვენება, რათა მინიმუმ დავინახოთ რამდენად ახლოს ან შორს არის მეტრი მომდევნო ან წინა EV საფეხურიდან.

GFX ბიბლიოთეკის ჩაშენებული ასოებისა და შრიფტების გამოყენების მცდელობის შემდეგ გადავწყვიტე გამოვიყენო ორი პერსონალური გრაფიკა, რომელიც გადავა OLED ეკრანზე.

ერთი დიაფრაგმის მნიშვნელობებისთვის, ერთი ჯერ.

GFX ბიბლიოთეკა იყენებს 8 ბიტიან ღირებულებებს გრაფიკის წარმოსაჩენად, ამიტომ მე შევქმენი xls ფურცელი (იხ. სურათი ზემოთ).

  • თითოეულ მნიშვნელობას აქვს ზუსტად იგივე რაოდენობის პიქსელი თითო მნიშვნელობაზე
  • ჯერ და დიაფრაგმა აქვს ზუსტად იგივე რაოდენობის მნიშვნელობა თითო მწკრივზე
  • მე დავამატე აუცილებელი "B" თითოეული ბაიტის დასაწყისში და "," ბოლოს
  • შემდეგ ის ექსპორტზე გადავიტანე უბრალო ტექსტზე და ვოილაში: მე დავამატე მესამე გრაფიკა

დროის მნიშვნელობები იწყება 1/8 წამში და დიაფრაგმის მნიშვნელობები იწყება f2.8

წინა ნაბიჯის საძიებო ცხრილის გამოყენებით ჩვენ ვიცით, რომ ეს წარმოადგენს 160 ლუქსი ან EV6.

ყველაზე ბნელი მნიშვნელობები იქნება f22 და 1/500 წამი

ისევ საძიებელი ცხრილის საშუალებით ჩვენ ვხედავთ, რომ ეს ნიშნავს 655360 Lux ან EV18

ჯერჯერობით კარგად.

ასე რომ, EV6– ზე დიაფრაგმის გრაფიკა უნდა იყოს უკიდურეს მარცხნივ, ჯერ მარჯვნივ, და პირიქით EV18– ზე

ნაბიჯი 3: ლუქსის ღირებულებების წაკითხვა და ანაზღაურება | VEML7700

ლუქსის ღირებულებების კითხვა და ანაზღაურება | VEML7700
ლუქსის ღირებულებების კითხვა და ანაზღაურება | VEML7700
ლუქსის ღირებულებების წაკითხვა და ანაზღაურება | VEML7700
ლუქსის ღირებულებების წაკითხვა და ანაზღაურება | VEML7700

Vishay VEML7700 Adafruit– ის მონაცემთა ცხრილის გადახედვისას მათი დაფისთვის, მე აღმოვაჩინე საკმაოდ შემაშფოთებელი ცნობა:

სენსორი მუშაობს მხოლოდ ხაზურად 0 -დან 1000Lux– მდე (!)

იხილეთ ეკრანის სურათი ნარინჯისფერი (ხაზოვანი) და ლურჯი (ფაქტობრივი სენსორის გამომავალი) ხაზით

მზის სინათლე (EV15) არის დაახლოებით 80.000 ლუქსი, რაც იმას ნიშნავს, რომ სენსორის არაწრფივი ნაწილის კომპენსაციის გარეშე ის სრულიად უსარგებლო იქნებოდა, როგორც სინათლის მრიცხველი.

ვიშაიმ იცის ეს, ამიტომ მათ თავიანთ მომხმარებლებს მიაწოდეს სხვა pdf სახელწოდებით VEML7700 დიზაინი აპლიკაციაში.

ამ 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 ლუქსი მაქსიმუმ მზის პირდაპირი სხივების დროსაც კი.

თუ გადახედავთ გრაფიკს წითელი და ლურჯი ხაზით, თქვენ ხედავთ რატომ: რადგან ის ვერ წავა უფრო მაღლა კომპენსაციის ფორმულის გარეშე.

მაგრამ კიდევ ერთი მინიშნება იმალება სენსორის დოკუმენტაციაში:

ეს კომპენსაციის ფორმულა მუშაობს მხოლოდ იმ შემთხვევაში, თუ თქვენ დააყენებთ სენსორს 25ms და მოგების კოეფიციენტი 1/8.

ეს საკმაოდ მარტივად გაკეთდა ადაფრუცის ბიბლიოთეკით, დამატებით:

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

თქვენს ბათილ კონფიგურაციაში ()

ასე რომ, მას შემდეგ, რაც დააყენებთ მას 1/8 და 25ms და ამატებთ კომპენსაციის ფორმულას, შეგიძლიათ გაზომოთ 120000 ლუქსი, რაც საკმარისია მზის შუქის დასაფარად 80-100k Lux– ზე

ნაბიჯი 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;

ლუქსიდან ელექტრომობილების მისაღებად გამოიყენეთ ეს ხაზი:

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

ბიტმაპების გადატანა

იმისათვის, რომ დარწმუნდეთ, რომ bitmaps გადაადგილდება მხოლოდ მაშინ, როდესაც მნიშვნელობები არის 160Lux– დან 655360Lux– მდე, როგორც ეს წინა საფეხურზე იყო ნათქვამი, გადაიტანეთ ის if პუნქტში, როგორიცაა:

თუ (LUX_CORR> 159 && LUX_CORR <655361)

შემდეგ ჩვენ უნდა დავხატოთ EV მნიშვნელობები კოორდინატებზე, რადგან EV– ების დიაპაზონი არის ორნიშნა რიცხვი და ჩვენ გვინდა მათი გადატანა ეკრანიდან 128 px– ზე მეტი მთელ ეკრანზე ჩვენ გვჭირდება უფრო დიდი მნიშვნელობები.

ვინაიდან ჩვენ უკვე მივიღეთ float ნომერი, ჩვენ უბრალოდ გავამრავლებთ მას 100 -ზე და ვიყენებთ ამ მთელ რიცხვს კოორდინატების გამოსახატად

int EV_DSPL = EV*100;

და:

TIME = რუკა (EV_DSPL, 600, 1900, -260, 39); APERTURE = რუკა (EV_DSPL, 600, 1900, 39, -260);

როგორც ხედავთ ჩემს შემთხვევაში ბიტმაპის მინიმალური პოზიცია იქნება -260px და მაქსიმალური იქნება 39px

ის, რაც აქაც ჩანს, არის ის, რომ მე გადავინაცვლე კოორდინატები ისე, რომ ორი ბიტმაპი გადაადგილდეს საპირისპირო მიმართულებით

შემდეგ ჩვენ უნდა გადავიტანოთ ბიტმაპები კოორდინატების მიხედვით:

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

და ეს არის ყველაფერი რაც გასაკეთებელია

როგორც ბონუსი, მე ვაჩვენებ პირდაპირ EV და Lux მნიშვნელობებს, როდესაც სენსორი გამოაქვს მნიშვნელობები 160Lux– ის ქვეშ, მხოლოდ იმიტომ, რომ მინდოდა ნივთების ნახვა მისი გამოცდისას.

ნაბიჯი 5: ერთად აწყობა

ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას
ერთად აყენებს მას

ორივე, ეკრანი და სენსორი იყენებენ I2C– ს კომუნიკაციისთვის, ფაქტობრივი აპარატურის შექმნა ისეთივე მარტივია, როგორც ეს შესაძლებელია.

უბრალოდ დააკავშირეთ მონაცემები, საათი და 3V ხაზები არდუინოსთან და თქვენ მზად ხართ წასასვლელად.

მე დავამატე გრაფიკა, თუ როგორ გავაკეთე ეს ზოლის დაფით, მაგრამ როგორც უკვე ითქვა თქვენ შეგიძლიათ გამოიყენოთ კაბელები ან თუნდაც ფრთები ააწყოთ, ეს ყველაფერი დამოკიდებულია რომელ კონტროლერსა და ეკრანზე იყენებთ.

ჩემს გრაფიკზე, თეთრი წერტილები უნდა იყოს დაკავშირებული ეკრანთან და სენსორთან, ხოლო ყვითელი წერტილები - წვრილმანთან.

ერთადერთი გამონაკლისი იქნება I2C ხაზის მონაცემთა პინი, რომელიც აკავშირებს ჩვენებას, ის ასევე უკავშირდება ტრინკეტსის მონაცემთა პინს.

მე ავირჩიე არ გამოვიყენო ჩართვა/გამორთვა, არამედ სამაგიდო ღილაკი და ორი 3V ღილაკიანი უჯრედი, რათა დროებით გავამძაფრო ის, რამდენადაც დააჭირეთ ღილაკს. ის ძალაში 1/10 წამის განმავლობაში, ასე რომ საკმაოდ სწრაფია ჩემთვის, რომ დავინახო ღილაკი და გავხადო პატარა.

გირჩევთ: