Qcam Orbit AFいじりちゅうその3。

なつかしのQcam Orbit AFネタです。
一年ちょいぶりのlinux-uvcドライバなんですが、pan/tilt controlのインターフェイスが外部化されたことで設定方法が若干変わってしまいました。
で、設定するのが面倒だったのでしばらくpan/tiltなしで動かしていました。
ひさしぶりに動かしたいなーと思い、いろいろ設定してみました。

Qcam Orbit AF howto

環境:Debian Lenny/i386

Lennyのkernelは2.6.26なので、uvcドライバは標準でついています。なので、カメラを刺せば普通に映ります。便利ですね。
しかしpan/tiltを動かすためにはちょっと作業が必要です。

prepare

uvcvideo.hがlinux-headersの中にないので、linux-sourceが必要です。

aptitude install linux-source-2.6.26
tar -xjf /usr/src/linux-source-2.6.26.tar.bz2 -C /usr/src/

buildにはgccのほか、cmake,gengetoptが必要です。

aptitude install cmake gengetopt
build

libwebcamを使います。
libwebcam 0.1.1はちょっとお古なので、svnから最新版を取ってきます。今回はrev.23を使用しました。

svn co http://svn.quickcamteam.net/svn/qct/Linux/ libwebcam-trunk
cd libwebcam-trunk

後は基本的にREADMEの通りに作業します。
先ほど取得したlinux-sourceからuvcvideo.hをもってきます。

ln -s /usr/src/linux-source-2.6.26/drivers/media/video/uvc/uvcvideo.h Common/include/uvcvideo.h

後はcmakeを使ってビルド。

cd build
cmake ..
make
usage

サンプルの制御プログラムとして、uvcdynctrlというのがついてます(build/Apps/uvcdynctrl)。
使い方はuvcdynctrl --helpにだいたいのってますが、簡単な使用方法を。

  • ./uvcdynctrl -c 使用できるコントロール(制御項目)を表示。こんなリストが返ってきます。Pan/Tiltのほか、露出(Exposure)の設定などもあります。
    • LED1 Frequency
    • LED1 Mode
    • Focus (absolute)
    • Pan/Tilt (reset)
    • Tilt (relative)
    • Pan (relative)
    • Exposure, Auto Priority
    • Exposure (Absolute)
    • Exposure, Auto
    • Backlight Compensation
    • Sharpness
    • White Balance Temperature
    • Power Line Frequency
    • Gain
    • White Balance Temperature, Auto
    • Saturation
    • Contrast
    • Brightness
  • ./uvcdynctrl -g 'Brightness' 指定したコントロールの値を表示。Pan/Tiltは使えない模様?
  • ./uvcdynctrl -s 'Pan (relative)' 256 指定したコントロールの値を設定。この例では、Panを相対位置で256動かしています。Pan/Tiltは64ごとの値です。

記憶ではPan/Tiltはabsoluteでの指定もできたと思うのですが、relativeしかないようです。これはdynctrlの定義ファイル(logitech.xml)を編集するとできるかもしれません。

とりあえず動いたのでよしとします。