[Armadillo:04656] Re: Armadillo-500 FXによるUSBカメラの制御について

佐藤 智也 email@hidden
2009年 10月 8日 (木) 17:14:06 JST


お世話になります。
佐藤です。

ご回答ありがとうございました。
下記ご指摘について、再度確認させてください。

1.ctrlsの設定した値について
> ioctl(fd, VIDEOC_S_EXT_CTRLS, &ctrls);
> でエラーが発生しているようです。ctrlsに設定した値のいずれかが誤っている
> 可能性があります。
特集記載のソースをそのまま利用していますが、パラメータの値が違うのでしょうか?
USBカメラは特集記事記載と同じUSBカメラ(AF QCAM-200R)を利用しています。
当該個所のソースコードは、以下のとおりです。

・・・
#define V4L2_CID_PAN_RELATIVE_LOGITECH  0x0A046D01
#define V4L2_CID_TILT_RELATIVE_LOGITECH 0x0A046D02
#define V4L2_CID_PANTILT_RESET_LOGITECH 0x0A046D03
・・・
static void
pantilt_reset(int fd)
{
  struct v4l2_ext_control xctrls[1];
  struct v4l2_ext_controls ctrls;
  int ret;

  ctrls.count = 1;
  ctrls.controls = xctrls;
  xctrls[0].id = V4L2_CID_PANTILT_RESET_LOGITECH;
  xctrls[0].value = 3;
  ret = ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls);
  if (ret < 0)
    die("pan tilt reset");
  sleep(4);
  return;
}

2.libwebcam(uvcdynctrl)のインストールについて
下記、詳細な導入手順ありがとうございます。
ただ、開発経験が浅く次のような確認をさせていただきたい事項があります。

ATDE2(作業用PC)へのインストールと判断して、
ATDE2(作業用PC)側でインストール作業を行い、ATDE2(作業用PC )上で
uvcdynctrlコマンドを実行できていますが、USBカメラを認識できませんでした。
ATDE2(作業用PC)はVM上で動作しております。
ATDE2(作業用PC)にてUSBカメラを利用する場合について、ご教示下さい。
$ uvcdynctrl -h は実行できています。が、
$ uvcdynctrl -l
Listing available devices:
No devices found.
となっています。

以上、よろしくお願いします。


> 
> 溝渕です。
> 
> 佐藤 智也 wrote:
> > はじめまして。
> > 佐藤と申します。
> >
> > SoftwareDesign2009年2月号の特集「新時代組込み開発の極意」の
> > 「4章 タッチパネルを有効活用 液晶画面でUSBカメラを制御」を参考に、
> > Armadillo-500 FXで動画再生とUSBカメラの制御を学習中ですが、
> > USBカメラの制御でエラーが発生しており、解決方法がわかりません。
> > 原因または解決策をご存知の方はいらっしゃいませんか。
> >
> > Linux開発経験が少ないため、SoftwareDesign2009年2月号の特集の
> > 3章までと4章のSDLで動画再生までは、Howtoやメーリングリストを
> > 参考にしながら進めていましたが、USBカメラの制御で止まってしまいました。
> > 「hello-sdl-input」を実行すると下記のエラーが発生してしまいます。
> >
> > [email@hidden (ttymxc0) /bin]#
> SDL_NOMOUSE=1 ./hello-sdl-input
> > pan tilt reset: Invalid argument
> 
> ioctl(fd, VIDEOC_S_EXT_CTRLS, &ctrls);
> でエラーが発生しているようです。ctrlsに設定した値のいずれかが誤っている
> 可能性があります。
> 
> コマンドについては、libwebcamに含まれるuvcdynctrlで確認することができ
> ます。
> 
> > Howtoの「UVC対応Webカメラを使用してストリーミング配信をおこなう」を
> 参考に、
> > MJPG-streamerを起動し、Webからのカメラ制御(pan制御やtilt制御)がで
> きてるの
> > で、
> > ハード的な問題はないと思います。(UVCの設定はmenuconfigで設定できたの
>> > 、uvcvideoドライバのクロスコンパイルは行っていません。)
> >
> > 環境:
> >  ターゲット:Armadillo-500 FX
> >  開発環境:atde2
> >  atmark-dist:20090318版
> >  カーネルバージョン:linux-2.6.26-at6
> >  USBカメラ:AF QCAM-200R
> >
> > 雑誌の「UVCとXUを透過的に利用するには」にuvcdynctrlについて記載があ
> ります
> > が、
> > 対応方法がわからず何もしていません。もし、uvcdynctrlのインストールが
> 必要であ
> > れば
> > その方法(参照場所など)も教えてください。
> 
> libwebcamのビルドに必要なパッケージを追加します。
> $ sudo apt-get install cmake gengetopt libxml2-dev
> 
> ソースファイルを取得します。
> $ svn co http://svn.quickcamteam.net/svn/qct/Linux/ libwebcam
> 
> ビルド/インストールします
> $ cd Common/include/
> $ wget
> http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvcvideo
> .h
> $ wget
> http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvc_comp
> at.h
> $ cd ../../
> $ mkdir build
> $ cd build
> $ cmake .. –DCMAKE_INSTALL_PREFIX=/usr
> $ make
> $ sudo make install
> $ sudo ldconfig
> 
> 接続されているカメラのデバイス取得
> $ uvcdynctrl -l
> 対応しているコマンドの確認
> $ uvcdynctrl -d video0 -c
> 
> Pan/Tilt (reset)
> が表示されるかどうかを確認してみてください。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


armadillo メーリングリストの案内