Агуулгын хүснэгт:

DIY гэрэл зургийн гэрэл хэмжигч: 5 алхам
DIY гэрэл зургийн гэрэл хэмжигч: 5 алхам

Видео: DIY гэрэл зургийн гэрэл хэмжигч: 5 алхам

Видео: DIY гэрэл зургийн гэрэл хэмжигч: 5 алхам
Видео: Камер-ГЭРЭГЧ нь хүнийг хянах, таних. 2024, Долдугаар сарын
Anonim
DIY гэрэл зургийн гэрэл хэмжигч
DIY гэрэл зургийн гэрэл хэмжигч
DIY гэрэл зургийн гэрэл хэмжигч
DIY гэрэл зургийн гэрэл хэмжигч

Энэхүү зааварчилгаа нь энгийн жижиг, хямд ослын гэрлийн тоолуур бүтээх талаархи зарим санааг хуваалцдаг.

Instructables нь надад өөрийн видеог оруулахыг зөвшөөрдөггүй тул энэ линкээр ороод үзээрэй.

www.youtube.com/embed/avQD10fd52s

Миний зорилго бол дунд зэргийн форматтай Bronica ETRSi хальсны камерыг дагалдах гэрэл метр байв.

Миний хийхийг хүсч буй зүйлүүд:

  • ганц ASA (100), учир нь би бараг л ASA 100 хальс ашигладаг
  • аль болох бага
  • зөвхөн надад Броникагийн хуулбарлаж болох хослолыг өг, энэ нь f2.8-f22 ба 1sec-ээс 1/500 сек хүртэл гэсэн үг юм.
  • энгийн цаг, диафрагмын утгуудаас бусад утгагүй шинж чанарууд байхгүй

Миний ашигласан зүйлс:

  • Adafruit (Vishay) VEML 7700 дижитал люкс метр (ойролцоогоор 5 доллар)
  • Adafruit Trinket M0 микро хянагч (ойролцоогоор 9 доллар)
  • 128x32 OLED дэлгэц (ойролцоогоор 10 доллар)
  • түр асаах товчлуур (хэдэн цент)
  • Туузан хавтангийн жижиг хэсэг, учир нь би кабель ашиглахгүй байхыг хичээдэг ч та кабелийг ашиглаж болно

Алхам 1: Үндсэн тооцоо | EV руу Lux

Үндсэн тооцоо | EV руу Lux
Үндсэн тооцоо | EV руу Lux
Үндсэн тооцоо | EV руу Lux
Үндсэн тооцоо | EV руу Lux

Миний худалдаж авсан мэдрэгч нь үүнийг шийдэх боломжийг олгодог хоёр онцлог шинж чанарыг ашигладаг.

  • "Хэмжээгүй" гэрлийн утгын оронд 16 битийн люкс утгыг гаргадаг
  • утгыг I2C -ээр гаргадаг

Гэрэл зургийн тоолуур нь миний худалдаж авсан мэдрэгч нь Lux хэмжигдэхүүнийг ашигладаг бөгөөд энэ нь огт өөр хэмжигдэхүүн юм. Тиймээс эхний алхам бол мэдрэгчээр хангагдсан Lux автомашинаас EV авах явдал юм.

Википедиа дээр товчхон харвал та ослыг хэмжих томъёог олж, EV -ийг Люкс болгон хөрвүүлэх боломжтой.

E = 2.5 * 2^EV

энд Е -г Люксээр хэмждэг.

Бид аль хэдийн Lux-ийн утгыг мэдрэгчээс авсан бөгөөд EV-ийн утгыг хүсч байгаа тул бид томъёог дахин бүрдүүлэх шаардлагатай болно.

EV = log2 (E/2.5)

Энэ бол гэрэл хэмжигчээс гэрэл зургийн утгыг авахын тулд хийх ёстой анхны тооцоо юм.

Хавсаргасан хайлтын хүснэгтэд энэхүү гэрэлтүүлгийн тоолуурт ашиглагдах бүх утгыг Lux болон EV -ийн дагуу харах боломжтой.

Алхам 2: Дэлгэц дээр үнэ цэнийг танилцуулах | Adafruit GFX номын сан

Үнэт зүйлсийг дэлгэц дээр толилуулж байна Adafruit GFX номын сан
Үнэт зүйлсийг дэлгэц дээр толилуулж байна Adafruit GFX номын сан
Үнэт зүйлсийг дэлгэц дээр танилцуулах | Adafruit GFX номын сан
Үнэт зүйлсийг дэлгэц дээр танилцуулах | Adafruit GFX номын сан
Үнэт зүйлсийг дэлгэц дээр толилуулж байна Adafruit GFX номын сан
Үнэт зүйлсийг дэлгэц дээр толилуулж байна Adafruit GFX номын сан

