SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Luaridaで作る
    SmartWatchプログラム

             たろサ(@momoonga)
             山本三七男
2


 自己紹介




和歌山県
 有田市



       今ココ
内 容
(1)前回の発表から
(2)Luaridaとは
(3)SmartWatchとは
(4)LuaridaとSmartWatchのリンク
(5)Luaridaの対応
(6)デモプログラム
4


      前回の発表


     何、作ろうか?

・SmartWatch用スクリプト

・Ruputer エミュレータ

・ひとり AR
5


      前回の発表

                  Luaridaで作れる
     何、作ろうか?       ようにしました

・SmartWatch用スクリプト

・Ruputer エミュレータ

・ひとり AR
Luaridaとは
7


    壁が高いAndroid開発


・Eclipseのインストール
・Android-SDKのインストール
・Androidのバージョン違いの理解
・もろもろ・・・



         ポケコンのように、
          Android単体で
        プログラムしたいな。
8


              Luaスクリプトの実装

         Luaはリオデジャネイロ・カトリカ大学で
             開発されたスクリプト言語
        特徴: 高速な動作、高い移植性、省メモリ

        ルアリダ
       (Luarida)

                   LuaをAndroidに
                     移植しました。
                   105命令を独自実装!
IS01
9


前回の発表時のLua

2011年 9月(TIOBE Programming Community Index)

                        さらに上昇 13位
10


   前回の発表時のLua

  2011年 9月(TIOBE Programming Community Index)

                          さらに上昇 13位

先月はRubyを抜いて一瞬11位に
11


        今月のLua

2012年 6月(TIOBE Programming Community Index)

                        がっびょ~ん何これ
SmartWatchとは
13


          SmartWatch とは
                                LiveViewの
                                  後継機




              Bluetooth


Android                   SmartWatch MN2
14


             SmartWatchアプリの仕組み

              前回の発表では
サービスとして常駐        SmartWatchアプリ     画像のみの送信
                 を管理
SmartWatch
 アプリ(1)
           イベント
SmartWatch          LiveWare                 Smart
 アプリ(2)    画面データ    マネージャ                    Watch
SmartWatch                       Bluetooth
 アプリ(3)
           タッチデータ
                        SmartWatchとのやり取り
                        は、すべてLiveWareマネー
                        ジャが行っている
15


             SmartWatchアプリの仕組み

           すいません。
サービスとして常駐
          間違いでした。
            SmartWatchアプリ 画像のみの送信
                 を管理
SmartWatch
 アプリ(1)
           イベント
SmartWatch          LiveWare               Smart
 アプリ(2)    画面データ    マネージャ                  Watch
SmartWatch                     Bluetooth
 アプリ(3)
           タッチデータ
                        SmartWatchとのやり取り
                        は、すべてLiveWareマネー
                        ジャが行っている
16


             SmartWatchアプリの仕組み



サービスとして常駐                                画像のみの送信
SmartWatch
 アプリ(1)
             イベント       SmartWatch
SmartWatch               管理アプリ                     Smart
 アプリ(2)    画面データ “com.sonyericsson.                Watch
                    extras.smartwatch”
SmartWatch                             Bluetooth
 アプリ(3)
           タッチデータ
                               SmartWatch本体とのやり
                               取りは、すべてSmartWatch
                               アプリが行っている。
Luaridaと
SmartWatch
  のリンク
18


           SmartWatchとのリンク

          Bitmapキャッチャというアプリを作りました
                   Bitmap
                   キャッチャ      Smart            Smart
Android                       Watch            Watch
 アプリ Broadcast通信             管理アプリ
                                       Bluetooth
                            Android側

      Bitmapキャッチャの機能
       ・AndroidアプリからBitmap画像を受け取って表示する。
       ・AndroidアプリからVibrator命令を受け取って振動させる。
       ・画面へのタッチ情報をBroadcast送信する。
       ・スィープ情報を、Broadcast送信する。
       ・加速度センサの値を、Broadcast送信する。
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


             SmartWatchとのリンク


