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

Ubuntuをインストールする

Ubuntuとは

DebianGNU/LinuxをベースにしたLinuxディストリビューションの一つ. デスクトップが充実していて,初心者でもとても使いやすい.

インストール

  • Ubuntu公式サイト->Download->日本語ローカライズドDesktop CDのダウンロード->最新バージョンのCDイメージ で,Ubuntu日本語ローカライズドDesktop CDのISOイメージを取ってきて,CD(DVD?)に書き込む.
  • 書き込んだCD(DVD)からPCを起動.「Ubuntuの起動およびインストール」を選択.
  • Linuxとは思えないくらい綺麗なデスクトップが表示される.
  • デスクトップにある「インストール」アイコンをダブルクリック.
  • 言語やキーボードの種類,アカウントなどもろもろのことを設定できるので,自分の好きなように設定し,インストールする.
  • 再起動(再起動の途中でCDを取り出すように言われたら従う)

という感じで,言われた通りに全て従っていけばインストールできます.めちゃくちゃ簡単です.

captureをインストールする

次にUbuntu 8.4, Ubuntu 8.10 に 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万円未満で買えるし,解像度も十分だと思われる.

現在遭遇している問題点(2009.1.24)

Ubuntu 8.4, Ubuntu 8.10にインストールしたCaptureで, Canon Powershot A70とCanon Powershot A520をコントロールするとき, quitする(Captureサーバを終了させる)とカメラが応答しなくなる. カメラの電源をoff/onしないと復旧しない.

同じUbuntuでもCanon Powershot G10ではこのような問題は出ない. また, debian_2006_06_10_dist.tgzをインストールした玄箱(CaptureOnKurobox)では, A70とA520のどちらも正常にquitできる.

quitさせないで撮影し続ければ動くようである.しかし, Captureのread.meとPerlのサンプルによると, quitせずに400枚から1000枚の撮影をするとカメラが応答しなくなるらしい. ある程度撮影したらquitしてもう一度起動させる必要があるようだ.

開発環境を整える

sudo apt-get install build-essential
sudo apt-get install libreadline5-dev

によって必要な開発環境を整える.

libusbを入れておく

libusb-0.1-4 が既にインストールされているが,http://sourceforge.net/projects/libusb/ から最新版をダウンロード. (最新版と言っても、libsub-0.x.xでないとダメ。libusb-1.0.0以上は不可!!)

  • 圧縮ファイルをダウンロードした場合
    • tar xzvf ファイル名[Enter](解凍する)→ls[Enter](解凍したファイルを確認)→cd 解凍してできたファイル名[Enter]→ ./configure→make→sudo make install
  • libusbはusbdevfsとかusbfsと呼ばれる仮想ファイルを使用する.そこで,/proc/bus/usbをマウントする. 毎回マウントするのは面倒なので,/etc/fstabに以下を追加する.(注:sudoしましょう)
    • 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.1が見つからないというエラーが出る.そこで

export LD_LIBRARY_PATH=/usr/local/lib

を/etc/profile(すべてのユーザの場合)に書く.(by 秋田先生)

bashを使っている場合、ホームディレクトリの中の.bashrcに書いてもよい。(この場合、使えるユーザは一人になる。。)

それでもうまくいかない場合,/usr/libにシンボリックリンクをはる.

  • cd /usr/lib
  • sudo ln -s /usr/local/lib/libptp2-1.1.10 libptp2.so.1

写真を撮るスクリプト例

秋田先生の定点カメラのサンプル 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: 2009-01-26 (月) 17:19:22 (3221d)