SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Android +
 Runtime Environment
 「コンピュータを楽しもう!」という
ブログを書いています。




                     たろサ(@momoonga)
                     山本三七男
Luarida製作動機
3


         製作動機


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



1980年代   90年代
ポケコン     ザウルス    2000年代
BASIC    BASIC   944BASIC
4


    製作動機

  Androidでも
ちょこちょこプログラム
   SL4A(Scripting Layer for
   Android)環境

   ・Python・Perl・JRuby
   ・Lua・JavaScript


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


           製作動機


      もっと、
   敷居の低いもの
 そう、BASICのような・・・
・Eclipseはインストールしなくていい。
・Androidのバージョン違いも関係なく。
・簡単・単機能で、入り易いもの。
6


   製作動機

無ければ作るしかない

  移植が簡単そうな
   ・Lua言語
  Androidに 移植。

 イメージはBASIC
7


 イメージはBASIC


10 print”Hello World.”
20 goto 10
            さすがに、こんな感じに


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


無ければ作る
Luaridaについて
9


      Luaridaの特徴

1.昔のBASICのような命令体系
2.Android単体プログラム
3.開発環境(JotaTextEditor)
4.アプリ配布サーバー用意

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


   イメージはBASIC

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


   イメージはBASIC

 「2種類のグラフィック画面」
持っているのは、それだけ!!
           W = color(255,255,255)
           R = color(255,0,0)
           canvas.drawCls(W)
 Bitmap用
 ワーク画面     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




  メイン画面
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 )
13


        イメージはBASIC

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




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


Luaridaのコマンド一覧
Lua言語について
16


        Lua言語の簡単な紹介

構文
while(exp)do   if(exp)then
 block           block
end            elseif(exp)then
                 block
repeat         else
 block           block
until(exp)     end
17


         Lua言語の簡単な紹介

構文
     while(exp)do
      if(exp)then break end
     end
     for i=exp, exp [,exp] do
      block
     end
18


        Lua言語の簡単な紹介

構文
 条件式
     == > < <= >= ~=
     and or
 if(exp)then
   block
 end
19


      Lua言語の簡単な紹介

変数
 function f()   グローバル変数
   a=10         ローカル変数
   local b=20
   do
     local b=30
   end          20
   print( b )
 end
20


           Lua言語の簡単な紹介

テーブル
a={ b=20, c=30 }
 ⇒a.b a.c
 ⇒a[“b”] a[“c”]    a={
str =”b”             b={ c=30, d=40 }
 ⇒a[str]             }
                    ⇒a.b.c a.b.d
                    ⇒a[“b”].c
   20               ⇒a[“b”][“c”]
                    ⇒a.b[“c”]
21


           Lua言語の簡単な紹介

 テーブル(配列) a={ } 初期化されます
a={ }  1~です       a[1]={ b=20, c=30 }
 ⇒a[1]=10         a[2]={ b=21, c=31 }
 ×⇒a.1            ⇒a[1].b a[1].c
a={ 20, 30, 40 }  ⇒a[2].b a[2].c
 ⇒a[1]=20 a[2]=30 ⇒a[2][“b”] a[2][“c”]
 ⇒a[3]=40             a={ b={} }
for i=1,10 do         ⇒a.b[1]
 a[i]={ }             ⇒a.b[2]
end
 ⇒a[1][1] a[1][2]
アプリの登録
 公開方法
23


DOROKURI
24


              DoroLuarida

                   タオソフトウェアさんが
 Luaridaユーザ        実現してくれました。
  スクリプト作成
  (foo.lua)

                        DOROKURI
                スクリプトapk化
    foo.apk        サイト




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


DoroLuarida登録




   apkファイル名アプリ名
      アイコンは無ければデフォルト


         素材データはZIPファイル

           公開オプション
Luarida,
SaridaSAKURA
    の起動
27


                 起動すると


           Luarida起動
/sdcard      /sdcard/luarida/luarida.lua

                                  これが起動し、
                                 ここから始まります。
          SaridaSAKURA起動
/sdcard      /sdcard/SaridaSAKURA/sarida.lua
      /sdcard/SaridaSAKURA/sketch_bin/sketch.bin


                                           GR-SAKURA
SaridaSAKURA
   について
29


        Saridaとは

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


             何故ゆえ?

2つのプログラムが必要
   Android




   Arduino
31


      お手軽開発に向けて


MicroBridge対応
   Luarida
   (ルアリダ)

ADK対応
   SaridaSAKURA
   (サリーダ桜)
32


                               実装コマンドなど

    Saridaへの実装
ピンモードの切り替え                         アナログライト
adk.pinMode(pin, mode)             adk.analogWrite(pin, value)
pin: ピン番号                          pin: ピン番号
mode: 0:Input, 1:Output            value: 出力PWM比率(0~255)
                                   analogWriteDAC(pin, value)
