open fab night sensor special - android編
DESCRIPTION
2014/12/05に開催されたOpen Fab Night Sensor Sepcialでお話させて頂いたオムロンHVC-Cを使ったAndroid用サンプルの動かし方になります。 Windodws環境でeclipse+ADTを導入しようとして迷った人への道汁目になりますようにTRANSCRIPT
Android編
2014.12.05 TMCN 初音玲
セッションの目的とゴール
セッションの目的
AndroidでHVC-Cのアプリを作るための基礎を理解する
セッションのゴール
サンプルアプリを実機で動かせられるようになる
2
自己紹介
仕事略歴
システム企画
インフラ構築
業務アプリ構築
DB設計、構築、各種支援
略歴
Microsoft MVP for .NET (2008/04-2015/03)
Oracle ACE (2008/04-:日本で2人目)
@hatsune_
3
最近の著作
4
AEDオープンデータプラットフォーム
https://www.facebook.com/AEDSearch
全国のAED情報を一元管理(世界対応済)
オープンデータ
無償利用可能【 CC BY 3.0 】
REST/JSONインターフェース
県単位一覧、市町村区単位一覧、直近AED検索、周辺AED検索
登録用APIあり(現在は特定アプリにのみ公開し実証実験中)
対応アプリケーション (2014.9.1時点)
AED検索 for Windows 8 / for Windows Phone 8.1
AED検索Web版 (酢酸さん作)
http://aedmap.catchball.co/
5
HVC-C Androidでの実行環境
Android SDK 4.3以上
java 1.7以上
Bluetooth 3.0
必要なパーミッション
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Android動作確認状況
Nexus 7 (2013) Android 4.4 (Kitkat) オムロンで検証済
Nexus 5 Android 5.0 (Lolipop) 本日の実機 (Bluetooth 4.0)
Xperia Z2 Android 4.4 (KitKat) オムロンで検証済
Zenfone 5 Android 4,4 (KitKat) ◯ (BLT 4.0)
GalaxyNote 2 Android 4.3 (Jelly bean) ×動作不可 (BLT 4.0 LE)
Nexus 7 (2012) Android 4.3 (Jelly bean) ×動作不可 (BLT 3.0 + EDR)
4.2.2にインストールしてみる
INSTALL_FAILED_OLDER_SDK
サンプルを動かそう
JDKの準備
Eclipse with ADTの準備
Android SDKの準備
サンプルを動かそう
JDKの準備
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse with ADTの準備
Android SDKの準備
サンプルを動かそう
JDKの準備
Eclipse with ADTの準備
http://developer.android.com/sdk/index.html#download
Android SDKの準備
サンプルを動かそう
JDKの準備
Eclipse with ADTの準備
Android SDKの準備
サンプルを動かそう
新規作成
サンプル取り込み
サンプルを動かそう
サンプルを動かそう
RootDirectory設定で自動的に取り込まれる
サンプルを動かそう
サンプルを動かそう
サンプルを調整しよう
妖怪Androidウォッチ持っている人はそのままでOK
プロジェクト名を右クリックで[properties]
サンプルの構造(1)メインループwhile (true) {
int nUseFunc = HVC.HVC_ACTIV_BODY_DETECTION |HVC.HVC_ACTIV_HAND_DETECTION |HVC.HVC_ACTIV_FACE_DETECTION |HVC.HVC_ACTIV_FACE_DIRECTION |HVC.HVC_ACTIV_AGE_ESTIMATION |HVC.HVC_ACTIV_GENDER_ESTIMATION |HVC.HVC_ACTIV_GAZE_ESTIMATION |HVC.HVC_ACTIV_BLINK_ESTIMATION |HVC.HVC_ACTIV_EXPRESSION_ESTIMATION;
hvcBle.execute(nUseFunc, hvcRes);wait(30);
if ( isExecute == EXECUTE_STOP ) {break;
}}
サンプルの構造(2)データ受信
public void onPostExecute(int nRet, byte outStatus) {
size posX posY confidence
hvcRes.body ◯ ◯ ◯ ◯
hvcRes.hand ◯ ◯ ◯ ◯
hvcRes.face ◯ ◯ ◯ ◯
hvcRes.face.dir yaw pitch roll confidence
hvcRes.face.age age - - confidence
hvcRes.face.gen gender - - -
hvcRes.face.gaze gazeLR gazeUD - -
hvcRes.face.blink ratioL ratioR - -
hvcRes.face.exp exp score - -
face.exp.expression
HVC.HVC_EX_NEUTRAL ? "Neutral" :
HVC.HVC_EX_HAPPINESS ? "Happiness" :
HVC.HVC_EX_SURPRISE ? "Supprise" :
HVC.HVC_EX_ANGER ? "Anger" :
HVC.HVC_EX_SADNESS ? "Sadness" : "" ,
HVCアイデアのキモ
BodyやHandがいる?
Faceで2FPS⇒逆手に取ろう
HVCアイデアのキモ
BodyやHandがいる?
Faceで2FPS⇒逆手に取ろう(天然系タイムラプス)