モダンOSのお砂場(3) Micro:bit と DroidScript その1

前回は、micro:bitの箱の外側を撫でた程度で止まっておりましたが、今回からは実際に使ってみたいと思います。しかし、本流(王道?)の MakeCodeエディタ も Pythonエディタ も「とりあえず」使いませぬ。スマホベースで使ってみよう(当然BLE無線経由で)と思うのですが、micro:bitのスマホ上開発定番の micro:bit コンパニオンアプリ も使いませぬ。使うのは

DroidScript

であります。私はスマホにインストールしていたものの、「眠らせて」おりました。今回、micro:bitを触るにあたって復活となった次第。

※「モダンOSのお砂場」投稿順Indexはこちら

「教育用」とはいいつつ、micro:bitは無線デバイスであります。まずは使用にあたって気になる技適を確かめておきます。左が秋月電子から購入のmicro:bitの箱、右がSWITCH SCIENCE社から購入のmicro:bitの箱、中身は本体と小さな説明書2枚で変わりはありません。(本体色は違いました。秋月は緑、スイッチサイエンスは赤、ま、これはたまたま。)

左の箱は輸入品そのままみたいです。その箱の下の方をば見やれば、技適マークが見えますか?

さすがに、各国で手広く売りさばいているだけあって、現在は発売元でちゃんと手続きとって登録されているのだと思います。

スイッチサイエンス社から購入の箱は日本語化されていて、安心なのですが、箱の裏側にはマークが印刷されていないです。でもどこかにある筈と思って見ていたら、

SAFETY GUIDE

という小さな紙の末尾に印刷されていました。

このSAFETY GUIDEはまったく同じものが両方の箱に入っています。

ま、これで安心して電波を出せるので、電源を入れて少し遊んでみましょう。

電源与えるだけでちょっとしたデモアプリが走るようにセットされています。また、USBでパソコンと接続した場合、micro:bitのWeb開発環境は日本語化されているので(ブロックエディタ場合、ブロック表示まで日本語化できるので、普段プログラムをしている人には反って見ずらいかも)、なんのストレスも感じることなく、プログラムを書き換えて楽しむことができます。

本当にお手軽

しかし、今回は通常の開発環境ではなく、スマートフォン上の環境からmicro:bitを「これまたお手軽」にいじろうというのです。これに使うことにしたのが、

DroidScript

というものです。Android上のセルフ開発環境の一つで、JavaScriptでAndroidのアプリが作れるものです。勿論インストールはGooglePlayから。実は、大分以前にインストールしたまま、使わずに眠らせていたのですが、今回 micro:bit を始めるにあたり、「心を入れ替えて」使わせていただくことに決めました。

なぜかと言えば、micro:bit はJavaScript メイン(ブロックエディタの裏側はJavaScript)、DroidScriptもJavaScriptなので、「統一感」があって良いな~などと思ったことが第一です。

その上、DroidScriptにはすごく良い機能があるのです。私にとっては、

Android上のセルフ開発環境、小さな画面でスクリーンキーボードで辛

Android上のセルフ開発環境は、最近では結構いろいろなものがあるようです。場所を選ばず、スマホでプログラムを書けるのが利点とは言え、コーディング環境としてはかなり辛い、老眼の目には。ところが、DroidScriptには、

自分がWebサーバーになってIDEをブラウザ画面に映し出す

という機能があるのです。つまり、パソコンなど大きな画面とハードウエアのキーボードがつながっている環境があれば、ブラウザ経由でプログラムを書けるという分けです。ある意味、MbedのWeb開発環境にも通じることがスマホ1台で出来てしまう。実際、ブラウザから開いたDroidScriptのプロジェクト管理画面はこちら
そして、管理画面から、コードエディタを開けば、こんな感じ。

ほぼPC上での開発と変わりません。ストレスなくコーディングできるけれど、スマホの上のセルフ開発環境です。スクリプト言語でもあり、コンパイルもなく、何か修正すれば、即座に反映。クロス開発になる本格的なAndroidアプリの作成に比べると、これは極めてお手軽度高いです。なお、Apkファイルを作成できるプラグインがあるのですが、有料。

さて、スマホ側とmicro:bit を接続するにあたっては、

  1. 自力でmicro:bit側のアプリを書く(ブロックエディタなど使い)
  2. Espruinoというmicro:bitを制御するプログラムを使う

どちらにしても、まず、スマホ側のDroidScriptに

micro:bit プラグイン

をインストールするところから始めないとなりません。DroidScriptのプラグインは、DroidScriptのメニューからプラグインを選んでインストールすることができるのですが、手元の環境の挙動から推察するに、

  • 古いバージョンのAndroidではDroidScript内からさくっとインストールできる
  • 新しいバージョンのAndroidでは、GooglePlayに回されてダウンロードした後、ダウンロードしたインストール用アプリを動かしてプラグインをインストールする

ような違いがあるようです。いずれにせよ、以下のWebサイトに手順があります。(ただし、このサイト、すぐ繋がらなくて、ちょっと待ちます。大丈夫か。)

microbit-js.org

DroidScriptへのプラグインのインストールができたら、上記のサイトから、Espruinoというmicro:bitにインストールするhexファイルをダウンロードして、普通にmicro:bitに書き込んでやります。すると、即座にDroidScript側から、BLE経由でmicro:bitが制御できるようになります。ペアリング不要、というか、しないでおきます。

以下のサンプルプログラムを見ると、

microbit.Scan();

という行があって、それを実行すると、スマホの画面に見つかったmicro:bitのIDが表示されるのでそれをタップすれば接続されます。特定のIDに紐づけたければ、上記のメソッドの引数としてIDを与えればよいみたい。

さて、この短いアプリをスマホ上でRunしてやると、こんな感じ。スマホ(ここではタブレットですが)の上に、Smileと表示されるボタンが現れるので、それをタップするならば、micro:bit側のLEDにスマイル顔が現れる、と。

こうして書いていると結構ですが、実際には、インストールしてデモを動かすまで、10分、15分の作業、ほんとお手軽。JavaScriptでmicro:bitのハードウエアを制御する気にもなるというもの。

モダンOSのお砂場(2) Micro:bit ちと調べてみた へ戻る

モダンOSのお砂場(4) Micro:bitとDroidScript その2 へ進む