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などがあるらしい.
最近のカメラはサポートされていないらしいが,
中古で数千円で買えるし,解像度も十分だと思われる.
玄箱に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 (玄箱のクロックは不正確なので必須)
- 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がコンパイルできた.
参考ページ †