Управление зеркальной камерой с Виртурилки

Зеркальная камера (Canon 60D) подключена по USB к Виртурилке. В админку Виртурилки добавил модуль "Фотокамера", через который стало доступно управление фотиком. Можно смотреть фотки на карточке фотоаппарата, снимать новые кадры, устанавливать любые параметры (ISO, диафрагма, выдержка и т.д.). Сейчас в админке пока только ISO устанавливается, остальные параметры буду потихоньку добавлять.

Самое главное - всё дистанционно. Т.е. виртурилка по вайфаю коннектится к домашней сети. С планшета (или телефона, да хоть с обычного компа) можно делать фотки. Видео с видоискателя тоже доступно в режиме предварительного захвата (есть там такой), пишется файл movie.mjpg, который можно просматривать. У меня вообще-то просмотрщик на флэше сделан был, но из-за того что на айпаде и в последних андроидах флэш убили, придётся переделывать на HTML5.


 

Всю работу по взаимодействию с фотоаппаратом выполняет известный пакет GPhoto.

Такой функционал, конечно, можно и на Raspberry Pi реализовать, но есть нюанс. При подвижной камере (а я хочу моторизированую панорамную головку сделать да и просто управляемый подвес камеры) надо видеть что снимать собираешься, т.е. нужен "удалённый видоискатель". MJPEG тут не очень прокатывает, ибо шибко разрешение большое (1080p), канал загибается. Так что самый клёвый вариант - подключить линейный видеовыход на аналоговый вход виртурилки. И вуаля - получаем картинку с видоискателя в любом требуемом кодеке. Можем камеру крутить-вертеть на сервами как хочется и видеть куда она в данный момент направлена. Если всё ок - делаем фото, если не очень ок - регулируем параметры. Ну или крутим дальше.

Кстати, вот какие умения камеры GPhoto показывает:

# gphoto2 --abilities
Abilities for camera : Canon EOS 60D
Serial port support : no
USB support : yes
Capture choices :
: Image
: Preview
Configuration support : yes
Delete selected files on camera : yes
Delete all files on camera : no
File preview (thumbnail) support : yes
File upload support : yes[/code]

# gphoto2 --list-config
/main/actions/uilock
/main/actions/syncdatetime
/main/actions/autofocusdrive
/main/actions/manualfocusdrive
/main/actions/eoszoom
/main/actions/eoszoomposition
/main/actions/eosviewfinder
/main/actions/eosremoterelease
/main/settings/datetime
/main/settings/reviewtime
/main/settings/output
/main/settings/movierecord
/main/settings/evfmode
/main/settings/ownername
/main/settings/artist
/main/settings/copyright
/main/settings/customfuncex
/main/settings/capturetarget
/main/settings/capture
/main/status/model
/main/status/ptpversion
/main/status/batterylevel
/main/status/lensname
/main/status/serialnumber
/main/status/shuttercounter
/main/status/availableshots
/main/imgsettings/imageformat
/main/imgsettings/imageformatsd
/main/imgsettings/iso
/main/imgsettings/whitebalance
/main/imgsettings/whitebalanceadjusta
/main/imgsettings/whitebalanceadjustb
/main/imgsettings/whitebalancexa
/main/imgsettings/whitebalancexb
/main/imgsettings/colorspace
/main/capturesettings/exposurecompensation
/main/capturesettings/focusmode
/main/capturesettings/autoexposuremode
/main/capturesettings/drivemode
/main/capturesettings/picturestyle
/main/capturesettings/aperture
/main/capturesettings/meteringmode
/main/capturesettings/bracketmode
/main/capturesettings/aeb
/main/other/d402
/main/other/d407
/main/other/d406
/main/other/d303
/main/other/5001