microPythonって?

microPythonはマイコンボードで動く小さなPython環境です。
Pythonと何が違うの?とかいうところを疑問に感じたりするかもしれませんネ。
ライト感覚で使うならあんまり変わりません。
深く突っ込むといろいろ違ってくるのですが、逆にPythonには無いモジュールがmicroPythonにはあったりするのでどっちがいいという話ではないです。

デスクトップ用のPythonと同じようにREPLを備えていて対話式でプログラムを試すことも出来ます。

マイコン毎に違うmicroPython

microPythonに対応しているボードといえばpyboardなのですが、ちょっとお高い。
pyboardが出た当時はついにマイコンボード上でPythonが! と話題になったものです。

microPythonが動くボードとその特徴を簡単に挙げてみましょう。

マイコンボード 特徴
Arduino M0系 現在はadafruitのcircuitPythonとしてサポートが続いている。少し独特。
BBC micro:bit とても親切なmicroPythonが使える。モジュールは少なめメモリも(かなり)少なめ。他に比べて圧倒的に使うのが簡単。
ESP系 ESP8266やESP32系の実装。WiFiにつながるのが特徴。メモリが多いので大きなPythonスクリプトも動かすことができる。ESP32の環境では簡単にSDカードが使える。
STM32系 すみません、いじったことがありません

へえ、結構あるんだね。
そう、結構あるんです。でも情報がいまいち多くないというか探し辛いというか。
とりあえず使ってみたいと言う場合はBBC micro:bitが圧倒的に簡単なのでお薦めです。
本格的に使いたいと言う場合はESP32の環境がよいのではないでしょうか。
Arduino M0系が十数Kのフリーメモリを持つのに対してESP32系では80K以上のフリーメモリを持っていたりしますので扱いやすいしWiFiにつなげられるのでいろいろ応用が効きそう。

知っておいた方がいいこと。

microPythonはpythonなので当然pythonの知識があると良いのですが、pythonの解説書が充実してきたのはつい最近のはなしで、長いこと謎の言語だったなんて人もいるんじゃないでしょうか。そのせいでものすごい初歩的なところがすっぽり抜けちゃってるなんてことも多い気がします。

使えるモジュールを調べるには

help("modules")

このようにREPLで入力することで使えるモジュールが一覧されます。 ただし、BBC micro:bitは特殊でこの方法でモジュールを確認することが出来ません。BBC micro:bitの場合は

help()

こうして出てくるヘルプの文書のなかにモジュールが一覧されています。が、どうやら全てが出てくるわけではなさそうです。

モジュールが持つファンクションとかを調べたい場合

dir(モジュール名)

こうしてやります。ただし、引数の詳細とか使い方の詳細が出るわけでは無いですが。
どういう命令があるのかさえわかれば調べやすいはずです。

また、REPLでモジュール名+ピリオドまで打ったところでタブキーを押すと命令などが一覧されたりする自動補完機能を備えているものが多いのでそれを利用するのもアリ。
BBC micro:bitもcircuitPythonもESP32のmicroPythonもこれには対応しています。

メモリの様子をうかがってみる。

そもそもどれくらいメモリあるの?っていうのを知っておくのは大切な事です。

import gc
gc.mem_free()

こうしてやることでフリーメモリが表示されます。がこれを入力した時点である程度メモリつかってますのでまあ大体これくらいはつかえるんだという目安に。

gc.collect()

これは知っておいて損がない?
強制ガベージコレクションの命令です。
BBC micro:bitなんかではお世話になる率高いかもしれません。

大きな配列などをモジュールの初期化用に使った後など、配列をdelしてやって強制ガベージコレクションをしてメモリに空きを作ります。

b = bytes([たくさんのデータ])
......
del(b) #バイトアレイのbを削除
gc.collect() #強制的にメモリを開放する

こんな感じです。
GLCDとかOLEDとか比較的大きなデータを使うことになりやすいモジュールを使う際にはgc.collect()のことを思いだしてやってください。

さいごの頼みは公式コミュニティ

microPythonはボードによって使えるモジュールや機能が異なります。
公式のドキュメントやコミュニティが最後の頼みになりますし最良の手段であることは間違いありません。
今後microPythonのドキュメントが充実してくるとよいのですが、日本ではまだまだ…。
しかし近々(2018年4月中頃)にESP32をコアにしたボード付きの書籍がCQ出版社から出版されるようです。ターゲットの言語がmicroPythonとなっています。
マニュアル付きボードだと思えばドキュメントも充実していそうですし期待できるかも。

とりあえずmicroPythonを楽しみましょう(弱気

追記。
CQ出版から出るのはどうやら書籍ではないみたいで。ボードにドキュメントのCD-ROMが付属したものらしいです。書籍でないのはちょっと残念。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.