デジタルライト                            value: DAC出力(0~4095)
adk.digitalWrite(pin, value)
pin: ピン番号                          バイト送信
value: 0:LOW, 1: HIGH              adk.send(data, length)
                                   data: バイトデータ
デジタルリード                            length: データサイズ
adk.digitalRead(pin)
pin: ピン番号                          バイト受信
戻り値: 0:LOW, 1:HIGH                 adk.recv( [timeout] )
アナログリード                            timeout: 受信タイムアウト(s)
                                   戻り値: 受信データ,データサイズ
adk.analogRead(pin)
pin: ピン番号
戻り値: 10ビットの値(0~1023)
33


GR-SAKURAデモ

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


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


 luarida-fun-club@googlegroups.com

Weitere ähnliche Inhalte

Was ist angesagt?

brainfuckを吐く自作言語bf-reusable
brainfuckを吐く自作言語bf-reusablebrainfuckを吐く自作言語bf-reusable
brainfuckを吐く自作言語bf-reusableroodni
 
Interactive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGenInteractive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGenAtsushi Tadokoro
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013Ryo Sakamoto
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
Interactive Music II SuperCollider入門 5 時間構造をつくる
Interactive Music II SuperCollider入門 5  時間構造をつくるInteractive Music II SuperCollider入門 5  時間構造をつくる
Interactive Music II SuperCollider入門 5 時間構造をつくるAtsushi Tadokoro
 
Misosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiMisosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiume doblock
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたRyo Sakamoto
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算Norishige Fukushima
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-treeShin-ya Koga
 

Was ist angesagt? (11)

brainfuckを吐く自作言語bf-reusable
brainfuckを吐く自作言語bf-reusablebrainfuckを吐く自作言語bf-reusable
brainfuckを吐く自作言語bf-reusable
 
as-2. メモリと CPU
as-2. メモリと CPUas-2. メモリと CPU
as-2. メモリと CPU
 
Interactive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGenInteractive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGen
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
Interactive Music II SuperCollider入門 5 時間構造をつくる
Interactive Music II SuperCollider入門 5  時間構造をつくるInteractive Music II SuperCollider入門 5  時間構造をつくる
Interactive Music II SuperCollider入門 5 時間構造をつくる
 
Misosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiMisosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobi
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-tree
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 

Andere mochten auch

Brandes Realty Llc Flat Fee Listing Program This Is How It Works!
Brandes Realty Llc Flat Fee Listing Program This Is How It Works!Brandes Realty Llc Flat Fee Listing Program This Is How It Works!
Brandes Realty Llc Flat Fee Listing Program This Is How It Works!Denice Brandes
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppersKiyoshi Ogawa
 
Presentation on big letters in ppt
Presentation on big letters in pptPresentation on big letters in ppt
Presentation on big letters in pptErwin Koster
 
En el 2000..
En el 2000..En el 2000..
En el 2000..Yazmin_CZ
 
Quanto Me Amei De Verdade
Quanto Me Amei De VerdadeQuanto Me Amei De Verdade
Quanto Me Amei De VerdadeGlaucia Menezes
 
Regles de comportament en internet2
Regles de comportament en internet2Regles de comportament en internet2
Regles de comportament en internet2estrellalucya
 
Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Pablo Tamarit
 
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronics
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronicsDeel 1 bedrijfsprofiel en merkidentificatie-beats electronics
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronicsMats Blankers
 

Andere mochten auch (20)

Brandes Realty Llc Flat Fee Listing Program This Is How It Works!
Brandes Realty Llc Flat Fee Listing Program This Is How It Works!Brandes Realty Llc Flat Fee Listing Program This Is How It Works!
Brandes Realty Llc Flat Fee Listing Program This Is How It Works!
 
.net micro framework for toppers
.net micro framework for toppers.net micro framework for toppers
.net micro framework for toppers
 
Presentation on big letters in ppt
Presentation on big letters in pptPresentation on big letters in ppt
Presentation on big letters in ppt
 
Estamos no Inferno
Estamos no InfernoEstamos no Inferno
Estamos no Inferno
 
Yolima
YolimaYolima
Yolima
 
Omar alonso
Omar alonsoOmar alonso
Omar alonso
 
En el 2000..
En el 2000..En el 2000..
En el 2000..
 
Muzej stripa show
Muzej stripa showMuzej stripa show
Muzej stripa show
 
Acerca de mi
Acerca de miAcerca de mi
Acerca de mi
 
Parfume
ParfumeParfume
Parfume
 
20121104
2012110420121104
20121104
 
Romaaaaa
RomaaaaaRomaaaaa
Romaaaaa
 
Sandoval.thies3k (2)
Sandoval.thies3k (2)Sandoval.thies3k (2)
Sandoval.thies3k (2)
 
