microbitでMicroPythonが簡単で便利、そして楽しい

先日した仕事で、無線のセンサータグ的な要件にピッタリだったので、microbitをMicroPython使って開発したんだけど、これが簡単、便利、楽しいの三拍子が揃っててよかった。
f:id:miso_engine:20171214181310j:plain

microbitのいいところ

  • 2000円程度と高くない
  • 入力と出力が標準装備
    • 入力:スイッチが2つ
    • 出力:5x5で配置された25個のLEDディスプレイ
      • 文字や画像を表示・スクロールするライブラリが標準装備
      • Pythonのエラーがディスプレイにスクロール表示される
  • BLE搭載
    • BLE機能は実際に使わなかったのだけど、microbit同士で簡単に通信できるBluetoothライブラリが添付されている
  • Webコンパイラ
  • 加速度センサ搭載
  • ドライバ不要
  • 日本語リファレンス完備
  • ワニ口クリップでIOポートを簡単に繋げる
  • 基板がかわいい

MicroPythonのいいところ

  • 書くのが楽
  • Pythonなのでコードが読みやすい
  • 対話式インタプリタで変数の情報とかを読み出せてデバッグが超楽
  • muというIDEが軽くて補完の機能も良い

microbit & MicroPythonのよくないところ

  • ポートが金属として露出しているのでちょっと気を抜くと触ってセンサの値がとんでもないことになりがち
  • MicroPythonの開発環境からは今のところ一意のIDを読み出せなさそう & プログラムを書き込むたびに記憶領域が吹っ飛ぶからID持たせるのが大変

コード例

左のボタンを押したらハート、右のボタンを押したらキリンが表示されるプログラム。たった7行で書ける。

全体的に

microbitというハードの良さとMicroPythonとその他のソフト環境の良さ、その2つが相まってArduinoより体感で4倍ぐらい快適だった。特に入出力がデフォルトであって、microbit自身がエラーを報告してくれるところ。Arduinoだと色々買って繋げてライブラリを入れてようやくこの環境になるので。とはいえ、ライブラリの導入とかをしてないので、もっと大規模な開発になってくるとまだわからないのだが、AdafruitもPython推していくみたいだし、下記記事で書かれているように、開発は簡単なPythonでやって、性能とかバッテリ寿命とかシビアな本番環境は別の言語、環境で開発する、というのはかなり現実的だと思う。
Make: Japan | AdafruitがCircuitPythonへ移行
f:id:miso_engine:20171205114453j:plain
色違いがたくさんあるのも楽しい。

micro:bit(マイクロビット)

micro:bit(マイクロビット)

*1:まぁ最近は普通か