Би эхлээд утгыг бүхэлд нь үе шаттайгаар танилцуулахыг оролдсон, учир нь энэ бол миний Броникаг тохируулж чадах зүйл боловч энэ нь намайг асуудалд хүргэж байна.

Lux мэдрэгч нь яг 20480 гэсэн утгыг гаргадаг гэж үзье, энэ нь яг EV 13 гэсэн утгатай болно, тиймээс би жишээ нь камераа f4, 1/500 секундэд тохируулж, явахад тохиромжтой байх болно

Дараа нь Lux мэдрэгч нь EV13 -ийн дор 20479 Lux, 1 Lux гаргадаг бөгөөд энэ нь EV -ийн 12 утгыг гаргадаг гэж бодъё, гэхдээ энэ нь EV13 -аас ердөө л Lux юм

Тиймээс би камераа f2.8 ба 1/500 -д тохируулах бөгөөд энэ нь EV13 -тэй хэр ойрхон байгаагаа ч мэдэлгүйгээр 1 зогсолтыг хэтрүүлэх болно.

Дүгнэлт: тоолуур нь дараагийн эсвэл өмнөх EV алхамаас хэр хол эсвэл ойрхон байгааг харахын тулд бидэнд утгын аналог дэлгэц хэрэгтэй болно.

GFX номын сангийн барьсан үсэг, фонтыг ашиглахыг оролдсоны дараа би OLED дэлгэцээр дамжих хоёр тусгай график ашиглахаар шийдсэн.

Нэг нь диафрагмын утгын хувьд, нөгөө нь цаг хугацааны хувьд.

GFX номын сан нь график танилцуулахдаа 8 битийн утгыг ашигладаг тул би xls хуудас хийсэн (дээрх зургийг үзнэ үү).

  • утга бүр нэг утгад яг ижил хэмжээтэй пикселтэй байдаг
  • цаг ба диафрагмууд нь нэг мөрөнд яг ижил хэмжээтэй утгатай байна
  • Би байт бүрийн эхэнд шаардлагатай "B", төгсгөлд нь "," гэж нэмсэн
  • Дараа нь би үүнийг энгийн текст болон voila руу экспортлов: би гурав дахь графикийг хавсаргав

Цагны утга 1/8 секундын дараа, диафрагмын утга f2.8 -аар эхэлдэг

Өмнөх алхамуудын хайлтын хүснэгтийг ашигласнаар энэ нь 160 Lux эсвэл EV6 гэсэн утгатай болохыг бид мэднэ.

Дараа нь хамгийн харанхуй утга нь f22 ба 1/500 дахь секунд байх болно

Дахин хайх хүснэгтээс харахад энэ нь 655360 Lux эсвэл EV18 гэсэн үг болохыг бид харж байна

Одоогоор маш сайн.

Тиймээс EV6 дээр диафрагмын график нь зүүн талд, баруун талд, харин EV18 дээр байх ёстой.

Алхам 3: Тансаг үнэт зүйлсийг уншиж, нөхөх | VEML700

Тансаг үнэт зүйлсийг уншиж, нөхөх | VEML700
Тансаг үнэт зүйлсийг уншиж, нөхөх | VEML700
Тансаг үнэт зүйлсийг уншиж, нөхөх | VEML700
Тансаг үнэт зүйлсийг уншиж, нөхөх | VEML700

Vishay VEML7700 Adafruit -ийн мэдээллийн хуудсыг самбар дээрээ гүйлгэж байхдаа би сэтгэл түгшээсэн мэдэгдэл олж харлаа.

Мэдрэгч нь зөвхөн 0 -ээс 1000Lux (!) Хооронд шугаман ажилладаг

улбар шар (шугаман) болон цэнхэр (мэдрэгчийн бодит гаралт) шугам бүхий дэлгэцийн агшинг үзнэ үү

Нарны гэрэл (EV15) нь ойролцоогоор 80.000 люкс байдаг бөгөөд энэ нь мэдрэгчийн шугаман бус хэсгийг нөхөхгүйгээр гэрлийн тоолуурын хувьд ашиггүй болно гэсэн үг юм.

Вишай үүнийг мэддэг тул үйлчлүүлэгчиддээ VEML7700 -ийг програм болгон бүтээх нэртэй өөр pdf файлыг өгсөн.

