すまべん関西 JAG神戸支部共催和歌山合宿発表資料

4,324 views

Published on

Luaridaで作るSmartWatchプログラム

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,324
On SlideShare
0
From Embeds
0
Number of Embeds
2,689
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

すまべん関西 JAG神戸支部共催和歌山合宿発表資料

  1. 1. Luaridaで作る SmartWatchプログラム たろサ(@momoonga) 山本三七男
  2. 2. 2 自己紹介和歌山県 有田市 今ココ
  3. 3. 内 容(1)前回の発表から(2)Luaridaとは(3)SmartWatchとは(4)LuaridaとSmartWatchのリンク(5)Luaridaの対応(6)デモプログラム
  4. 4. 4 前回の発表 何、作ろうか?・SmartWatch用スクリプト・Ruputer エミュレータ・ひとり AR
  5. 5. 5 前回の発表 Luaridaで作れる 何、作ろうか? ようにしました・SmartWatch用スクリプト・Ruputer エミュレータ・ひとり AR
  6. 6. Luaridaとは
  7. 7. 7 壁が高いAndroid開発・Eclipseのインストール・Android-SDKのインストール・Androidのバージョン違いの理解・もろもろ・・・  ポケコンのように、  Android単体で  プログラムしたいな。
  8. 8. 8 Luaスクリプトの実装 Luaはリオデジャネイロ・カトリカ大学で 開発されたスクリプト言語 特徴: 高速な動作、高い移植性、省メモリ ルアリダ (Luarida) LuaをAndroidに   移植しました。 105命令を独自実装!IS01
  9. 9. 9前回の発表時のLua2011年 9月(TIOBE Programming Community Index) さらに上昇 13位
  10. 10. 10 前回の発表時のLua 2011年 9月(TIOBE Programming Community Index) さらに上昇 13位先月はRubyを抜いて一瞬11位に
  11. 11. 11 今月のLua2012年 6月(TIOBE Programming Community Index) がっびょ~ん何これ
  12. 12. SmartWatchとは
  13. 13. 13 SmartWatch とは LiveViewの 後継機 BluetoothAndroid SmartWatch MN2
  14. 14. 14 SmartWatchアプリの仕組み 前回の発表ではサービスとして常駐 SmartWatchアプリ 画像のみの送信 を管理SmartWatch アプリ(1) イベントSmartWatch LiveWare Smart アプリ(2) 画面データ マネージャ WatchSmartWatch Bluetooth アプリ(3) タッチデータ SmartWatchとのやり取り は、すべてLiveWareマネー ジャが行っている
  15. 15. 15 SmartWatchアプリの仕組み すいません。サービスとして常駐 間違いでした。 SmartWatchアプリ 画像のみの送信 を管理SmartWatch アプリ(1) イベントSmartWatch LiveWare Smart アプリ(2) 画面データ マネージャ WatchSmartWatch Bluetooth アプリ(3) タッチデータ SmartWatchとのやり取り は、すべてLiveWareマネー ジャが行っている
  16. 16. 16 SmartWatchアプリの仕組みサービスとして常駐 画像のみの送信SmartWatch アプリ(1) イベント SmartWatchSmartWatch 管理アプリ Smart アプリ(2) 画面データ “com.sonyericsson. Watch extras.smartwatch”SmartWatch Bluetooth アプリ(3) タッチデータ SmartWatch本体とのやり 取りは、すべてSmartWatch アプリが行っている。
  17. 17. LuaridaとSmartWatch のリンク
  18. 18. 18 SmartWatchとのリンク Bitmapキャッチャというアプリを作りました Bitmap キャッチャ Smart SmartAndroid Watch Watch アプリ Broadcast通信 管理アプリ Bluetooth Android側 Bitmapキャッチャの機能  ・AndroidアプリからBitmap画像を受け取って表示する。  ・AndroidアプリからVibrator命令を受け取って振動させる。  ・画面へのタッチ情報をBroadcast送信する。  ・スィープ情報を、Broadcast送信する。  ・加速度センサの値を、Broadcast送信する。
  19. 19. 19 SmartWatchとのリンク  SmartWatchの画面タッチ無しにアプリを起動するには、  以下のBroadcastを送信する。Intent intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME,"package.name" );intent.setPackage(hostAppPackageName);sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
  20. 20. 20 SmartWatchとのリンクBitmapキャッチャ Bitmap キャッチャ Smartの使用例 Watch 管理アプリ Bluetooth Android側 Broadcast通信 カメラ画像転送ツール Camera View Picther GitHubでソース公開中 カメラ
  21. 21. 21 SmartWatchとのリンクLua Scriptlocal gwide,gheight Luarida Bitmapcanvas.setMainBmp(canvas.setWorkBmp(canvas.putCls() キャッチャ Smart Smartcanvas.workCls()local xs = 56 Watch Watchlocal ys = 65workdroiddraw( 0, 0, 管理アプリworkdroiddraw( 56,sprite.init()sprite.define( 1, 0, 0, Bluetoothsprite.define( 2, 56, 0,swatch.start() Broadcast 通信 Android側
  22. 22. Luaridaの対応
  23. 23. 23 Luaridaのグラフィック       Luaridaのグラフィックは内部にワーク画面 と メイン画面 をあわせ持つ構造メイン画面を Broadcast 通信 SmartWatchBroadcast通信 画面
  24. 24. 24 Luaridaへの追加コマンド SmartWatchコマンド ・swatch.getAccel()   加速度センサ情報を取得する ・swatch.putflush([GX0,GY0,GX,GY1])   メイン画面をSmartWatch画面にフラッシュする ・swatch.start([PackageName])   Bitmapキャッチャ及びSmartWatchアプリを起動する ・swatch.stop([PackageName])   Bitmapキャッチャ及びSmartWatchアプリを終了する ・swatch.stouch([Sprite番号[,Sprite番号...] ])   スプライトにタッチしているかどうか調べる ・swatch.touch()   画面タッチ情報を取得する ・swatch.vibrator([OnTime[,OffTime[,Repeat]]])   バイブレータを振動させる
  25. 25. 25 swatch.getAccelSmartWatchの加速度センサのX,Y,Z方向の成分を取得します。引数なし戻り値 X , Y , Z の3つ X: X方向の加速度成分 Y: Y方向の加速度成分 Z: Z方向の加速度成分 x,y,z = swatch.getAccel()
  26. 26. 26 swatch.putflush([x0,y0,x1,y1])メイン画面の内容をSmartWatchの画面にフラッシュします。 引数省略時は、メイン画面全体をSmartWatch画面にフラッシュします。引数 X0: フラッシュ範囲の左上X座標 Y0: フラッシュ範囲の左上Y座標 X1: フラッシュ範囲の右下X座標 Y1: フラッシュ範囲の右下Y座標SmartWatchへの画面のフラッシュは、1秒に3回程度にしないと表示やタッチ処理が追いつかない感じです。戻り値なし  swatch.putflush(0,0,127,127)
  27. 27. 27 swatch.start([PackageName])SmartWatchアプリを起動します。引数を省略した場合、Bitmapキャッチャを起動します。引数 PackageName: SmartWatchアプリのパッケージ名を指定します。戻り値なし   swatch.start("com.sonyericsson.extras.liveware.extension.music")
  28. 28. 28 swatch.stop([PackageName]) SmartWatchアプリを終了させます。 引数を省略した場合は、Bitmapキャッチャを終了させます。 SmartWatch用コマンドの使用が終了したときは、Bitmapキャッチャを終了させてください。引数 PackageName: SmartWatchアプリのパッケージ名を指定します。戻り値なし   swatch.stop("com.sonyericsson.extras.liveware.extension.music")
  29. 29. 29 swatch.stouch([Sprite番号,..]) SmartWatchの画面に表示されているスプライトにタッチしている場合、そのスプライトの番号を取得します。 基本的にsprite.touch()と同じ使い方です。引数 Sprite番号: スプライト番号です。0~63まで、 カンマで区切っていくつでも指定できます。戻り値 タッチされているスプライトの数は1つとは限らないので、配列(Luaテーブル)で返ります。     local tsp={} --配列宣言 tsp = swatch.stouch()
  30. 30. 30 swatch.touch() SmartWatch画面へのタッチ座標、及び上下左右のスィープ結果を取得します。引数なし戻り値  X,Y,Stausの3つ X: 最後にタッチしたX座標    (メイン画面サイズに換算された座標値が返ります) Y: 最後にタッチしたY座標    (メイン画面サイズに換算された座標値が返ります) Status: 画面タッチ及びスィープ結果。
  31. 31. 31 swatch.touch()Status値は下記です。 0: タッチしている 1: タッチしていない 2: 長時間タッチしている 3: 上スィープした 4: 下スィープした 5: 左スィープした 6: 右スィープした  x,y,s = swatch.touch()
  32. 32. 32 swatch.vibrator([On[,Off[,Repeat]]]) SmartWatchのバイブレータを振動させます。 引数省略時は、0.5sec間、一度だけ振動します。 OnTimeのみ指定した場合は、指定時間、一度だけ振動します。引数 On:    振動時間。msで指定します。 Off:   振動停止時間。msで指定します。 Repeat: 繰り返し回数。戻り値なし   swatch.vibrator(100, 200, 3)
  33. 33. 33デモプログラム
  34. 34. ご清聴ありがとうございました

×