Cameras4Capture CaptureOnDebian CaptureOnDebian40 CaptureOnKurobox CaptureOnMacOSX CaptureOnUbuntu

玄箱を使ってデジカメをUSB経由で制御する

玄人指向のNASキット玄箱HGにcaptureをインストールして キャノンのデジカメをUSB経由でコントロールした. 超高解像度の定点カメラなどが作れる.

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

とか

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

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

captureで制御できるカメラには,Cameras4Captureなどがあるらしい. 最近のカメラはサポートされていないらしいが, 中古で数千円で買えるし,解像度も十分だと思われる.

100_4390s.jpg

玄箱にdebian Linuxをインストールして環境を整える

  • http://kuro.dsk.jp/からdebian_2006_06_10_dist.tgzをダウンロード
  • install_debian_standalone.txtを見てインストール
    • イメージの展開方法はtar xzvf debian_2006_06_10_dist.tgz -C /mnt
  • install_debian.txtを見て設定
    • このまま再起動すると玄箱はIPアドレス192.168.0.100で起動する
    • そこで適当なマシンを192.168.0.101などに設定して,192.168.0.100にtelnetで入り,/etc/host /etc/network/interfacesなどを編集して希望のアドレスに変更した
    • (今から思えば,/mntにイメージを展開したあと,再起動する前に,/mnt/etc/hostと /mnt/etc/network/interfaces を編集すれば良かったような気がする)
  • このままapt-getなどすると/etc/apt/sources.listが古いので,この中の単語woodyをsargeに置換して 以下のようにしてアップデートする
    • apt-get update
    • apt-get upgrade
  • つぎのものをapt-get installで入れる
    • gcc
    • gcc++
    • make
    • pkg-config
  • capture動かすだけなら不要だけど,以下のものを結局apt-get installした
    • ntpdate (玄箱のクロックは不正確なので必須)
      • 以下のような内容のシェルスクリプトファイルを作って/etc/cron.daily/に置いた
        #!/bin/sh
        /usr/sbin/ntpdate 133.65.17.121 #ご近所のntpサーバを指定
    • ssh (telnet代わり&写真などの転送用)
    • imagemagic (写真のサイズ変更などのため)
    • apache (写真の公開用)
  • 内蔵HDDはhda1 (/) とhda3 (/mnt) の二つにパーティション分けされている
    • /は2GBと小さめなので,/mnt/homeを作ってln -s /mnt/home /homeした

libusbを入れておく

  • apt-get install libusb-0.1-4 でもインストールできる.が,これではcaptureのmakeができなかった.
    • もしかしたら古いのかもしれない(0.1.8以上が必要らしい)
  • そこで,http://sourceforge.net/projects/libusb/ から最新版をダウンロード.
    • ./configure→make→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をコメントアウトする
  • readlineをapt-getでインストールはしたものの,makeでエラーが出る.なにか足りないらしい.
    • 深く追求するのはあきらめて,MakefileのAVE_READLINE = -DHAVE_READLINEをコメントアウトする
    • i386でapt-get install libreadline*したらmakeできたので玄箱でも出来たかもしれない.

ライブラリを指定する

このまま動かすと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を移動や加工すれば良い

Debian i386

  • 後日Debian i386にインストールした.以下が必要だった. 玄箱でも実は必要だったかもしれない.
    • libc-dev
    • libc6-dev
    • g++
      • g++をインストールしたらlibc-dev, libc6-devは自動的にインストールさるようだ
  • i386でapt-get install libreadline*したらcaptureがコンパイルできた.

参考ページ


添付ファイル: file100_4390s.jpg 2438件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-22 (金) 01:16:30 (3379d)