35
Android + Runtime Environment 「コンピュータを楽しもう!」という ブログを書いています。 たろサ(@momoonga) 山本三七男

Android + Runtime Environment

  • Upload
    -

  • View
    597

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Android + Runtime Environment

Android +

Runtime Environment 「コンピュータを楽しもう!」という ブログを書いています。

たろサ(@momoonga)

山本三七男

Page 2: Android + Runtime Environment

Luarida製作動機

Page 3: Android + Runtime Environment

3

製作動機

どこでも、ちょこちょこプログラムするのが好きだった。

1980年代ポケコンBASIC

90年代ザウルスBASIC

2000年代944BASIC

Page 4: Android + Runtime Environment

4

製作動機

Androidでもちょこちょこプログラム

SL4A(Scripting Layer for Android)環境

・Python・Perl・JRuby・Lua・JavaScript

う~ん。取っつきにくいなぁ!

Page 5: Android + Runtime Environment

5

製作動機

もっと、敷居の低いもの

そう、BASICのような・・・

・Eclipseはインストールしなくていい。

・Androidのバージョン違いも関係なく。

・簡単・単機能で、入り易いもの。

Page 6: Android + Runtime Environment

6

製作動機

無ければ作るしかない

移植が簡単そうな

 ・Lua言語

Androidに 移植。

イメージはBASIC

Page 7: Android + Runtime Environment

7

イメージはBASIC

10 print”Hello World.”20 goto 10

while(true)do print(”Hello World.”)end

さすがに、こんな感じに

無ければ作る

Page 8: Android + Runtime Environment

Luaridaについて

Page 9: Android + Runtime Environment

9

Luaridaの特徴

1.昔のBASICのような命令体系

2.Android単体プログラム

3.開発環境(JotaTextEditor)

4.アプリ配布サーバー用意

5.ADK, MicroBridge接続可能(Sarida)

Page 10: Android + Runtime Environment

10

イメージはBASIC

「2種類のグラフィック画面」持っているのは、それだけ!!

Page 11: Android + Runtime Environment

11

イメージはBASIC

メイン画面

Bitmap用ワーク画面

「2種類のグラフィック画面」持っているのは、それだけ!!

W = color(255,255,255)R = color(255,0,0)canvas.drawCls(W)

for x=0,100,2 do canvas.drawLine(x*2,0,200-x*2, 200, R) canvas.drawLine(0, x*2, 200, 200-x*2, R)end

Page 12: Android + Runtime Environment

12

イメージはBASIC

「ダイアログ・トーストも簡単」

a = dialog( "", "メッセージのみです。" )a = dialog( "", "OKで閉じます",1 )a = dialog( "a= "..a, "Yes No のサンプル", 2 )a = dialog( "a= "..a, "Yes No Cancelのサンプル",3)toast( "トーストです。a= "..a )

Page 13: Android + Runtime Environment

13

イメージはBASIC

「リストダイアログも簡単」

item.clear()item.add("みかん", 0 )item.add("たちうお", 1 )item.add("海", 0 )t = item.list( "好きなものを選んでください" )t = item.radio( "好きなものを選んでください", 2 )t = item.check( "好きなものを選んでください" )

Page 14: Android + Runtime Environment

14

Luaridaのコマンド一覧

Page 15: Android + Runtime Environment

Lua言語について

Page 16: Android + Runtime Environment

16

Lua言語の簡単な紹介

構文

while(exp)do blockend

repeat blockuntil(exp)

if(exp)then blockelseif(exp)then blockelse blockend

Page 17: Android + Runtime Environment

17

Lua言語の簡単な紹介

構文

while(exp)do if(exp)then break endend

for i=exp, exp [,exp] do blockend

Page 18: Android + Runtime Environment

18

Lua言語の簡単な紹介

構文

条件式

if(exp)then blockend

== > < <= >= ~= and or

Page 19: Android + Runtime Environment

19

function f() a=10 local b=20 do local b=30 end print( b )end

Lua言語の簡単な紹介

変数

グローバル変数ローカル変数

20

Page 20: Android + Runtime Environment

20

