新しいPythonエディタのαリリースで使える最新の MicroPython (執筆時点では 2.0.0-2021-10-25)で使える新機能 第2弾です。
log
モジュールとは
MakeCode の拡張機能 Data Logger に相当するものです。micro:bit 内のストレージにセンサー値などのデータを溜め込んで、後で参照したり、CSV形式で取り出したり、グラフ表示できます。
log
モジュールのAPI
log.set_labels(*args)
ログのヘッダを設定します。MakeCodeのset columns
ブロックに相当します。
ヘッダの項目を文字列で並べて指定します。たとえば温度センサーと光センサーの値を記録するつもりであれば、次のように設定しておきます。
```python`
set_labels('temperature', light')
オプションでタイムスタンプの単位を `timestamp` 引数で指定できます。これはMakeCodeの`set timestamp`ブロックに相当します。`timestamp`引数に指定できる値は次のとおりです。
|timestamp|説明|
|---|---|
|log.MILLISECONDS|ミリ秒単位。デフォルト。|
|log.SECONDS|秒単位|
|log.MINUTES|分単位|
|log.HOURS|時単位|
|log.DAYS|日単位|
## log.add(log_data)
データを記録します。MakeCodeの `log data` ブロックに相当します。
データの指定には、名前つき引数で指定する方法と、辞書オブジェクトで指定する方法があります。
```python
add(temperature=t, light=l) # 引数名はset_labelsに指定した項目名と一致している必要あり
add({"temperature":t, "light":l}) # 辞書のキーはset_labelsに指定した項目名と一致している必要あり
log.delete()
記録されているデータを(ヘッダも含めて)削除します。MakeCodeの~delete log'ブロックに相当します。
set_mirroring(serial)
ログの記録を UART にも出力していきます。MakeCodeに該当する機能はありません。
サンプル
ユーザガイドのData logging with the micro:bitにあるMakeCodeの例をMicroPython用に書き換えてみました。
加速度センサー x, y, z の値が記録されます。
Aボタンで記録する/しない状態を切り替えます。
A+Bボタンでログを削除します。
今のところ、ログ領域がフルになったことを検出する機能は無いので、ログが一杯になったら記録を止める機能は実現していません。
from microbit import (accelerometer,
display, Image,
button_a, button_b,
run_every)
import log
logging = False
log.set_labels('x', 'y', 'z', timestamp=log.SECONDS)
@run_every(ms=100)
def logging_xyz():
if logging:
log.add(x=accelerometer.get_x(),
y=accelerometer.get_y(),
z=accelerometer.get_z())
def on_button_a_pressed():
global logging
logging = not logging
if logging:
display.show(Image.HEART)
else:
display.clear()
def on_button_a_and_b_pressed():
display.scroll("deleting log")
log.delete()
@run_every(ms=100)
def hundle_button_action():
if button_a.is_pressed() and button_b.is_pressed():
while button_a.is_pressed() or button_b.is_pressed():
pass
on_button_a_and_b_pressed()
elif button_a.is_pressed():
while button_a.is_pressed():
pass
on_button_a_pressed()
実行すると、MICROBIT フォルダに MY_DATA.HTM
というファイルができるので、これを開いて表示します。
次のように表示されます。Download
ボタンをクリックするとCSVファイル形式でデータをダウンロードできます。
View preview
ボタンをクリックすると、データをグラフ表示できます。