В статье о Canon PowerShot G9 я писал, что всем эта камера хороша, но нет у нее дистанционного управления. И еще, что проблему можно было бы решить с помощью CHDK. Но ОС камеры (DryOS) отличалась от большинства ОС других Canon, к которым к тому времени CHDK удалось применить. В форумах на chdk.wikia.com даже обсуждался вопрос сбора средств для квалифицированного программиста, чтобы он разобрался с этой DryOS. Подходящей CHDK ждать пришлось почти год. И сейчас Canon PowerShot G9 умеет значительно больше того, что позволяет ее стандартная прошивка. Причем, новые возможности можно добавлять самому, освоив не сложный язык написания скриптов, которые интерпретатор CHDK, загруженный в камеру, на лету превращает в команды для электроники и механики.Зачем
Что такое CHDK и как она может превратить скромную простую камеру в фотокомпьютер писал Владимир Родионов в статье о Canon Power Shot A650IS. Повторяться не буду, напишу лишь о некоторых особенностях текущей CHDK (хотя текущей она уже не является — новые сборки публикуются практически ежедневно) и ее работе с Canon PowerShot G9.
CHDK работает с карты, отформатированной под FAT 16. Отформатировать карту емкостью до 4 ГБ, если компьютер работает под Windows, можно с помощью стандартной процедуры из командной строки (задав команде «format» ключ «/fs:fat»):
(Существуют и другие способы, в том числе разбиения памяти SD на блоки, позволяющее использовать и более емкие карты.)
Текущие версии CHDK сделаны так, чтобы с ними мог справиться и фотограф, мало разбирающийся в тонкостях работы с прошивками. Все что нужно — загрузить с сайта архив с CHDK для камеры и разархивировать его прямо на карту памяти c FAT 16 (а не скопировать разархивированный на компьютере набор папок и файлов CHDK!).
Убедиться, что на карту скопированы нужные файлы и каталоги…
…вставить карту в камеру, включить ее в режиме просмотра снимков, найти пункт меню «обновление прошивки», подтвердить обновление, по окончании процесса вынуть карту из камеры и заблокировать запись (если CHDK надоест или ее нужно оперативно отключить — просто разблокируйте возможность записи на карту) — карта памяти и камера готовы к работе «по-новому»:
Обратите внимание, что при загрузке новой прошивки, на дисплей выводится информация о фирменной версии прошивки, в моем случае G9-100g. Если вы загружаете прошивку не той модификации (100g вместо 100F, 100D, 100H…) могут быть проблемы. Нужно быть внимательным. Остановитесь на этом этапе и скачайте соответствующую CHDK. Впрочем, в дистрибутиве CHDK есть утилитка и для прямого определения версии прошивки камеры vers.req, что лучше сделать прежде других операций.
После установки CHDK камерой можно управлять с помощью пульта дистанционного управления. Так как ради этой функции мне и нужна была CHDK, то начну описание с нее. Для управления камерой потребуется внешний источник питания с USB интерфейсом. Особенность Canon PowerShot G9 в том, что камера не запускается от 3 вольтовой литиевой батарейки-таблетки, как многие другие камеры (я не проверял, поверил информации с сайта CHDK). Пульт можно сделать из любого стандартного источника для зарядки устройств через USB (5В). Я использовал контейнер под 4 аккумулятора АА (фотография в начале статьи). Он оснащен включателем, который можно использовать, как спусковую кнопку. Лучше, кроме включателя, добавить еще две параллельные нажимные кнопки с фиксацией и без.
Пульт может запускать камеру из двух режимов работы — без загруженного и запущенного скрипта и с ним. Первый случай самый простой и не требует никаких особенных настроек, кроме включения режима пульта из раздела CHDK «разное» — «параметры удаленного пульта»:
Если этого не сделать, пульт при подаче напряжения будет просто включать камеру в режим просмотра последнего сделанного снимка. Если пульт включен, то камера будет реагировать на него следующим образом: подача напряжения — «полунажатие спусковой кнопки» (замер экспозиции и автофокусировка). Чтобы сделать снимок, нужно подать второй сигнал «выключение-включение». Поэтому удобно пользоваться пультом, оснащенным нажимной кнопкой без фиксации. Тогда быстрое двукратное нажатие приведет к съемке без точной автофокусировки, а более медленное к нормальному режиму, эквивалентному привычному «полунажатию-нажатию» спусковой кнопки.
Можно заставить пульт работать и в другом режиме. Если в разделе «разное» (или «скрипты») — «параметры удаленного пульта» включить две верхние опции пульта в подменю «синхронизуемый удал. пульт» («Вкл. удал. пульт» и «Вкл синхронизацию»), то при подаче напряжения, камера будет фокусироваться и делать снимок либо при снятии напряжения, либо автоматически через 10 с (примерно). Задержка в 10 с в текущей версии CHDK работает всегда, если включена опция «Вкл удал. пульт» и «Вкл синхронизации». Если задержка не нужна (она просто может мешать работать), то эти пункты нужно заранее отключать.
Второй случай — когда нужно с помощью пульта запустить скрипт.
В верхнем блоке можно включить опции «Сохранение параметров» для того, чтобы при следующем запуске не настраивать параметры скрипта снова. А так же назначать цифровой индекс текущим наборам настроек («Набор параметров») активного скрипта для последующей быстрой загрузки требуемых параметров.
Как видно из приведенной иллюстрации, раздел «Параметры удаленного пульта» есть и в подменю «Скрипты». К сожалению, заставить срабатывать любой скрипт с помощью пульта, а не по нажатию на кнопку спуск (стандартный способ включения скрипта), мне с текущей прошивкой CHDK не удалось. Поэтому была использована возможность дописать в любой скрипт блок запуска скрипта по команде пульта. К примеру, для запуска серийной съемки через заданный интервал времени распространенный скрипт Simple_Remote.bas (описания и ссылки скриптов приведены на сайте CHDK Wiki) был модифицирован так:
Скрипт после подачи напряжения на USB порт камеры начинает снимать последовательность с заданным интервалом в секундах, десятых секунды и минутах, при этом отображая на дисплее количество сделанных снимков. Если напряжение с USB пульта снять, съемка временно приостанавливается. Для включения/выключения скрипта используется стандартная процедура — запуска/остановки скрипта — нажатие на кнопку спуск на камере. Чтобы воспользоваться скриптом файл нужно перенести в папку скриптов раздела CHDK на карте памяти.
При работе многих скриптов полезно отключить функцию автоматического просмотра сделанного снимка и экономии электроэнергии.
С помощью скриптов можно реализовать довольно умные функции, к примеру, автоматической съемки при изменении яркости в пространстве, на которое нацелена камера, или по «движению» в этом пространстве. Вот пример настроек и вид дисплея камеры при загрузке скрипта MotionDetection1.bas:
Стандартная функция CHDK — отображение глубины резкости, а так же ближней и дальней границы резко отображаемого пространства для текущей дистанции фокусировки и текущих настроек камеры. Как уже не раз отмечалось в статьях, посвященных глубине резкости (Программа расчета глубины резкости, Из жизни пчел, или о макросъемке на природе и глубине резкости, Общий FAQ по цифровой фотографии), при всех вычислениях важно понимать, какова величина кружка нерезкости, то есть из каких соображений исходят, рассчитывая ГРИП. Оптика 35 мм камер, как правило, рассчитывалась и маркировалась, исходя из предположения просмотра отпечатков стандартных размеров, примерно, 10×15 см. В случае цифровой камеры кружок нерезкости так же можно вычислять, ориентируясь на альбомный отпечаток. Но если нужно максимально увеличить изображение, что соответствует 100% масштабу просмотра на дисплее, то следует опираться на реальное разрешение цифровой камеры. Кружок нерезкости в этом случае — расстояние между проекциями центров двух еще различимых на изображении штрихов, разделенных промежутком. Его не сложно оценить по снимку миры — зная шаг матрицы перевести разрешение в пикселях на штрих в реальное разрешение. Для камеры Canon PowerShot G9 можно, опираясь на информацию о ГРИП CHDK, определить критерий (кружок нерезкости), который в CHDK используется.
Гиперфокальное расстояние (H) через фокусное расстояние (f), диафрагменное число (k) и размер кружка нерезкости (d) вычисляется так:
H = f*f / (k*d)
В приведенной далее таблице для двух фокусных расстояний и гиперфокальных расстояний, сообщаемых CHDK, подсчитан кружок нерезкости d. Так же приведены шаг матрицы камеры Canon PowerShot G9 и отношение кружка нерезкости к шагу матрицы — эквивалент разрешения в пикселях на штрих.
f, мм | 7,4 | 19,37 |
k | 4 | 3,5 |
H, м | 2,73 | 20,4 |
d, мкм | 5,01 | 5,25 |
s, мкм | 1,9 | 1,9 |
d/s | 2,6 | 2,8 |
Таким образом, разработчики CHDK заложили в него для камеры Canon PowerShot G9 разрешение примерно 2,5-3 пикселя на «фотографический» штрих между центрами двух различимых черных штрихов — 2,5-3 пикселя). (Такая же величина была выбрана для оценки глубины резкости в статье О пейзажной фотографии, глубине резкости, реальном разрешении и камерах разных размеров. Интересующиеся могут из нее узнать, почему это так.)
CHDK существенно расширяет возможности камеры, в том числе, и не фотографические. Камера получает функции КПК с интерпретатором модификации бэйсика. Он (КПК) может анализировать состояние камеры и отображать показатели, снимаемые с разных ее датчиков. К примеру, можно довольно точно отслеживать состояние батарей, а так же температуру матрицы и оптики (в последнем случае камера отображает просто температуру окружающей среды). На досуге можно читать книжки или разбираться с кодом скриптов:
Или запускать совсем уж бытовые функции, к примеру, таймер для варения яиц: