Armadillo-800 EVA を Debian GNU/Linux で起動し、UVCカメラとして使用する方法を説明します。UVCカメラが出力する画像は、Armadillo-800 EVA に標準搭載されたカメラから取得します。
Armadillo-800 EVA を UVCカメラとして使用するためには、USBデバイスの Web カメラ機能を使用します。Web カメラ機能を使用するために必要な UVCガジェットサンプルアプリケーションは以下のとおりです。
ソースアーカイブ | uvc-gadget.tar.gz |
---|---|
実行ファイル | uvc-gadget |
本Howtoで動作確認を行った作業用PCの環境は次のとおりです。
OS | Windows 7 Professional Service Pack 1 |
---|---|
VMware | VMware Workstation 7.1.5 |
ATDE4(amd64向け VMware仮想イメージファイル) | atde4-20111228-amd64.zip |
1. 準備
Armadillo-800 EVA を UVCカメラとして使用するための準備を行います。
1.1. USBデバイス機能の使用準備
「Howto: Armadillo-800 EVAのUSBデバイス機能を使用する」を参照し、以下の手順を実行してください。
USBガジェットカーネルモジュールは、Webカメラ機能を持つ "g_armadillo.ko" を使用します。
"g_webcam.ko" も Web カメラ機能を持っていますが、本Howtoで使用する UVCガジェットサンプルアプリケーションは "g_armadillo.ko" 専用に作成されているため動作させることができません。
1.2. UVCガジェットサンプルアプリケーションの実行ファイルを作成
UVCガジェットサンプルアプリケーションの実行ファイルを作成します。このアプリケーションは、カメラから取得した画像の出力および、作業用PCから送信される各種イベントの処理を行います。
はじめに、ソースアーカイブを展開します。ビルドを行うためには Linux カーネルソースが必要です。
[atde ~]$ ls linux-2.6.35-a800eva-at2 linux-2.6.35-a800eva-at2.tar.gz uvc-gadget.tar.gz [atde ~]$ tar zxvf uvc-gadget.tar.gz [atde ~]$ cd uvc-gadget
ビルドを実行し、実行ファイルを作成します。シェル変数 "KERNEL_DIR" には、Linux カーネルソースディレクトリを指定します。
[atde ~/uvc-gadget]$ CROSS_COMPILE=arm-linux-gnueabi- \ KERNEL_DIR=../linux-2.6.35-a800eva-at2 ARCH=arm make [atde ~/uvc-gadget]$ ls uvc-gadget uvc-gadget
1.3. カーネルモジュールの登録とサンプルアプリケーションの起動
USBガジェットカーネルモジュールの登録と、UVCガジェットサンプルアプリケーションの起動を行います。
はじめに、insmodコマンドで "g_armadillo.ko" を登録します。
[armadillo ~]# ls g_armadillo.ko uvc-gadget [armadillo ~]# insmod g_armadillo.ko g_armadillo gadget: using random self ethernet address g_armadillo gadget: using random host ethernet address usb0: MAC 46:24:2d:43:41:94 usb0: HOST MAC 5a:09:33:f5:c7:35 g_armadillo gadget: uvc_function_bind g_armadillo gadget: Armadillo Composite Gadget, version: 2012/05/02 g_armadillo gadget: g_armadillo ready g_armadillo gadget: high speed config #1: Armadillo Compo site (CDC + ACM + UVC) g_armadillo gadget: uvc_function_set_alt(0, 0) g_armadillo gadget: uvc_function_set_alt(1, 0) g_armadillo gadget: uvc_function_set_alt(1, 0) [armadillo ~]#
次に、UVCガジェットサンプルアプリケーションを起動します。書式と有効なオプションは以下のとおりです。
書式: uvc-gadget [オプション]... -o device 出力ビデオデバイスを指定します。デフォルトでは、 /dev/video3(UVCガジェット)が指定されます。 -c device 入力ビデオデバイスを指定します。デフォルトでは、 /dev/video0(CON1に搭載されたカメラ)が指定されます。 -h 使用方法メッセージを出力してプログラムを終了します。
実行権限を付与し、UVCガジェットサンプルアプリケーションを起動します。起動が完了すると、Armadillo-800 EVA が UVCカメラとして認識されます。
[armadillo ~]# chmod +x uvc-gadget [armadillo ~]# ./uvc-gadget sh_mobile_ceu sh_mobile_ceu.0: SuperH Mobile CEU driver attached to camera 0 USB speed unknown g_armadillo gadget: uvc_function_disable g_armadillo gadget: high speed config #1: Armadillo Composite (CDC + ACM + UVC) g_armadillo gadget: uvc_function_set_alt(0, 0) g_armadillo gadget: uvc_function_set_alt(1, 0) g_armadillo gadget: uvc_function_set_alt(1, 0)
ATDE から Armadillo-800 EVA を認識できない場合は、ホストOSが先に認識している可能性があります。VMware製品のドキュメントを参照し、ATDE で認識できるよう設定してください。例として、「Workstation ユーザーマニュアル」を参照し、VMware Workstation 7.1.5で設定する例を記載します。
- VMware Workstationを起動する
- ATDEをパワーオンする
- メニューの「VM(M)」「取外し可能デバイス(R)」「Armadillo Composite Gadget」を選択する
- 「接続(ホストから切断)(C)」をクリックする
- ダイアログボックスが表示されるため「OK」をクリックする
2. 動作確認
ATDE で、UVCカメラ(Armadillo-800 EVA)から取得した画像を表示します。UVCビューアとして guvcview を使用します。
UVCカメラから出力される画像のフォーマットとサイズは以下のとおりです。
画像フォーマット | 解像度(ピクセル) |
---|---|
NV12(4:2:0 Semi-Planer) | 640x480 |
はじめに、guvcviewのインストールを行います。
[atde ~]$ sudo apt-get update [atde ~]$ sudo apt-get install guvcview
NV12フォーマットで出力された画像を guvcview で表示するには、以下のようにコマンドを実行します。
[atde ~]$ guvcview -d /dev/video0 -f nv12