a={ b=20, c=30 } ⇒a.b a.c ⇒a[“b”] a[“c”]str =”b” ⇒a[str]

Lua言語の簡単な紹介

20

テーブル

a={ b={ c=30, d=40 } } ⇒a.b.c a.b.d ⇒a[“b”].c ⇒a[“b”][“c”] ⇒a.b[“c”]

Page 21: Android + Runtime Environment

21

Lua言語の簡単な紹介

テーブル(配列)

a={ }  1~です ⇒a[1]=10 × a.1⇒a={ 20, 30, 40 } ⇒a[1]=20 a[2]=30 ⇒a[3]=40for i=1,10 do a[i]={ }end ⇒a[1][1] a[1][2]

a[1]={ b=20, c=30 }a[2]={ b=21, c=31 } ⇒a[1].b a[1].c ⇒a[2].b a[2].c ⇒a[2][“b”] a[2][“c”] a={ b={} } ⇒a.b[1] ⇒a.b[2]

a={ } 初期化されます

Page 22: Android + Runtime Environment

アプリの登録

公開方法

Page 23: Android + Runtime Environment

23

DOROKURI

Page 24: Android + Runtime Environment

24

DoroLuarida

Luaridaユーザ

スクリプトapk化サイト

Androidマーケット

Androidマーケットに登録できる

スクリプト作成(foo.lua)

foo.apk

タオソフトウェアさんが実現してくれました。

DOROKURI

Page 25: Android + Runtime Environment

25

DoroLuarida登録

apkファイル名アプリ名

アイコンは無ければデフォルト

素材データはZIPファイル

公開オプション

Page 26: Android + Runtime Environment

Luarida,

SaridaSAKURA

の起動

Page 27: Android + Runtime Environment

27

起動すると

/sdcard /sdcard/luarida/luarida.lua

これが起動し、

ここから始まります。

/sdcard /sdcard/SaridaSAKURA/sarida.lua

Luarida起動

SaridaSAKURA起動

/sdcard/SaridaSAKURA/sketch_bin/sketch.bin

GR-SAKURA

Page 28: Android + Runtime Environment

SaridaSAKURA

について

Page 29: Android + Runtime Environment

29

Saridaとは

LuaでArduinoのようなマイコンボードを制御しようと思って開発中

Page 30: Android + Runtime Environment

30

何故ゆえ?

2つのプログラムが必要

Android

Arduino

Page 31: Android + Runtime Environment

31

お手軽開発に向けて

MicroBridge対応Luarida(ルアリダ)

SaridaSAKURA(サリーダ桜)

ADK対応

Page 32: Android + Runtime Environment

32

実装コマンドなど

Saridaへの実装

adk.pinMode(pin, mode)

pin: ピン番号

mode: 0:Input, 1:Output

ピンモードの切り替え

デジタルライト

adk.recv( [timeout] )

timeout: 受信タイムアウト(s)

戻り値: 受信データ,データサイズ

デジタルリード

adk.digitalWrite(pin, value)

pin: ピン番号

value: 0:LOW, 1: HIGH

アナログライト

adk.analogWrite(pin, value)

pin: ピン番号

value: 出力PWM比率(0~255)

analogWriteDAC(pin, value)

value: DAC出力(0~4095)

adk.digitalRead(pin)

pin: ピン番号

戻り値: 0:LOW, 1:HIGH

adk.analogRead(pin)

pin: ピン番号

戻り値: 10ビットの値(0~1023)

アナログリード

バイト送信adk.send(data, length)

data: バイトデータ

length: データサイズ

バイト受信

Page 33: Android + Runtime Environment

33

GR-SAKURAデモ

実はまだ、ADK通信のところにバグがあって、ちゃんと動いていません。

Page 34: Android + Runtime Environment

34

ロボットを作りました

MicroBridge-Luarida間はソケット通信しています。大人の科学付録の「卓上ロボット掃除機」をAndroidから操作できるように改造させてもらいました。

MicroBridgeとLuaridaをつなげて、Luaridaで操作するロボットを作りました。

Page 35: Android + Runtime Environment

ご清聴ありがとう

ございました

[email protected]