Дистанційне керування фотоапаратом через USB

  у розділі Технічні теми 

Більшість фотоапаратів, від професійних, до звичайних "мильничок" мають USB-порти.

USB-підключення можна використовувати не лише для переписування фото на комп’ютер, але й для керування фотокамерою?

Для наочності, демонструю роботу зі своїм фотоапаратом4 :) :

Для цього потрібно щоб фотоапарат підтримував протокол PTP1.

Практичне застосування

Важливо, що за допомогою PTP можна не просто подавати команду зробити фото, але й вказати параметри зйомки, а також зберегти фотографію відразу на комп’ютер (важливо для старих камер, з малим об’ємом пам’яті).

Варіантів є багато. Різного ступеню безтолковості. ;)

Наприклад: автоматизація рутинних зйомок (робота "паспортних столів" тощо), системи фотофінішу2, охоронні сигналізації, дослідницька та наукова робота.

Десь читав що люди використовують цю функцію для створення HDR-фотографії. Комп’ютер "робить" декілька фотографій з різними експозиціями, та ще й відразу об’єднує їх в одну, HDR.

Сповільнена зйомка ("time laps")

Дуже цікавий жанр відеозйомки/фотографії. Для створення фільму використовуюється набір фотокадрів, змонтовані у відеоролик. Фото робляться з певним інтервалом (секунди). Таким чином час масштабується — процеси що протікають декілька годин, днів, ми продивляємося за декілька хвилин.

герань

Деякі фотоапарати (майже усі професійні Nikon, деякі Canon) мають вже вбудовані функції знимкування по-таймеру, з заданим інтервалом.

Також можна придбати спеціальні фототаймери (провідні або безпровідні):

remote-control-timer

А маючи під руками ноутбук (нетбук) можна використовувати для керування фотоапаратом і його.

Є багато програм під Windows, Mac OS. І навіть для мобільних платформ (використовується камера телефону). Деякі виробники постачають такі програми в комплекті зі своїми фотоапаратами.

Керування фотоапаратом на Linux

Під Linux існує чудова консольна програма gPhoto25.

В Ubuntu, встановлюється командою:

sudo apt-get install gphoto2

Побачити перелік камер в системі:

gphoto2 --auto-detect
gphoto2 --list-ports

Перевірити чим саме може керувати комп’ютер:

gphoto2 --list-config

/main/camera/iso
/main/camera/shutterspeed
/main/camera/zoom
/main/camera/aperture
/main/camera/resolution
/main/camera/focusmode
/main/camera/flashmode
/Main/camera/beep

Зробити фото:

gphoto2 --capture-image

"Time laps" за допомогою gPhoto

Суто для академічного інтересу я спробував застосувати ці теоретичні знання. :)

Комп’ютер підключено3, через USB до камери (Nikon D50).

Виставляємо потрібні параметри зйомки на фотоапараті і:

gphoto2 --capture-image-and-download -I 10 -F 1200 --filename "%Y%m%d%H%M%S.jpg"

--capture-image-and-download — зробити фото і завантажити його, без зберігання на фотоапараті.

-I 10 — інтервал між фото 10 секунд.

-F 1200 — зробити 1200 кадрів всього.

--filename "%Y%m%d%H%M%S.jpg" — називати файл по-своєму, використовуючи дату в назві.

Створюємо відеоролик з отриманих фото:

#sudo apt-get install mencoder 
ls -1 > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2000 -o test.avi -mf type=jpeg:fps=15 mf://@files.txt

ls -1 — створюємо файл зі списком фоток.

fps=15 — кадрів на секунду. Кожне фото це кадр відео.

Вирішив зняти схід сонця. Знімав з закритим вікном, бо відкрите попадало б в кадр. Вночі, встановив камеру і спрямував її на Схід. Але осіннє сонце мене обхитрувало — зійшовши не піднялося в небо, а поволі, низько, рухалося горизонтом. Тому в кадрі так і не з’явилося. Соромилося. :)

Зранку, директорія в якій запускалася програма забита фотографіями. Зробилося їх не 1200, а лише 580. Виявляється не витримала батарейка в камері. Підозрюю, що в режимі PTP камера ніколи не засинає, тому споживає електрики більше ніж зазвичай.

Тобто відео не вдалося. Хіба що, на початку, видно як рухаються зорі (в лівому верхньому кутику).

Але gPhoto спрацювало чудово, без збоїв.

Вийшло ось таке (доступно у HD):


  1. У деяких фотоапаратах навіть в налаштуваннях можна вибрати тип підключення через USB: mass storage (флешка), PTP. 

  2. Справжні системи фотофінішу використовують щілинну фотозйомку

  3. Система спробувала підключити камеру для переписування фото, і заважала gPhoto (пристрій зайнято). Тому я знайшов і вбив процес (lsof | grep usb), який утримував керування USB і вбив його. 

  4. Мій старенький Canon Ixus SII теж керувався без проблем. 

  5. Перед використанням gPhoto дізнайтеся чи підтримується Ваша камера. 


Коментарі