すまべん関西 JAG神戸支部共催和歌山合宿発表資料
-
Upload
- -
Category
Technology
-
view
3.571 -
download
1
description
Transcript of すまべん関西 JAG神戸支部共催和歌山合宿発表資料
![Page 1: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/1.jpg)
Luaridaで作る
SmartWatchプログラム
たろサ(@momoonga)山本三七男
![Page 2: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/2.jpg)
2
自己紹介
今ココ
和歌山県有田市
![Page 3: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/3.jpg)
内 容
(1)前回の発表から
(2)Luaridaとは
(3)SmartWatchとは
(4)LuaridaとSmartWatchのリンク
(5)Luaridaの対応
(6)デモプログラム
![Page 4: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/4.jpg)
4
前回の発表
・SmartWatch用スクリプト
・Ruputer エミュレータ
・ひとり AR
何、作ろうか?
![Page 5: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/5.jpg)
5
前回の発表
・SmartWatch用スクリプト
・Ruputer エミュレータ
・ひとり AR
何、作ろうか?Luaridaで作れるようにしました
![Page 6: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/6.jpg)
Luaridaとは
![Page 7: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/7.jpg)
7
壁が高いAndroid開発
・Eclipseのインストール・Android-SDKのインストール・Androidのバージョン違いの理解・もろもろ・・・
ポケコンのように、 Android単体で
プログラムしたいな。
![Page 8: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/8.jpg)
8
Luaスクリプトの実装
ルアリダ(Luarida)
特徴: 高速な動作、高い移植性、省メモリ
Luaはリオデジャネイロ・カトリカ大学で開発されたスクリプト言語
LuaをAndroidに 移植しました。
105命令を独自実装!IS01
![Page 9: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/9.jpg)
9
前回の発表時のLua
2011年 9月(TIOBE Programming Community Index)
さらに上昇 13位
![Page 10: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/10.jpg)
10
前回の発表時のLua
2011年 9月(TIOBE Programming Community Index)
さらに上昇 13位
先月はRubyを抜いて一瞬11位に
![Page 11: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/11.jpg)
11
今月のLua
がっびょ~ん何これ
2012年 6月(TIOBE Programming Community Index)
![Page 12: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/12.jpg)
SmartWatchとは
![Page 13: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/13.jpg)
13
SmartWatch とは
Bluetooth
Android SmartWatch MN2
LiveViewの後継機
![Page 14: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/14.jpg)
14
SmartWatchアプリの仕組み
LiveWareマネージャ
SmartWatch
Bluetooth
SmartWatchアプリ(1)
サービスとして常駐
SmartWatchアプリ(2)
SmartWatchアプリ(3)
SmartWatchアプリを管理
SmartWatchとのやり取りは、すべてLiveWareマネージャが行っている
イベント
画面データ
タッチデータ
画像のみの送信
前回の発表では
![Page 15: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/15.jpg)
15
SmartWatchアプリの仕組み
LiveWareマネージャ
SmartWatch
Bluetooth
SmartWatchアプリ(1)
サービスとして常駐
SmartWatchアプリ(2)
SmartWatchアプリ(3)
SmartWatchアプリを管理
SmartWatchとのやり取りは、すべてLiveWareマネージャが行っている
イベント
画面データ
タッチデータ
画像のみの送信
すいません。間違いでした。
![Page 16: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/16.jpg)
16
SmartWatchアプリの仕組み
SmartWatch管理アプリ Smart
Watch
Bluetooth
SmartWatchアプリ(1)
サービスとして常駐
SmartWatchアプリ(2)
SmartWatchアプリ(3)
SmartWatch本体とのやり取りは、すべてSmartWatchアプリが行っている。
イベント
画面データ
タッチデータ
画像のみの送信
“com.sonyericsson. extras.smartwatch”
![Page 17: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/17.jpg)
Luaridaと
SmartWatch
のリンク
![Page 18: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/18.jpg)
18
SmartWatchとのリンク
SmartWatch
管理アプリ
SmartWatch
Bluetooth
Bitmapキャッチャ
Android側
Androidアプリ
Bitmapキャッチャの機能 ・AndroidアプリからBitmap画像を受け取って表示する。
・AndroidアプリからVibrator命令を受け取って振動させる。
・画面へのタッチ情報をBroadcast送信する。
・スィープ情報を、Broadcast送信する。
・加速度センサの値を、Broadcast送信する。
Broadcast通信
Bitmapキャッチャというアプリを作りました
![Page 19: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/19.jpg)
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);
![Page 20: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/20.jpg)
20
SmartWatchとのリンク
SmartWatch
管理アプリ
Bluetooth
Bitmapキャッチャ
Android側
Broadcast通信
Bitmapキャッチャ
の使用例
カメラ画像転送ツールCamera View Picther
GitHubでソース公開中 カメラ
![Page 21: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/21.jpg)
21
SmartWatchとのリンク
SmartWatch
管理アプリ
SmartWatch
Bluetooth
Android側
Luarida
Broadcast通信
Lua Script
local gwide,gheightcanvas.setMainBmp(canvas.setWorkBmp(canvas.putCls()canvas.workCls()local xs = 56local ys = 65workdroiddraw( 0, 0,workdroiddraw( 56, sprite.init()sprite.define( 1, 0, 0,sprite.define( 2, 56, 0,swatch.start()
Bitmapキャッチャ
![Page 22: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/22.jpg)
Luaridaの対応
![Page 23: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/23.jpg)
23
Luaridaのグラフィック
Luaridaのグラフィックは内部にワーク画面 と メイン画面 をあわせ持つ構造
SmartWatch画面
Broadcast通信
メイン画面をBroadcast通信
![Page 24: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/24.jpg)
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]]]) バイブレータを振動させる
![Page 25: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/25.jpg)
25
swatch.getAccel
SmartWatchの加速度センサのX,Y,Z方向の成分を取得します。
引数なし
戻り値 X , Y , Z の3つ
X: X方向の加速度成分 Y: Y方向の加速度成分 Z: Z方向の加速度成分
x,y,z = swatch.getAccel()
![Page 26: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/26.jpg)
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)
![Page 27: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/27.jpg)
27
swatch.start([PackageName])
SmartWatchアプリを起動します。引数を省略した場合、Bitmapキャッチャを起動します。
引数 PackageName: SmartWatchアプリのパッケージ名を指定します。
戻り値なし
swatch.start("com.sonyericsson.extras.liveware.extension.music")
![Page 28: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/28.jpg)
28
swatch.stop([PackageName])
SmartWatchアプリを終了させます。 引数を省略した場合は、Bitmapキャッチャを終了させます。 SmartWatch用コマンドの使用が終了したときは、Bitmapキャッチャを終了させてください。
引数 PackageName: SmartWatchアプリのパッケージ名を指定します。
戻り値なし
swatch.stop("com.sonyericsson.extras.liveware.extension.music")
![Page 29: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/29.jpg)
29
swatch.stouch([Sprite番号,..])
SmartWatchの画面に表示されているスプライトにタッチしている場合、そのスプライトの番号を取得します。 基本的にsprite.touch()と同じ使い方です。
引数 Sprite番号: スプライト番号です。0~63まで、 カンマで区切っていくつでも指定できます。戻り値 タッチされているスプライトの数は1つとは限らないので、配列(Luaテーブル)で返ります。
local tsp={} --配列宣言 tsp = swatch.stouch()
![Page 30: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/30.jpg)
30
swatch.touch()
SmartWatch画面へのタッチ座標、及び上下左右のスィープ結果を取得します。
引数なし
戻り値 X,Y,Stausの3つ X: 最後にタッチしたX座標 (メイン画面サイズに換算された座標値が返ります) Y: 最後にタッチしたY座標 (メイン画面サイズに換算された座標値が返ります) Status: 画面タッチ及びスィープ結果。
![Page 31: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/31.jpg)
31
swatch.touch()
Status値は下記です。
0: タッチしている 1: タッチしていない 2: 長時間タッチしている 3: 上スィープした 4: 下スィープした 5: 左スィープした 6: 右スィープした
x,y,s = swatch.touch()
![Page 32: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/32.jpg)
32
swatch.vibrator([On[,Off[,Repeat]]])
SmartWatchのバイブレータを振動させます。 引数省略時は、0.5sec間、一度だけ振動します。 OnTimeのみ指定した場合は、指定時間、一度だけ振動します。
引数 On: 振動時間。msで指定します。 Off: 振動停止時間。msで指定します。 Repeat: 繰り返し回数。
戻り値なし
swatch.vibrator(100, 200, 3)
![Page 33: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/33.jpg)
33
デモプログラム
![Page 34: すまべん関西 JAG神戸支部共催和歌山合宿発表資料](https://reader033.fdocument.pub/reader033/viewer/2022052311/55661378d8b42a06318b4dd1/html5/thumbnails/34.jpg)
ご清聴ありがとうございました