Comments
Description
Transcript
PDF PDF
MOVERIO BT-300 デベロッパーズガイド 改定履歴 リビジョン 項目 主な改定内容 R1.0 - 新規作成 R1.1 1.2 BT-300 用アプリケーション作成上のご注意 を追加 2.5.1. gradle の不要な設定項目に関する記述を削除 3.4.2 「ミュートノック機能との比較」を追加 5.1. フレームレートの項目を追加、カメラの解放処理に関する注意事項を追加 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 本資料のご使用につきましては、次の点にご留意願います。 本資料の内容については、予告なく変更することがあります。 1. 本資料の一部、または全部を弊社に無断で転載、または、複製など他の目的に使用することは固くお断りいたします。 2. 本資料に掲載されるプログラム、使用方法はあくまでも参考情報であり、これら起因する第三者の権利(工業所有権を含む)侵害あるいは損 害の発生に対し、弊社はいかなる保証を行うものでありません、また、本資料によって第三者または弊社の工業所有権の実施権の許諾を行うも のではありません。 3. 本資料に掲載されている製品は、生命維持装置その他、極めて高い信頼性が要求される用途を前提としていません。よって、弊社は本(当該) 製品をこれらの用途に用いた場合のいかなる責任についても負いかねます。 商標について 本ドキュメントに記載する製品名、商品名、会社名は、各社の商標または登録商標です。 microSD、microSDHC は SD Card Association の商標または商標登録です。. Wi-Fi®、Wi-Fi Direct ™、Miracast ™ は Wi-Fi Alliance の商標または登録商標です。 Bluetooth® のワードマークおよびロゴは、Bluetooth SIG, Inc. が所有する登録商標であり、セイコーエプソン株式会社はこれらのマークをライセンスに基づいて使 用しています。 Google、Google Play、Android、は、Google Inc.の商標です。 Windows は、米国 Microsoft Corporation の、米国、日本およびその他の国における登録商標または商標です。 Mac, Mac OS は、Apple Inc.の商標です。 Intel, Cherry trail, Atom は米国およびその他の国における Intel Corporation の商標です。 なお、各社の商標および製品商標に対しては特に注記のない場合でも、これを十分尊重いたします。 ©SEIKO EPSON CORAPORATION 2016, All right reserved. MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) ―目次― 1. 導入 ______________________________________________________ 1 1.1. 概要 _______________________________________________________________________________2 1.2. 主なシステム仕様 _____________________________________________________________________3 1.3. SDK の提供機能 _____________________________________________________________________5 2. アプリ開発の方法 ____________________________________________ 6 2.1. アプリ開発の概要 _____________________________________________________________________7 2.2. Android SDK の導入 _________________________________________________________________8 2.3. USB ドライバの設定__________________________________________________________________11 2.4. BT-300 とパソコンとの接続 ____________________________________________________________ 12 2.5. Epson 提供 SDK の組み込み _________________________________________________________ 13 3. ディスプレイ制御 ____________________________________________ 14 3.1. ディスプレイ制御概要 ________________________________________________________________ 15 3.2. 全画面表示機能 ____________________________________________________________________ 16 3.3. 2D/3D 表示切替 ___________________________________________________________________ 17 3.4. ミュート機能 _______________________________________________________________________ 20 3.5. シースルーを活かす画像の作り方 _______________________________________________________ 22 4. UI 制御 __________________________________________________ 23 4.1. UI 制御概要 _______________________________________________________________________ 24 4.2. トラックパッド操作時にアプリで取得できるイベントについて ____________________________________ 25 5. カメラ制御 ________________________________________________ 26 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 5.1. カメラ制御概要 _____________________________________________________________________ 27 6. センサー制御 _______________________________________________ 28 6.1. センサー制御概要 ___________________________________________________________________ 29 6.2. センサーの利用方法 _________________________________________________________________ 31 6.3. サンプルコード ______________________________________________________________________ 33 7. Bluetooth ________________________________________________ 34 7.1. Bluetooth 概要 ____________________________________________________________________ 35 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 1. 導入 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 1 1.1. 概要 本ドキュメントは、Moverio BT-300 向けのアプリケーション開発に必要となるデバイスを活用するための技術情報につ いて記述します。 製品外観とハードウェア構成 ヘッドセット コントローラー 十字キー カメラ/インジケーター 照度センサー 決定キー 切替キー トラックパッド 電源ボタン 音量キー 左から BACK キー HOME キー 履歴キー microSD カードスロット micro-USB コネクタ MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 2 1.2. 主なシステム仕様 項目 System Memory RF 詳細 プロセッサ Intel Cherry Trail, Atom x5, Quad core, 1.44GHz アーキテクチャ x86 (ABI 32-bit) ソフトウェア Android 5.1 API レベル 22 RAM 2GB 内部ストレージ 16GB Wi-Fi IEEE 802.11a/b/g/n/ac, Wi-Fi Direct Wi-Fi Miracast Sink/Source w/UIBC Display Codec 外部 I/F UI Audio I/O Sensor Camera GPS Bluetooth Bluetooth 4.1(Bluetooth Smart Ready certified) 解像度 1280RGB x720 色再現性 24bit カラー 画面密度 mdpi 画面方向 Landscape 固定 静止画形式 BMP, JPEG, PNG, GIF 動画形式 MP4, VP8 音声形式 WAV, MP3, AAC USB Type Micro USB Type-B, USB 2.0 (host/device) ベンダーID 0x17EF SD カード micorSD, microSDHC (MAX 32GB) トラックパッド マルチタッチ対応 ボタン 電源ボタン、HOME キー、BACK キー、履歴キー、音量キー、切替キー バイブ あり 出力 ステレオイヤホン 入力 マイク ヘッドセット 9-axis, ALS コントローラー 9-axis 解像度 5M pixel あり ■ 基本的な機能については Android に準拠します。 ■ 3G など Wi-Fi、 Bluetooth 以外のデータ通信および、通話等の機能には対応しておりません ■ Google 認証を取得していないため、Google 認証を必要とするサービスは使用できません。例:Google Play、Google 位 置情報サービス MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 3 ■機種固有の情報について Android.os.Build を使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。 表 1-1 Android.os.Build の主な項目 項目 内容 MANUFACTURER EPSON MODEL EMBT3C PRODUCT embt3c BRAND MOVERIO ■BT-300 用アプリケーション作成上のご注意 本機の表示パネルの Si-OLED(有機 EL パネル)は、一般的にその特性上、焼き付き、輝度劣化などが発生するこ とがあります。焼き付きを軽減するために、アプリケーション作成においては、以下の点にご注意ください。 ・同じ画面が長時間表示され続けない画面遷移をしてください。 ・同じ位置に常時表示される文字表示や、マーカー表示、オブジェクト表示については、輝度が高い配色を避けてくだ さい。 ・長時間無操作状態が続く場合には、スリープ機能を使用したり、アプリケーションにスクリーンセーバー処理を入れる などの対策をしてください。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 4 1.3. SDK の提供機能 BT-300 は、Android 標準 API に加え、Epson 独自 API を使用することにより Android 標準では搭載されない固 有機能を利用できます。 表 1-2 各機能と使用する API の対応表 機能 3.ディスプレイ制御 内容 Android 標準 Epson 独自 API API サイドバイサイドによる 3D 表示の開始/終了 ✔ 切り替え、ディスプレイ輝度調整、全画面表 示、ディスプレイミュート 4.UI 制御 キーコード、トラックパッド操作 ✔ 5 カメラ制御 静止画、動画の撮影 ✔ 6.センサー制御 コントローラーに搭載されるセンサー値の取得、 ✔ ✔ BT-300 独自センサー 7.Bluetooth Bluetooth 対応プロファイル ✔ 次章以降で、これらの機能をアプリから利用する方法について記載します。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 5 2. アプリ開発の方法 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 6 2.1. アプリ開発の概要 BT-300 はシステムソフトウェアとして Android を採用しています。そのため、BT-300 向けのアプリケーションは、 Android スマートフォン向けのアプリケーション開発と同様の環境で開発することができます。但し、BT-300 とアプリケー ション開発パソコンとの接続や、BT-300 特有の機能を使用したアプリケーションを開発するためには、BT-300 に合わせ たパソコン設定をする必要があります。 本章では BT-300 向けのアプリケーションを開発するために必要となる以下の手順について記載します。 ■Android SDK の導入 ■USB ドライバの設定 ■BT-300 とパソコンとの接続 ■Epson 提供 SDK の組み込み MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 7 2.2. Android SDK の導入 以下の項目では Windows7 での環境を前提に Android SDK の導入について記載します。 2.2.1. Android Studio の入手 Android Studio を下記のサイトからダウンロードします。 https://developer.android.com/studio/index.html 2.2.2. JDK の入手およびインストール JDK(7 以上)を下記のサイトからダウンロードし、インストールします。 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.2.3. Android Studio のインストール インストーラーの指示に従い Android Studio をインストールします。 例)C:\Users\<ユーザー名>\AppData\Local\Android\sdk ※以降、上記フォルダに Android Studio がインストールされていることを前提に記載します。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 8 2.2.4. Platform-tools、SDK Platform 「C:\Users\<ユーザー名>\AppData\Local\Android\sdk\ SDK Manager.exe」を実行します。 ※SDK Manager が起動した際、「No Packages found」と表示されダイアログが固まることがあります。 これは proxy が正しく設定されず、情報が更新できないときに発生します。 「Android SDK Manager」以外のダイアログを閉じ[Tools]-[Options]で proxy の設定を行ってください。 Proxy 設定が不明な場合は、ネットワーク管理者に「Proxy を利用した外部ネットワークへの接続方法」についてお問 い合わせください。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 9 SDK Manager で必要となるファイルを選択し、インストールします。 ■[Tools]の[Android SDK Platform-tools] ■[Android5.1.1]の[SDK Platform] にチェックを入れ、[Install]ボタンをクリックし、Accept all を選択します。 以上で Android SDK の導入は完了です。 次に Moverio とアプリケーションを開発するパソコンと接続するための、ADB ドライバの設定を行います。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 10 2.3. USB ドライバの設定 2.3.1. Windows をご使用の場合 Moverio とアプリケーション開発パソコンと接続するために、USB ドライバの設定を行います。 下記サイトより USB ドライバをインストールしてください。 https://software.intel.com/en-us/android/articles/installation-instructions-for-intel-android-usb-driver 2.3.2. Mac OS/ Linux ご使用の場合 USB ドライバのインストールは必要ありません。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 11 2.4. BT-300 とパソコンとの接続 ADB の設定が完了したパソコンと BT-300 の接続について記載します。 2.4.1. BT-300 の設定 ■USB デバッグを有効にするために、下記の手順を実行してください。 1) 「設定」「デバイス情報」をタップして開きます。 2) 「ビルド番号」を 7 回連続でタップすると、「開発者向けオプション」が表示されるようになります。 3) 「設定」「開発者オプション」を開き、「USB デバッグ」にチェックを入れます。 2.4.2. 接続確認方法 ADB の接続確認コマンドでパソコンと BT-300 が接続されているか確認することができます。 コマンドプロンプトを起動し、”cd C:\Users\<ユーザー名>\AppData\Local\Android\sdk\platform-tools” を実行しフォルダを移動します。※環境変数で上記の Path を通しておくと便利です “adb devices”を実行してリストにデバイス名が表示されれば ADB 接続ができています。 ※表示されない場合は、BT-300 を USB 接続しなおし、再度”adb devices”を実行してください MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 12 2.5. Epson 提供 SDK の組み込み 2.5.1. Epson 提供 SDK の利用方法 下記利用方法は、Android Studio でのアプリケーション開発を前提としています 1) Android Studio の ProjectView を表示し、[File]-[New]-[Directory]で"libs"フォルダを作成します 2) C:\Users\<ユーザー名>\AndroidStudioProjects\<アプリケーション名>\app\libs が作成されます ので、ここへ BT300Ctrl.jar を置きます (作成したプロジェクトのフォルダが C:\Users\<ユーザー名>\AndroidStudioProjects の場合) ※以降、C:\Users\<ユーザー名>\AndroidStudioProjects\<アプリケーション名>にプロジェクトがある ものとして説明しています 3) AndroidStudio 上部の Sync Project with Gradle Files ボタンを押して、Gradle の変更をプロジェク トに反映します MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 13 3. ディスプレイ制御 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 14 3.1. ディスプレイ制御概要 BT-300 は光学シースルーを特徴とするスマートグラスです。視界を妨げずクリアな映像を導く光学技術により、周囲 の状況を確認しながら、必要な情報をディスプレイに表示させることが可能です。また、単眼タイプと比べ、両眼シース ルータイプは視野内の正面に映像や画像を投写できるのでより多くの情報を表示可能です。 <機能一覧> ■ 全画面表示 ■ 2D/3D 表示切替 ■ 表示輝度制御 ■ ミュート制御 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 15 3.2. 全画面表示機能 全画面表示を行う場合には、下記の方法による実装をしてください。BT-300 では Android 標準機能を使用するこ とにより、全画面表示が可能となっています。 参考)BT-200 では、Android 標準機能による全画面表示が行えないため、Epson 独自 API を使用していました。 ■フルスクリーンにしたいアプリケーションへの実装例 Activity の onCreate()にて下記処理を実施してください。 View view = this.getWindow().getDecorView(); view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE); ※上記は一例です。詳細は下記 URL を参照してください。 https://developer.android.com/training/system-ui/immersive.html 上記の方法により、 アクションバー、ナビゲーションバー を非表示にすることが出来ます MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 16 3.3. 2D/3D 表示切替 BT-300 では Side by side 方式のコンテンツを 3D 表示させることが可能です。 Side by side 方式とは一つの画面に左右の画像を並べて格納する方式です。 HD サイズの画面で Side by side 方式を実現する場合、左右それぞれ 1280x720 を 1/2 に縮小した 640x720 ピクセルの画像を並べて 1 フレームの画像を構成する必要があります。 計 1280pixel 640pixel 640pixel 720pixel 左目画像 右目画像 Side by side 方式の画像を左目と右目の各々に分離し、各ディスプレイ出力させるには、以下のインターフェースを 利用します。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 17 ■インポートモジュール com.epson.moverio.btcontrol.DisplayControl ■コンストラクタ DisplayControl(Context context) ■インターフェース ■2D/3D 表示切替 int setMode(int DisplayMode, boolean toast) ■パラメータ DisplayMode : 2D/3D モードの状態 2D Mode : DisplayControl.DISPLAY_MODE_2D 3D Mode : DisplayControl. DISPLAY_MODE_3D toast : 2D/3D を示す OSD の表示/非表示の切替え 表示 : true 非表示 : false ■戻り値 実行結果 0(成功)、-1(失敗) ■現在の 2D/3D 表示設定取得 int getMode() ■パラメータ なし ■戻り値 2D Mode : DisplayControl.DISPLAY_MODE_2D Constant value 0 3D Mode : DisplayControl. DISPLAY_MODE_3D Constant value 1 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 18 3.3.1. ディスプレイ輝度調整 ヘッドセットに内蔵されたディスプレイ表示の輝度を調整すると、表示映像の透け具合が変化します。 輝度が低い状態では画像はより透けて見え、輝度を高くすると画像が強く浮いて見えます。 ■インポートファイル com.epson.moverio.btcontrol.DisplayControl ■コンストラクタ DisplayControl(Context context) ■インターフェース ■ディスプレイ輝度(バックライト)の設定 int setBacklight(int backlight) ■パラメータ backlight : 輝度レベル 0(最小輝度)~20(最大輝度) ■戻り値 実行結果 0(成功)、-1(失敗) ■ディスプレイ輝度の取得 int getBacklight() ■パラメータ なし ■戻り値 現在の輝度設定値(0~20) MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 19 3.4. ミュート機能 3.4.1. ディスプレイミュート ディスプレイ表示を一時的に停止したい場合にはミュート機能が利用できます。例えば、装着中に危険を感じた時に 映像をミュートにすることによって視界を確保したい場合にお使いください。 ミュート状態への移行、復帰については下記のインターフェースを使用してください。 ■インポートファイル com.epson.moverio.btcontrol.DisplayControl ■コンストラクタ DisplayControl(Context context) ■インターフェース ■ミュート状態を設定する int setMute(boolean mute) ■パラメータ mute : ミュート ON(true)/ OFF(false) ■戻り値 実行結果 0(正常値)、その他(エラー) ■ミュート状態を取得する boolean getMute() ■パラメータ なし ■戻り値 実行結果 true(ミュート ON)/ false(ミュート OFF) MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 20 3.4.2. ミュートノック機能との比較 類似の機能として、BT-300 のシステム標準機能である、映像と音声を一時的に停止するミュートノックがあります。API を 使用した場合のディスプレイミュートとの比較を、下表に示します。 項目 使用方法 ディスプレイミュート API ミュートノック ・DisplayControl#setMute() ・設定アプリの「タップによるミュート」を ON にした状態で、ヘッド をコールする セットを軽く2回たたく ・復帰する場合には、次の操作を行う ・ヘッドセットを軽く2回たたく ・切替キー、音量キー、電源ボタンのいずれかを押す ※ミュート中にオートスリープが働いた場合にはスリープが優 先され、スリープ状態となり、スリープ復帰時にミュートは解除 される 映像動作 ミュート時 ・ディスプレイが消灯する ・ディスプレイが消灯する(左列と同様の処理) ・システムから AudioManager に対して KEYCODE_MEDIA_PAUSE が発行され、動画再生が一 時停止する 復帰時 ・ディスプレイが点灯する ディスプレイが点灯する(左列と同様の処理) ・システムから AudioManager に対して KEYCODE_MEDIA_PLAY が発行され、動画再生が再開 する 音声動作 ミュート時 ・変化しない ・システムから AudioManager に対して KEYCODE_MEDIA_PAUSE が発行され音楽再生が一時 停止する 復帰時 - ・システムから AudioManager に対して KEYCODE_MEDIA_PLAY が発行され、音楽再生が再開 する 備考 ・現在のミュート状態を知るには、 ・ミュートノックの ON、OFF は、アプリケーションには通知されな DisplayControl#getMute() い をコールする MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 21 3.5. シースルーを活かす画像の作り方 MOVERIO はプロジェクション技術を応用した製品です。ユーザーは、導光板を経由してハーフミラーに投影された映 像を見る仕組みのため、ハーフミラーに反射しない、即ち黒で表示された映像部分では透け感が強い見え方になりま す。 背景が透けて文字が表示されるようなコンテンツを作る際には、文字表示はより目立ちやすい明るい色を、背景部分 は黒で描画を行うことで、対象部分だけを実映像に重ねあわせて表示することが可能になります。 以下のような方法により、シースルーを活かした絵作りが行えます。 1) 全画面表示を行う。 スクリーン感を低減するために、まず必要な画像以外(ステータスバー等)を消します。 2) 背景を黒にする。 表示したいオブジェクト以外を黒データ( [R,G,B]=[0,0,0] )にします。 黒い部分は、外光を透過します。 表示したいオブジェクト MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 見えている景色 MOVERIO 越しの景色 22 4. UI制御 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 23 4.1. UI 制御概要 4.1.1. ハードウェアボタン種類と機能 BT-300 には、下図に示すハードウェアボタンがあります。それぞれのキーに対応するキーイベントは、表 4-1 キーコード 一覧に記載の通りです。 Power button Up Down Left Right Enter key Switch key Volume Up Volume Down BACK key HOME key History key 表 4-1 キーコード一覧 キーコード※ デバイスのタイプ Power button (KEYCODE_POWER) Physical switch HOME key (KEYCODE_HOME) Touch Sensor BACK key KEYCODE_BACK Touch Sensor History key (KEYCODE_RECENT) Touch Sensor Switch key (KEYCODE_MULTIFUNCTION) Physical switch Volume Up KEYCODE_VOLUME_UP Physical switch Volume Down KEYCODE_VOLUME_DOWN Physical switch Up KEYCODE_DPAD_UP Touch Sensor Down KEYCODE_DPAD_DOWN Touch Sensor Left KEYCODE_DPAD_LEFT Touch Sensor Right KEYCODE_DPAD_RIGHT Touch Sensor Enter key KEYCODE_DPAD_CENTER Physical switch 名称 (Recent key) ※括弧つきのものは、アプリにイベント通知されません。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 24 4.2. トラックパッド操作時にアプリで取得できるイベントについて トラックパッドを操作した際に、各メソッドに対するイベントが発生するかどうかを下表に示します。 ✔: イベントが発生する クラス メソッド 動作 View onTouchEvent dispatchTouchEvent GestureDetector.OnGestureListener onDoubleTap onDoubleTapEvent onSingleTapConfirmed GestureDetector.OnDoubleTapListener onDown onFling onLongPress onScroll onShowPress onSingleTapUp MotionEvent getAction ACTION_UP ACTION_DOWN ACTION_MOVE ACTION_CANCEL ACTION_HOVER_ENTER ACTION_HOVER_EXIT ACTION_HOVER_MOVE getToolType TOOL_TYPE_FINGER TOOL_TYPE_MOUSE TOOL_TYPE_STYLUS TOOL_TYPE_UNKNOWN getX getY getDownTime getPointerCount getPointerId getSize getToolMajor getToolMinor getTouchMajor getTouchMinor getEventTime getPressure MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) イベント発生 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ 25 5. カメラ制御 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 26 5.1. カメラ制御概要 BT-300 は、ヘッドセットにカメラを搭載しています。通常の撮影に加え、マーカー認識などの用途に使うことができます。 5.1.1. 内蔵カメラの主な仕様 表 5-1 内蔵カメラの主な仕様 項目 解像度 Picture size 2560x1920/ 1920x1080/ 1280x720/ 640x480/ Preview size 1920x1080/ 1280x720/ 640x480/ Video size 1920x1080/ 1280x720/ 640x480/ フレームレート 露出補正 内容 30fps 最大、最小 ホワイトバランス max: +5, min: -5 auto/ incandeecent/ fluorescent/ warm-fluorescent/ daylight/ cloudy-daylight/ shade/ twilight シーンモード auto/ action/ portrait/ night/ barcode 5.1.2. 外部接続カメラ ■BT-300 では、micro-USB コネクタに、UVC1.0 対応カメラを接続して使用することができます。 ■撮影可能な画像解像度やフレームレートは、お使いになるカメラに依存します。 ■全ての UVC 対応カメラでの動作を保証しているわけではありませんのでご注意ください。 5.1.3. カメラの解放処理に関する注意事項 カメラをオープンしている状態においてユーザーが HOME キーを押した場合、アプリケーションはバックグラウンドに退避しま すが、その際に、カメラの解放処理を必ず行うようにしてください。具体的には、onPause メソッドの中でカメラの解放処理 を記述して下さい。特に、外部接続カメラについては、解放処理を行わない状態で着脱を行うと、正しく接続できない状 態となることがありますので注意して下さい。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 27 6. センサー制御 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 28 6.1. センサー制御概要 BT-300 では、センサー一覧に記載されているセンサーが利用可能です。各センサー値は、Android 標準 API を利用す ることで一般のセンサーと同様に取得できます。センサータイプが使用できない場合には、センサーID 列の値を直接指定する ことも可能です。 6.1.1. センサー一覧 表 6-1 センサー一覧 センサータイプ センサーID (Hex) 内容 搭載場所 Android 標準 TYPE_ACCELEROMETER 0x00000001 加速度センサー ヘッドセット ✔ TYPE_MAGNETIC_FIELD 0x00000002 地磁気センサー ヘッドセット ✔ TYPE_ORIENTATION 0x00000003 方位角検知 ヘッドセット ✔ TYPE_GYROSCOPE 0x00000004 ジャイロセンサー ヘッドセット ✔ TYPE_LIGHT 0x00000005 照度センサー ヘッドセット ✔ TYPE_TEMPERATURE 0x00000007 温度センサー ヘッドセット ✔ TYPE_GRAVITY 0x00000009 重力センサー ヘッドセット ✔ TYPE_LINEAR_ACCELERATION 0x0000000a 直線加速度センサー ヘッドセット ✔ TYPE_ROTATION_VECTOR 0x0000000b 回転ベクトルセンサー ヘッドセット ✔ TYPE_MAGNETIC_FIELD_UNCALIBRATED 0x0000000e 地磁気センサー ヘッドセット ✔ TYPE_HEADSET_TAP 0x00002001 タップ検知 ヘッドセット TYPE_CONTROLLER_ACCELEROMETER 0x00100001 加速度センサー コントローラー TYPE_CONTROLLER_MAGNETIC_FIELD 0x00100002 地磁気センサー コントローラー TYPE_CONTROLLER_GYROSCOPE 0x00100004 ジャイロセンサー コントローラー TYPE_CONTROLLER_ROTATION_VECTOR 0x0010000b 回転ベクトルセンサー コントローラー ※ヘッドセット、コントローラーに搭載されているセンサーは同時に使用することが出来ます。同時に使用可能なセンサーに 特に制限はありませんが、パフォーマンス低下を防ぐために、必要なセンサーのみをリスナー登録することを推奨します。 ※ミュートノック機能の検知には、TYPE_HEADSET_TAP によるタップ検知を使用しています。ミュートノックが ON になっ ている場合、タップを検知するとミュート状態となってしまいます。そのため、タップ検知を有効にする前に、ユーザーに対して、 ミュートノックをを OFF にするように案内をするようにしてください。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 29 6.1.2. 各センサーの座標軸について ヘッドセットおよびコントローラーに搭載されているセンサーのうち、X,Y,Z 軸を持つ各センサーについては、下図のような座 標軸に従ってセンサー値が出力されます。 ヘッドセット +Y コントローラー +Y センサー位置 +X 像確認 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) +Z +Z +X 30 6.2. センサーの利用方法 センサーの利用には、Android 標準 API の SensorEventListener を利用します。 6.2.1. インポートモジュール センサーを利用する場合、下記モジュールをインポートして下さい。 android.hardware.Sensor android.hardware.SensorEvent android.hardware.SensorEventListener 6.2.2. SensorEventListener の利用 センサーを利用する Activity や Service に SensorEventListener を継承する必要があります。 例)Activity に SensorEventListener を継承する public class SampleActivity extends Activity implements SensorEventListener 6.2.3. 利用するセンサーの登録 センサーを利用する場合は、センサーをリスナー登録する必要があります。 例)加速度センサーの登録 // システムのセンサーサービスの取得 SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); // 加速度センサー(TYPE_ACCELEROMETER)の登録 Sensor s = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sm.registerListener(this, s, SensorManager.SENSOR_DELAY_NORMAL); 6.2.4. センサー値の取得 SensorEventListenerのonSensorChangedにてセンサーイベントを取得することで、センサー値を利用することができます。 例)加速度センサーのセンサー値の取得 @Override public void onSensorChanged(SensorEvent event) { // 加速度センサー値の取得(ログ表示) if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){ Log.d("Sample","ax="+event.values[0]+",ay="+event.values[1]+",az="+event.values[2]); } } MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 31 onSensorChanged で取得できるセンサー値は、使用するセンサータイプによって異なります。各センサータイプと対応する SensorEvent 配列の要素番号は、次のとおりです。 表 6-2 Epson 独自センサーで取得できるセンサー値 センサータイプ TYPE_HEADSET_TAP TYPE_CONTROLLER_ACCELEROMETER TYPE_CONTROLLER_MAGNETIC_FIELD TYPE_CONTROLLER_GYROSCOPE TYPE_CONTROLLER_ROTATION_VECTOR 単位 SensorEvent センサー値 配列の要素番号 0 2: 左側、もしくは、右側からダブルタップされた 0 X軸 1 Y軸 2 Z軸 0 X軸 rad/s 1 Y軸 2 Z軸 0 X軸 1 Y軸 2 Z軸 0 X軸 1 Y軸 2 Z軸 - m/s2 uT - ※Android 標準のセンサータイプについては、Android 準拠のため、割愛しています。 MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 32 6.3. サンプルコード センサータイプ TYPE_HEADSET_TAP を使用し、タップ検知した際に Toast を表示するサンプルコードです。 package com.epson.moverio.sample.TapSample; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity implements SensorEventListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); Sensor sensor = sm.getDeffaultSensor(Sensor.TYPE_HEADSET_TAP); sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override public void onSensorChanged(SensorEvent event) { if(event.sensor.getType() == Sensor.TYPE_HEADSET_TAP){ // タップイベント発生時に、Toast 表示する Toast.makeText(this, "tap event!", Toast.LENGTH_SHORT).show(); } } @Override protected void onPause() { super.onPause(); SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); if (sm != null) { sm.unregisterListener(this); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 33 7. Bluetooth MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 34 7.1. Bluetooth 概要 7.1.1. 対応仕様 BT-300 の Bluetooth 仕様について記述します。 表 7-1 Bluetooth 対応プロファイル Profile Role Headset Profile(HSP) Audio Gateway Advanced Audio Distribution Profile(A2DP) Source Audio/Video Remote Control Profile(AVRCP) Target Human Interface Device(HID) Host Object Push Profile(OPP) Client/Server Personal Area Network(PAN) NAP/PANU MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 35