Энэхүү 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 люкс гаргадаг юм бол гэж гайхаж байлаа.

Хэрэв та улаан, цэнхэр шугамтай графикийг харвал яагаад: учир нь энэ нь нөхөн олговрын томъёогүйгээр дээшлэх боломжгүй юм.

Гэхдээ мэдрэгчийн баримт бичигт өөр нэг зөвлөмж нуугдсан байдаг.

Энэхүү нөхөн олговрын томъёо нь мэдрэгчийг 25 мс, ашгийн харьцааг 1/8 болгож тохируулсан тохиолдолд л ажилладаг.

Adafruits номын сангийн тусламжтайгаар үүнийг хялбархан хийж болно:

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

таны хоосон тохиргоонд ()

Үүнийг 1/8 ба 25 мс болгож тохируулсны дараа нөхөн олговрын томъёог оруулсны дараа нарны гэрлийг 80-100 к люксээр бүрхэх 120000 люкс хүртэл хэмжих боломжтой

Алхам 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;

Lux -аас EV авахын тулд энэ мөрийг ашиглана уу.

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

bitmaps -ийг хөдөлгөж байна

Өмнөх алхамд дурдсанчлан 160Lux болон 655360Lux -ийн хооронд байх үед л bitmap -ууд хөдөлдөг эсэхийг шалгахын тулд үүнийг дараах өгүүлбэрт ороосон байна.

хэрэв (LUX_CORR> 159 && LUX_CORR <655361)

Дараа нь бид EV -ийн утгыг координатаар зурах хэрэгтэй, учир нь EV -ийн хүрээ нь хоёр оронтой тоонууд бөгөөд тэдгээрийг дэлгэцээс 128 пикселээс дээш дэлгэцэн дээр шилжүүлэхийг хүсч байгаа тул бидэнд илүү том утгууд хэрэгтэй болно.

Бид аль хэдийн хөвөх дугаар авсан тул бид үүнийг 100 -аар үржүүлж, бүхэл тоог ашиглан координатыг зурна

int EV_DSPL = EV*100;

ба:

TIME = газрын зураг (EV_DSPL, 600, 1900, -260, 39); APERTURE = газрын зураг (EV_DSPL, 600, 1900, 39, -260);

Миний харж байгаагаар битийн зургийн хамгийн бага байрлал нь -260px, хамгийн их нь 39 пиксел байх болно.

Энд бас харагдаж байгаа зүйл бол би хоёр координатыг эсрэг чиглэлд шилжүүлэхийн тулд координатаа сольсон явдал юм

Дараа нь бид bitmap -ийг координатын дагуу шилжүүлэх хэрэгтэй.

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

Тэгээд үүнийг л хийх хэрэгтэй

Урамшууллын хувьд мэдрэгч нь 160Lux -аас доош утгыг гаргах үед би EV болон Lux -ийн шууд утгыг харуулдаг.

Алхам 5: Үүнийг нэгтгэх

Үүнийг хамтад нь оруулах
Үүнийг хамтад нь оруулах
Үүнийг хамтад нь оруулах
Үүнийг хамтад нь оруулах

Дэлгэц болон мэдрэгч хоёулаа I2C -ийг ашиглан харилцдаг тул бодит тоног төхөөрөмжийг бүтээх нь аль болох энгийн зүйл юм.

Өгөгдөл, Цагийн газардуулга, 3V шугамыг Arduino -тэй холбоход л хангалттай.

Би үүнийг самбар дээр хэрхэн яаж хийснээ графикаар нэмсэн боловч өмнө нь хэлсэнчлэн та кабель ашиглаж эсвэл бүр далавч барьж болно, энэ нь таны аль хянагч, дэлгэц ашиглаж байгаагаас хамаарна.

Миний график дээр цагаан цэгүүд нь дэлгэц, мэдрэгчтэй, шар цэгүүд нь Trinket -тэй холбогдсон байх ёстой.

Цорын ганц үл хамаарах зүйл бол дэлгэцтэй холбогддог I2C шугамын өгөгдлийн зүү бөгөөд энэ зүү нь Trinkets өгөгдлийн зүүтэй холбогддог.

Би асаах/унтраах унтраалгыг ашиглахгүй харин товчлуур болон 3V товчлуурын хоёр эсийг ашиглан товчлуурыг дарсан л бол асаах болно. Энэ нь 1/10 секундын дотор ажилладаг тул товчлуурыг нөөцөлж жижигрүүлэхэд хангалттай хурдан юм.

Зөвлөмж болгож буй: