いちおう動きますが問題があります.

  • rootじゃないと起動できません
  • 二度目の起動の前にカメラの電源をoff/onしないと,startした後で止まります.

ということでまだ未完のページです.

Debian 3.1だとこのような問題なく動きました.CaptureOnDebianを見てください.

Ubuntuだと(新しいDebianベースにもかかわらず)うまく動きました.CaptureOnUbuntuを見てください.

Linux (Debian 4.0R1 ) で, capture を使って,デジカメをUSB経由で制御する

Debian 4.0r1 に captureをインストールして キヤノンなどのデジカメをUSB経由でコントロールした. 超高解像度の定点カメラなどが作れる.

$ capture
capture> start
capture> macro on
capture> capture cat.jpg

とか

$ capture start
$ capture 'macro on'
$ capture 'capture cat.jpg'

のような手順で写真が撮れる.

captureで制御できるカメラは, 画像転送プロトコルの標準規格PTP (Picture Transfer Protocol: ISO 15704) というのに対応したカメラである. (さらにその中でもカメラをコントロールする拡張機能をサポートしている機種) キヤノンのすこし古いデジカメが多く対応していて, Cameras4Captureなどが制御できるらしい. 最近のカメラはサポートされていないらしいが,安い機種なら 中古で1万円未満で買えるし,解像度も十分だと思われる.

apt-get installで開発環境を整える

最小限の構成でインストールする. その後,apt-get update, apt-get upgradeで最新にして, つぎに以下をapt-get installで追加した.

  • ssh(あれば便利)
  • sudo(あれば便利)
    • visudoでsudoできるようにしておく
  • gcc
  • g++
  • make
  • pkg-config
  • libreadline5 (あれば便利,たぶんすでに入っている)
  • libreadline5-dev (あれば便利)

libusbを入れておく

  • apt-get install libusb-0.1-4 でもインストールできる. が,いろいろ不具合があった. もしかしたら古いのかもしれない(0.1.8以上が必要らしい)
  • そこで,http://sourceforge.net/projects/libusb/ から最新版をダウンロード.
    • ./configure→make→sudo make install
  • libusbはusbdevfsとかusbfsと呼ばれる仮想ファイルを使用する.そこで,/proc/bus/usbをマウントする. 毎回マウントするのは面倒なので,/etc/fstabに以下を追加する.
    • none /proc/bus/usb usbfs defaults 0 0
  • ただしこれだとrootのみアクセス可能.代わりに以下を追加すると誰でも読み書き可能になる
    • none /proc/bus/usb usbfs devmode=0666 0 0
  • 詳しくは /usr/share/doc/libusb-0.1-4/README.Debian

libptpを入れる

captureをインストール

  • http://sourceforge.net/projects/capture からダウンロード.
  • gtkは使わないつもりなのでMakefileのHAVE_GTK = -DHAVE_GTKをコメントアウトする
  • libreadlineを使わないなら,MakefileのAVE_READLINE = -DHAVE_READLINEもコメントアウトする
  • make→sudo make install

ライブラリを指定する

このまま動かすとlibptp2.soが見つからないというエラーが出る.そこで

export LD_LIBRARY_PATH=/usr/local/lib

として指定しておく. ちなみにこの変更を恒久的に設定するには, ~/.bashrc_profileに書くか,/etc/profile(すべてのユーザの場合)に書く.(by 秋田先生)

写真を撮るスクリプト例

秋田先生の定点カメラのサンプル http://akita11.jp/plan/usl5p-cam.html によると,こんなスクリプトで撮影できるようだ.

#! /bin/sh
export LD_LIBRARY_PATH=/usr/local/lib

/bin/capture 'quit' #これはおまじない?
sleep 1 #これはおまじない?
/bin/capture 'start'
/bin/capture 'flash auto'
FILENAME=`/bin/date +%Y_%m_%d_%H%M`.jpg
/bin/capture "capture $FILENAME"
/bin/capture 'quit'
#これに続く行でFILENAMEを移動や加工すれば良い

関連ページ

  • 秋田先生がUSL-5Pにcaptureをインストールした様子(参考にさせていただきました)
  • 玄箱HGに capture をインストール
  • Mac OS X に capture をインストール
    • CaptureOnMacOSX

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-03-20 (木) 14:23:20 (3533d)