この記事はMicroPython Advent Calendar 2017の11日目の投稿です。昨日は ken5owataさん投稿のmicropythonでDHT11でした。DHT11は安くて温度も湿度も測れてよいのですが、精度がちょっとアレなので、そこ我慢できない方はDHT22 (価格はDHT11の3倍以上すると思います)をご検討ください。使い方はDHT11の場合とほぼ同じ(dht.DHT11 を dht.DHT22とするだけ)です。
さて、今日は Bleson という micro:bit 用 MicroPython の亜種が登場したことについて書いてみます。
micro:bit は Nordic nRF51822 積んでいるのに、MicroPython からは BLE 使えなくて残念という話をよく聞きます。なぜ使えないかの事情はここに書いてあります。要するにサポートするのはメモリが少なすぎるということでした。
そんな中、micro:bit 用 MicroPython の BLE サポートにかすかな光明がさしてきました。クロスプラットフォームの Python BLE ライブラリとして開発中の Bleson が、サポートするプラットフォームに micro:bit を加えてきました。
といっても、既存の MicroPython に Bleson を載せたわけではなく、BLE サポートをオープンソースで実装したリアルタイムOS Apache MyNewt (nRF51822もサポート)の上に MicroPython を移植したものです。
現在のところは極初期のα版レベルで、ライブラリはぜんぜんなく(microbitモジュールもありません)、ファイルシステムもないのでプログラムの転送もできず、REPLでちまちまスクリプトを入力するしかありません。
インストール方法はここから .hex ファイルをダウンロードしてきて、いつものように MICROBIT ドライブにコピーしてやるだけです。シリアル経由で接続して REPL から操作します。サンプルコードはここにあります。Advertiser や Beacon のサンプルは動くハズとのことで試しましたが、動くことを確認しました。
BLEをサポートする以上、既存の MicroPython のモジュールの機能のいくつかはあきらめないといけないと思いますが(個人的には、あのスピーチシンセサイザは要らない ;-)、Bleson の今後に大いに期待したいところではあります。