Quanto Me Amei De Verdade
Quanto Me Amei De VerdadeQuanto Me Amei De Verdade
Quanto Me Amei De Verdade
 
Se Alguem Te Procurar
Se Alguem Te ProcurarSe Alguem Te Procurar
Se Alguem Te Procurar
 
Yasuní
YasuníYasuní
Yasuní
 
Regles de comportament en internet2
Regles de comportament en internet2Regles de comportament en internet2
Regles de comportament en internet2
 
Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012
 
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronics
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronicsDeel 1 bedrijfsprofiel en merkidentificatie-beats electronics
Deel 1 bedrijfsprofiel en merkidentificatie-beats electronics
 
Meneses guia 1
Meneses guia 1Meneses guia 1
Meneses guia 1
 

Ähnlich wie Android + Runtime Environment

イチからはじめるLuarida-マイコン
イチからはじめるLuarida-マイコンイチからはじめるLuarida-マイコン
イチからはじめるLuarida-マイコン三七男 山本
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣三七男 山本
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 Fujio Kojima
 
MediaPipeの紹介
MediaPipeの紹介MediaPipeの紹介
MediaPipeの紹介emakryo
 
Matlab演習
Matlab演習 Matlab演習
Matlab演習 noname409
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesTakeshi Komiya
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startupsIchiro Fukuda
 
OrigenBoard and PandaBoard
OrigenBoard and PandaBoardOrigenBoard and PandaBoard
OrigenBoard and PandaBoardandroid sola
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島Tomoaki Shimizu
 
Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析Nagato Kasaki
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングJun Saito
 
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作Takashi Yamanoue
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったCHY72
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るNISHIMOTO Keisuke
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御するHirokazu Nishio
 
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法samemoon
 

Ähnlich wie Android + Runtime Environment (20)

イチからはじめるLuarida-マイコン
イチからはじめるLuarida-マイコンイチからはじめるLuarida-マイコン
イチからはじめるLuarida-マイコン
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
MediaPipeの紹介
MediaPipeの紹介MediaPipeの紹介
MediaPipeの紹介
 
Matlab演習
Matlab演習 Matlab演習
Matlab演習
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startups
 
OrigenBoard and PandaBoard
OrigenBoard and PandaBoardOrigenBoard and PandaBoard
OrigenBoard and PandaBoard
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島cocos2d-x公開講座 in 鹿児島
cocos2d-x公開講座 in 鹿児島
 
Inside of Asakusa DSL
Inside of Asakusa DSLInside of Asakusa DSL
Inside of Asakusa DSL
 
Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
 
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御する
 
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
 
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
 

Mehr von 三七男 山本

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の説明三七男 山本
 
ロボムーバー組み立て手順
ロボムーバー組み立て手順ロボムーバー組み立て手順
ロボムーバー組み立て手順三七男 山本
 
モータ制御基板 SAMBOU-KANとロボホンタンク
モータ制御基板 SAMBOU-KANとロボホンタンクモータ制御基板 SAMBOU-KANとロボホンタンク
モータ制御基板 SAMBOU-KANとロボホンタンク三七男 山本
 
ロボホンタンクを作る会
ロボホンタンクを作る会ロボホンタンクを作る会
ロボホンタンクを作る会三七男 山本
 
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用モータ基板の回路図三七男 山本
 