Bitmapキャッチャ            Bitmap
                       キャッチャ      Smart
の使用例                              Watch
                                 管理アプリ
                                           Bluetooth
                                Android側

              Broadcast通信


 カメラ画像転送ツール
 Camera View Picther

 GitHubでソース公開中           カメラ
21


                               SmartWatchとのリンク



Lua Script
local gwide,gheight        Luarida           Bitmap
canvas.setMainBmp(
canvas.setWorkBmp(
canvas.putCls()
                                             キャッチャ      Smart            Smart
canvas.workCls()
local xs = 56
                                                        Watch            Watch
local ys = 65
workdroiddraw( 0, 0,
                                                       管理アプリ
workdroiddraw( 56,
sprite.init()
sprite.define( 1, 0, 0,                                          Bluetooth
sprite.define( 2, 56, 0,
swatch.start()                       Broadcast
                                     通信
                                                      Android側
Luaridaの対応
23


         Luaridaのグラフィック

       Luaridaのグラフィックは内部に
ワーク画面 と メイン画面 をあわせ持つ構造




メイン画面を           Broadcast
                 通信
                             SmartWatch

Broadcast通信                     画面
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


                 swatch.getAccel


SmartWatchの加速度センサのX,Y,Z方向の成分を取得します。

引数なし

戻り値
 X , Y , Z の3つ

  X: X方向の加速度成分
  Y: Y方向の加速度成分
  Z: Z方向の加速度成分

     x,y,z = swatch.getAccel()
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


           swatch.start([PackageName])


SmartWatchアプリを起動します。
引数を省略した場合、Bitmapキャッチャを起動します。

引数
 PackageName: SmartWatchアプリのパッケージ名を指定します。

戻り値なし
   swatch.start("com.sonyericsson.extras.liveware.extension.music")
28


            swatch.stop([PackageName])


 SmartWatchアプリを終了させます。
 引数を省略した場合は、Bitmapキャッチャを終了させます。
 SmartWatch用コマンドの使用が終了したときは、Bitmapキャッチャ
を終了させてください。

引数
 PackageName: SmartWatchアプリのパッケージ名を指定します。

戻り値なし
   swatch.stop("com.sonyericsson.extras.liveware.extension.music")
29


          swatch.stouch([Sprite番号,..])


 SmartWatchの画面に表示されているスプライトにタッチしている
場合、そのスプライトの番号を取得します。
 基本的にsprite.touch()と同じ使い方です。

引数
 Sprite番号: スプライト番号です。0~63まで、
           カンマで区切っていくつでも指定できます。
戻り値
 タッチされているスプライトの数は1つとは限らないので、配列(Lua
テーブル)で返ります。
     local tsp={} --配列宣言
     tsp = swatch.stouch()
30


           swatch.touch()


 SmartWatch画面へのタッチ座標、及び上下左右のスィープ結果を
取得します。

引数なし

戻り値
  X,Y,Stausの3つ
  X: 最後にタッチしたX座標
    (メイン画面サイズに換算された座標値が返ります)
  Y: 最後にタッチしたY座標
    (メイン画面サイズに換算された座標値が返ります)
  Status: 画面タッチ及びスィープ結果。
31


                          swatch.touch()


Status値は下記です。

    0:   タッチしている
    1:   タッチしていない
    2:   長時間タッチしている
    3:   上スィープした
    4:   下スィープした
    5:   左スィープした
    6:   右スィープした
         x,y,s = swatch.touch()
32


   swatch.vibrator([On[,Off[,Repeat]]])


 SmartWatchのバイブレータを振動させます。
 引数省略時は、0.5sec間、一度だけ振動します。
 OnTimeのみ指定した場合は、指定時間、一度だけ振動します。

引数
 On:    振動時間。msで指定します。
 Off:   振動停止時間。msで指定します。
 Repeat: 繰り返し回数。

戻り値なし

   swatch.vibrator(100, 200, 3)
33


デモプログラム
ご清聴ありがとうございました

Contenu connexe

En vedette

Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
melpon
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 

En vedette (11)

群馬県桐生市Facebookセミナー150分in桐生商工会議所
群馬県桐生市Facebookセミナー150分in桐生商工会議所群馬県桐生市Facebookセミナー150分in桐生商工会議所
群馬県桐生市Facebookセミナー150分in桐生商工会議所
 
Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
 
東京都国分寺市Facebookセミナー2時間in国分寺市商工会
東京都国分寺市Facebookセミナー2時間in国分寺市商工会東京都国分寺市Facebookセミナー2時間in国分寺市商工会
東京都国分寺市Facebookセミナー2時間in国分寺市商工会
 
長野県北安曇郡池田町Facebookセミナー2回講座その2:池田町商工会
長野県北安曇郡池田町Facebookセミナー2回講座その2:池田町商工会長野県北安曇郡池田町Facebookセミナー2回講座その2:池田町商工会
長野県北安曇郡池田町Facebookセミナー2回講座その2:池田町商工会
 
2014盛夏キャンペーン
2014盛夏キャンペーン2014盛夏キャンペーン
2014盛夏キャンペーン
 
デブサミ関西2015登壇資料 関西で働くという生き方
デブサミ関西2015登壇資料 関西で働くという生き方デブサミ関西2015登壇資料 関西で働くという生き方
デブサミ関西2015登壇資料 関西で働くという生き方
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 

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

日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
eijikushida
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
techtalkdwango
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
 

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

Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)日本Androidの会のハンズオンセミナー資料(20130315)
日本Androidの会のハンズオンセミナー資料(20130315)
 
Android0422
Android0422Android0422
Android0422
 
Talk about Internet of Things
Talk about Internet of ThingsTalk about Internet of Things
Talk about Internet of Things
 
インフラジスティックスが提供するクロスプラットフォーム対応データ視覚化コンポーネント
インフラジスティックスが提供するクロスプラットフォーム対応データ視覚化コンポーネント インフラジスティックスが提供するクロスプラットフォーム対応データ視覚化コンポーネント
インフラジスティックスが提供するクロスプラットフォーム対応データ視覚化コンポーネント
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
Android Wear Apps
Android Wear AppsAndroid Wear Apps
Android Wear Apps
 
Whatap_Pitching_Deck_r12(ja).pdf
Whatap_Pitching_Deck_r12(ja).pdfWhatap_Pitching_Deck_r12(ja).pdf
Whatap_Pitching_Deck_r12(ja).pdf
 
System.Drawing 周りの話
System.Drawing 周りの話System.Drawing 周りの話
System.Drawing 周りの話
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる
 
ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法
 
AI x ロボティクス x ブロックチェーンによる次世代自律テクノロジー
AI x ロボティクス x ブロックチェーンによる次世代自律テクノロジーAI x ロボティクス x ブロックチェーンによる次世代自律テクノロジー
AI x ロボティクス x ブロックチェーンによる次世代自律テクノロジー
 
Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
 
Mixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 RecapMixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 Recap
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
sit-tokyo2022_sap-data-intelligence
sit-tokyo2022_sap-data-intelligencesit-tokyo2022_sap-data-intelligence
sit-tokyo2022_sap-data-intelligence
 
Wear2.0 史上最大のアップデート
Wear2.0 史上最大のアップデートWear2.0 史上最大のアップデート
Wear2.0 史上最大のアップデート
 
物流・社会インフラWG 活動内容のご紹介 Live Video Analytics は「カメラ+AI」ソリューション開発をどう変える?
物流・社会インフラWG 活動内容のご紹介 Live Video Analytics は「カメラ+AI」ソリューション開発をどう変える?物流・社会インフラWG 活動内容のご紹介 Live Video Analytics は「カメラ+AI」ソリューション開発をどう変える?
物流・社会インフラWG 活動内容のご紹介 Live Video Analytics は「カメラ+AI」ソリューション開発をどう変える?
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 
Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)
 

Plus de 三七男 山本

Plus de 三七男 山本 (20)

GR-CITRUS搭載Rubyファームv2.47~の 説明資料 ver3.0
GR-CITRUS搭載Rubyファームv2.47~の 説明資料 ver3.0GR-CITRUS搭載Rubyファームv2.47~の 説明資料 ver3.0
GR-CITRUS搭載Rubyファームv2.47~の 説明資料 ver3.0
 
2018おうちハックLT小ネタ大会「小型ファンヒーターハック」
2018おうちハックLT小ネタ大会「小型ファンヒーターハック」2018おうちハックLT小ネタ大会「小型ファンヒーターハック」
2018おうちハックLT小ネタ大会「小型ファンヒーターハック」
 
mruby搭載ボードGR-CITRUSのRubyファームVer2.44~の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.44~の説明mruby搭載ボードGR-CITRUSのRubyファームVer2.44~の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.44~の説明
 
GR-CITRUS搭載Rubyファームv2.42~の 説明資料 ver2.7
GR-CITRUS搭載Rubyファームv2.42~の 説明資料 ver2.7GR-CITRUS搭載Rubyファームv2.42~の 説明資料 ver2.7
GR-CITRUS搭載Rubyファームv2.42~の 説明資料 ver2.7
 
GR-CITRUS リファレンス
GR-CITRUS リファレンスGR-CITRUS リファレンス
GR-CITRUS リファレンス
 
ミニハッカソンの作品製作 参考資料
ミニハッカソンの作品製作 参考資料ミニハッカソンの作品製作 参考資料
ミニハッカソンの作品製作 参考資料
 
GRデザインコンテスト2017 ファイナル説明資料
GRデザインコンテスト2017 ファイナル説明資料GRデザインコンテスト2017 ファイナル説明資料
GRデザインコンテスト2017 ファイナル説明資料
 
mruby搭載ボード GR-CITRUS の新しい開発環境の紹介
mruby搭載ボード GR-CITRUS の新しい開発環境の紹介mruby搭載ボード GR-CITRUS の新しい開発環境の紹介
mruby搭載ボード GR-CITRUS の新しい開発環境の紹介
 
ロボスピン組み立て手順
ロボスピン組み立て手順ロボスピン組み立て手順
ロボスピン組み立て手順
 
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
 
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
mruby搭載ボードGR-CITRUSのRubyファームVer2.35の説明
 
ロボムーバー組み立て手順
ロボムーバー組み立て手順ロボムーバー組み立て手順
ロボムーバー組み立て手順
 
GR-CITRUSハンズオン
GR-CITRUSハンズオンGR-CITRUSハンズオン
GR-CITRUSハンズオン
 
モータ制御基板 SAMBOU-KANとロボホンタンク
モータ制御基板 SAMBOU-KANとロボホンタンクモータ制御基板 SAMBOU-KANとロボホンタンク
モータ制御基板 SAMBOU-KANとロボホンタンク
 
ロボホンタンクを作る会
ロボホンタンクを作る会ロボホンタンクを作る会
ロボホンタンクを作る会
 
IoTLT 大阪 Vol.6
IoTLT 大阪 Vol.6IoTLT 大阪 Vol.6
IoTLT 大阪 Vol.6
 
Ruby関西76 gr citrusの使い方#2
Ruby関西76 gr citrusの使い方#2Ruby関西76 gr citrusの使い方#2
Ruby関西76 gr citrusの使い方#2
 
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータルネサスナイト10発表資料 Rubyで作るラムネシュータ
ルネサスナイト10発表資料 Rubyで作るラムネシュータ
 
GR-CITRUS用モータ基板の回路図
GR-CITRUS用モータ基板の回路図GR-CITRUS用モータ基板の回路図
GR-CITRUS用モータ基板の回路図
 
ET2016展示パネル
ET2016展示パネルET2016展示パネル
ET2016展示パネル
 

Dernier

Dernier (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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

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