Android日本橋でんでんタウンもくもく会第1回
10月1日に「Android日本橋でんでんタウンもくもく会第1回」が開催されました。そこでLuaridaについて発表したのですが、内容をプログに上げていませんでしたので、簡単に紹介しておきます。
Android日本橋でんでんタウンもくもく会とは、Androidとマイコンを接続して楽しいことをしたい人が集まって、もくもく勉強したり作業したりする会です。第1回は知識共有/ノウハウ共有ということで、LuaridaとMaridaについて話をさせていただきました。MaridaはAndroidに接続したマイコンからAndroidを制御するアプリです。
次回のAndroid日本橋でんでんタウンもくもく会は、12月3日(土)の予定です。
早速、発表内容の簡単な紹介をしたいと思います。
Luarida(ルアリダ)って何?
Luaridaとは、Android上でプログラムを作ることができる自作のインタプリタで、コーディングにはLua言語を用います。推奨エディタJota-Text-Editorを使えば、スクリプトを書きつつLuaridaを呼び出して実行できるので、非常に便利です。
いろいろな基本コマンドをサポートしています。作者としてはAndroidのポケコン化をイメージして作っています。
LuaridaがSocket通信にも対応したため、MicroBridgeに対応したマイコンと通信ができます。これは石井さんが移植されたPIC版MicroBridgeのLED点滅プログラムとLuaridaが通信してLEDをチカチカ点滅させるプログラムです。
このようにLuaridaを使えば、Android上でマイコンを制御するプログラムも書けてしまいます。
また、Luaridaスクリプトは簡単にAndroidマーケットや野良アプリとして公開することが出来ます。DOROKURIが提供しているDoroLuarida(ドロルアリダ)にユーザ登録(無料)すると、自作スクリプトをapkパッケージ化してもらえて、公開することも可能です。これによって、スクリプトのネットを使った交換も簡単になりました。
Luaridaの中身
それではLuaridaの動作の仕組みを紹介します。LuaridaはLuaVMを別のスレッドで動かしてDalvikと共存しています。
LuaVMはLuaの言語処理を行うことになります。しかし、画面表示やキー入力など、Dalvikが行わなければ出来ない処理もたくさんあります。これらの連携方法にソケット通信を選びました。
LuaridaはLuaVMを動かした後、tcpソケットを開いてLuaVMからの接続を待ちます。LuaVMは言語処理を進めながら、必要に応じてDalvik側に処理コマンドを送ります。DalvikはLuaVMからの指令に応じて処理を続けます。
このように、LuaVMが指令担当、Dalvikが実働担当、間はソケット通信というLuaridaがあって、マイコンとソケット接続するMicroBridgeの話を聞いたときに、Marila(マリーダ)の発想が生まれました。
Marila(マリーダ)とは
Maridaとは、LuaVMが行っていたDalvik制御部分をマイコンに置き換えればいいのではないか。という発想です。
発想したら作らなければなりません。今年のABCに向かう新幹線の中でMarida作りを始めました。何とかABCに来ている石井さんに手渡せるように2時間半で仕上げました。電源が付いて便利になったのですが、これほど新幹線の速さを恨んだことはありませんでした。
MaridaはLuaridaの持つ命令セットをマイコンからの通信で全て制御できるというものです。
Maridaは起動すると、真っ暗な画面でMicroBridgeからのtcp接続を待ちます。接続に失敗した場合は、メニュからもう一度接続待ちにすることができます。また、接続を許可するIPアドレスや接続ポートもメニュから変更することが可能です。
そしてSarida(サリーダ)へ
Saridaというアプリを構想しています。Saridaは、日本Androidの会神戸支部の夜子ままさんが作成されているAndyLibをLuaVMから叩けるようにするものです。これを使うと、Android上で外部マイコンや様々機能を使うプログラムが書けることになります。
Saridaの命令セットは、まだ、考え中です。
さらに、将来希望的な構想として、DoroMaridaが実現できないかなと思っています。こうすると、自作ロボットアプリなどが簡単に公開可能となります。
以上、Android日本橋でんでんタウンもくもく会第1回での私の発表内容でした。Maridaはアンドロイドマーケットにて公開中です。