Mehr von 三七男 山本 (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展示パネル
 

Android + Runtime Environment

  • 1. Android + Runtime Environment 「コンピュータを楽しもう!」という ブログを書いています。 たろサ(@momoonga) 山本三七男
  • 3. 3 製作動機 どこでも、ちょこちょこ プログラムするのが好きだった。 1980年代 90年代 ポケコン ザウルス 2000年代 BASIC BASIC 944BASIC
  • 4. 4 製作動機 Androidでも ちょこちょこプログラム SL4A(Scripting Layer for Android)環境 ・Python・Perl・JRuby ・Lua・JavaScript う~ん。取っつきにくいなぁ!
  • 5. 5 製作動機 もっと、 敷居の低いもの そう、BASICのような・・・ ・Eclipseはインストールしなくていい。 ・Androidのバージョン違いも関係なく。 ・簡単・単機能で、入り易いもの。
  • 6. 6 製作動機 無ければ作るしかない 移植が簡単そうな  ・Lua言語 Androidに 移植。 イメージはBASIC
  • 7. 7 イメージはBASIC 10 print”Hello World.” 20 goto 10 さすがに、こんな感じに while(true)do print(”Hello World.”) end 無ければ作る
  • 9. 9 Luaridaの特徴 1.昔のBASICのような命令体系 2.Android単体プログラム 3.開発環境(JotaTextEditor) 4.アプリ配布サーバー用意 5.ADK, MicroBridge接続 可能(Sarida)
  • 10. 10 イメージはBASIC 「2種類のグラフィック画面」 持っているのは、それだけ!!
  • 11. 11 イメージはBASIC 「2種類のグラフィック画面」 持っているのは、それだけ!! W = color(255,255,255) R = color(255,0,0) canvas.drawCls(W) Bitmap用 ワーク画面 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 メイン画面
  • 12. 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 )
  • 13. 13 イメージはBASIC 「リストダイアログも簡単」 item.clear() item.add("みかん", 0 ) item.add("たちうお", 1 ) item.add("海", 0 ) t = item.list( "好きなものを選んでください" ) t = item.radio( "好きなものを選んでください", 2 ) t = item.check( "好きなものを選んでください" )
  • 16. 16 Lua言語の簡単な紹介 構文 while(exp)do if(exp)then  block block end elseif(exp)then block repeat else block block until(exp) end
  • 17. 17 Lua言語の簡単な紹介 構文 while(exp)do  if(exp)then break end end for i=exp, exp [,exp] do block end
  • 18. 18 Lua言語の簡単な紹介 構文 条件式 == > < <= >= ~= and or if(exp)then block end
  • 19. 19 Lua言語の簡単な紹介 変数 function f() グローバル変数 a=10 ローカル変数 local b=20 do local b=30 end 20 print( b ) end
  • 20. 20 Lua言語の簡単な紹介 テーブル a={ b=20, c=30 } ⇒a.b a.c ⇒a[“b”] a[“c”] a={ str =”b” b={ c=30, d=40 } ⇒a[str] } ⇒a.b.c a.b.d ⇒a[“b”].c 20 ⇒a[“b”][“c”] ⇒a.b[“c”]
  • 21. 21 Lua言語の簡単な紹介 テーブル(配列) a={ } 初期化されます a={ }  1~です a[1]={ b=20, c=30 } ⇒a[1]=10 a[2]={ b=21, c=31 } ×⇒a.1 ⇒a[1].b a[1].c a={ 20, 30, 40 } ⇒a[2].b a[2].c ⇒a[1]=20 a[2]=30 ⇒a[2][“b”] a[2][“c”] ⇒a[3]=40 a={ b={} } for i=1,10 do ⇒a.b[1] a[i]={ } ⇒a.b[2] end ⇒a[1][1] a[1][2]
  • 24. 24 DoroLuarida タオソフトウェアさんが Luaridaユーザ 実現してくれました。 スクリプト作成 (foo.lua) DOROKURI スクリプトapk化 foo.apk サイト Androidマーケットに Android 登録できる マーケット
  • 25. 25 DoroLuarida登録 apkファイル名アプリ名 アイコンは無ければデフォルト 素材データはZIPファイル 公開オプション
  • 27. 27 起動すると Luarida起動 /sdcard /sdcard/luarida/luarida.lua これが起動し、 ここから始まります。 SaridaSAKURA起動 /sdcard /sdcard/SaridaSAKURA/sarida.lua /sdcard/SaridaSAKURA/sketch_bin/sketch.bin GR-SAKURA
  • 28. SaridaSAKURA について
  • 29. 29 Saridaとは LuaでArduinoのようなマイコンボードを 制御しようと思って開発中
  • 30. 30 何故ゆえ? 2つのプログラムが必要 Android Arduino
  • 31. 31 お手軽開発に向けて MicroBridge対応 Luarida (ルアリダ) ADK対応 SaridaSAKURA (サリーダ桜)
  • 32. 32 実装コマンドなど Saridaへの実装 ピンモードの切り替え アナログライト adk.pinMode(pin, mode) adk.analogWrite(pin, value) pin: ピン番号 pin: ピン番号 mode: 0:Input, 1:Output value: 出力PWM比率(0~255) analogWriteDAC(pin, value) デジタルライト value: DAC出力(0~4095) adk.digitalWrite(pin, value) pin: ピン番号 バイト送信 value: 0:LOW, 1: HIGH adk.send(data, length) data: バイトデータ デジタルリード length: データサイズ adk.digitalRead(pin) pin: ピン番号 バイト受信 戻り値: 0:LOW, 1:HIGH adk.recv( [timeout] ) アナログリード timeout: 受信タイムアウト(s) 戻り値: 受信データ,データサイズ adk.analogRead(pin) pin: ピン番号 戻り値: 10ビットの値(0~1023)
  • 33. 33 GR-SAKURAデモ 実はまだ、ADK通信 のところにバグがあっ て、ちゃんと動いてい ません。
  • 34. 34 ロボットを作りました MicroBridgeとLuaridaをつなげて、Luaridaで 操作するロボットを作りました。 MicroBridge-Luarida間はソケット通信しています。 大人の科学付録の「卓上ロボット掃除機」をAndroidから操作できる ように改造させてもらいました。