Использование программируемого микрокалькулятора CITIZEN
для расчёта глубины резкости.
В своём творчестве фотографы часто используют вещи, которые
никакого отношения к фотографии, казалось бы, не имеют. Причём часто встречаются
очень оригинальные решения. Предлагаю использовать калькулятор как дополнение
к механическому фотоаппарату, не обременённому излишней электроникой.
|
|
Приведённые ниже программы писались и тестировались на ПМК CITIZEN
srp-175. Он дает возможность ввести четыре программы с общим числом шагов – 128.
|
|
|
|
На сайте
Citizen я нашёл информацию ещё о двух программируемых
моделях: srp-45N и srp-145T. У них одно поле программы и всего 40 шагов памяти.
|
1. Расчёт ближнего и дальнего расстояний (58 шагов памяти).
Входные данные:
|
Выходные данные:
|
фокусное расстояние (м);
значение диафрагмы;
расстояние по шкале.
|
ближнее расстояние;
дальнее расстояние;
гиперфокальное расстояние.
|
01..15 [x]
STO 1 [x] STO 2 1/X * 1 7 2 0 * RCL 0
16..29 =
STO 3 * RCL 1 / ( RCL 3 - RCL 1 +
30..44 RCL
0 ) = STO 4 RCL 3 * RCL 1 / ( RCL 3
45..58 +
RCL 1 - RCL 0 ) = a RCL 4 b R® P P® R
Перед первым запуском программы, а также после каждой смены объектива
фокусное расстояние (м) заносится в регистр памяти 0. Например: 0
. 1 3 5 STO 0
После запуска программы (у меня RUN
9):
- на запрос -001-
вводить расстояние по шкале, например, 7;
- RUN;
- на запрос -002-
ставить значение диафрагмы, например, 5.6;
- RUN;
на экране получаем ближайшее расстояние 6.005675351
(занесено в переменную a),
нажимаем b
- читаем 8.388901505.
Теперь можно, нажимая a
и b, смотреть соответственно
ближнее и дальнее расстояния.
Гиперфокальное расстояние лежит в ячейке памяти 3: RCL
3 ® 41.46428571.
Для дальнейших вычислений повторить абзац сначала.
- Расчёт расстояния по шкале и значения диафрагмы (49 шагов памяти).
Входные данные:
|
Выходные данные:
|
фокусное расстояние (м);
ближнее расстояние;
дальнее расстояние.
|
значение диафрагмы;
расстояние по шкале.
|
01..10 2 * [x] STO 1 *
[x] STO 2 / ( RCL 1 +
15..30 RCL
2 ) = STO 3 - RCL 1 = * 1 7 2 0 /
31..43 RCL
1 / ( RCL 3 / RCL 0 - 1 ) =
44..49 b
RCL 3 a R® P P® R
Перед первым запуском программы, а также после каждой смены объектива
фокусное расстояние (м) заносится в регистр памяти 0. Например, 0
. 0 5 0 STO 0
После запуска программы (у меня RUN
6)
- на запрос -001-
вводить ближнее расстояние, например, 5;
- RUN;
- на запрос -002-
ставить дальнее расстояние, например, 10;
- RUN;
на экране получаем расстояние по шкале 6.666666667
(занесено в переменную a),
нажимаем b
- читаем 4.332493703 (значение
диафрагмы).
Теперь можно, нажимая a
и b, смотреть эти значения
поочерёдно.
Для дальнейших вычислений повторить абзац сначала.
Для вычислений использовались формулы:
- G = 1720 * f / d
- m1 = G * m / ( G + ( m – f ) )
- m2 = G * m / ( G – ( m – f ) )
- m = 2 * m1 * m2 / ( m1 + m2 )
- d = 1720 * ( m – m1 ) / m1 / ( m / f – 1 )
(последние две формулы выведены из первых трёх)
G – гиперфокальное расстояние;
m1 – ближнее расстояние;
m2 – дальнее расстояние;
f – фокусное расстояние объектива;
d – значение диафрагмы.
Из-за очень малого объёма памяти и неразвитой системы условных
переходов, в программах отсутствует любая проверка корректности данных. Полученное
отрицательное значение m2 означает бесконечность.
Несколько рекомендаций:
- после входа в режим программирования (на дисплее lrn) стоит
очистить память – INV ON;
- при наборе программ после команды [x]
необходимо подставить значения переменных;
- если во второй программе нужно ввести m2 = бесконечность, вводите
очень большое число, например, EXP 99
(1*1099);
- чтобы уменьшить формат выводимых значений, например, до трёх
знаков после запятой, введите команду TAB
3; возврат в обычное состояние калькулятора – TAB
. (точка).
И последнее. Если после прочтения у Вас возникнет неудержимое
желание забросать меня гневными письмами, прошу учесть два обстоятельства:
- фотограф из меня пока ещё хуже, чем программист;
- а программист я просто никакой.
Пишите – ivans@km.ru
С уважением. Иван Савоченко.