...

PDF PDF

by user

on
Category: Documents
8

views

Report

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
Fly UP