英国で子供に無償配布されたmicro:bitでPythonが動く


2016年 07月 26日

英国の子供(7年生)全員に無償配布さているというBBC提供のmicro:bitがなぜかやってきた。
次に写真のように、しっかりBBCのロゴが印刷されている。その他のチップなどの説明も分かりやすく印刷されていて、とても教育的だ。向こうではBBCが無償配布するんだから、日本ではNHKが子供に無償配布し、連動した番組があったりして欲しいところだ。
左側がCPUで、今話題のARMのチップである。

DSCF4791 (400x300).jpg
上の写真は裏面で、下が表面で、小さなLEDが5x5個並んでいる。そして、両側にボタンがついている。
拡張ボードに挿したりしなければ、基本の入出力はこれだけである。
他に、加速度センサーと磁気センサーがついている。

DSCF4799 (400x300).jpg
詳しいことは、micro:bitのホームページが用意されているので、詳細はそちらで調べて欲しい。
※うまく表示できないときは、新しいタブまたは新しいウィンドウで開いてください。

さて、プログラム開発のほうだが、ホームページに行くと、Create Code があり、4つのプログラミング言語が用意されていて、これらは、全てブラウザ上で動作するので、OSについては気にする必要がないので、Ubuntu/Linuxで試した。

  1. JavaScript
  2. Block Editor
  3. Touch Develop
  4. Python

Block Editor はScratchみたいな感じで、それをもうちょっと普通のエディタっぽくした感じのがTouch Developである。上の3つは、用意されている命令などをツンツンするこでプログラミングをしていく。

Pythonは、普通のエディタを使ってコーディングする感じである。なので、とりあえず、Pythonを使ってみた。
Pythonといっても、標準のPythonではなく、MicroPythonである。当然、あれこれimportして使うなどできない(はず)。microbitを動かすためには、とりあえず、最初に、 import microbit と書き、その後、ごちゃごちゃ書けば良いらしい。

ということで、ちょっとプログラムを作って走らそうとしたが、他のエディタと違って、ブラウザ上ではシミュレートできない。プログラムをパソコンにダウンロード(.hexファイル)し、micro:bitをUSBでパソコンにつないで、.hexファイルをmicro:bitに投げ込むと動き出す。

しかし、当然プログラムをミスして動かないことがある。すると、micro:bit の LEDに想定外のメッセージらしきものが流れるのだ。よく見ると、英語でエラーメッセージが流れていることが分かり、行番号が含まれていることが分かる。
なんと、シンタックスエラーがあっても、エディタ上では何も出ず、micro:bit上で走り始めたときにやっと分かる。したがって、Pythonでプログラミングするときは、エラーフリーで書けるプログラミング能力が要求される。あるいは、英語で流れるエラーメッセージをすばやく読み取れる動体視力と英語力が要求される。

なぜこんなことになっているのかというと、Pythonはコンパイルされず、テキストのままmicro:bitに転送されるのだそうだ。そのとき、つくったPythonのプログラムだけでなく、MicroPythonのインタープリタも転送されるので、.hexファイルが小さなプログラムであるにもかかわらず600キロバイトと巨大な理由らしい。これは、近いうちにmicro:bitの互換機を出すスイッチサイエンスビデオからの情報だ。

ドキュメントはかなりしっかり用意されている(もちろん英語)ので、あまりプログラミングには困らないと思う。とても困るのは、5×5のLEDだけで何か面白いことをしようとすると、プログラミングよりもはるかに頭を使わないといけない。これこそ頭の訓練になりそうだ。