マイクロビットでデータを収集するには?
前回の記事では、マイクロビットのセンサーの値をUSB経由でPCに送って、データを画面表示(グラフ表示)する方法を解説しました。
しかし、PCがないとデータを取得できないのは不便ですよね。
そこで、今回はマイクロビット内にセンサーデータをストレージする方法を解説します。この方法を使えば、マイクロビット単体でデータを取得できるので、屋外での温度計測や交差点の騒音レベル測定など、さまざまな場面で活用できます。
マイクロビットは、プログラミング教育に最適なツールであり、その多機能性から幅広い用途に対応できます。
例えば、温度センサー、光センサー、加速度センサーなど、さまざまなセンサーを搭載しており、それらのデータを活用することで、さまざまなプロジェクトを実現できます。
特に、センサーデータを収集し、保存する機能を使えば、データ分析の基礎を学ぶことができます。
何を作るの?
今回作るのは、マイクロビット単体で周囲温度を連続的に測定して記録する温度ロガーです。
このプロジェクトを通じて、データロギングの基本を学び、実際の応用例を体験することができます。
データロガー機能は、MakeCodeの拡張機能「datalogger」を使います。この機能はマイクロビットのv2以降でないと使用できないので注意してください。
※dataloggerはおすすめに出ていることが多いのですが、見つからない場合は、「datalogger」で検索して探してください。
——————————————-
温度ロガーは、例えば学校の理科の授業や自由研究で活用できます。
屋外の温度変化を観察したり、室内の異なる場所の温度を比較したりすることで、環境データの収集と分析の重要性を学ぶことができます。
また、データを長期間にわたって記録することで、季節の変化や天候の影響を観察することも可能です。
データロガー機能を使うには?
どのブロックを使うの?
- set columns
データの名前を設定します。一度に取得したいセンサーデータが複数ある場合、複数のcolumnを設定しましょう。(+ボタンを押すと設定できるcolumnの数が増えます。)例えば、温度センサーだけでなく、光センサーや湿度センサーのデータも同時に記録したい場合、それぞれのデータの名前を設定することができます。このブロックを使うことで、データの整理がしやすくなり、後で分析する際にも便利です。 - log data 「column」「 value」
記録したいデータをセットします。
このブロックを使って、センサーから取得したデータを実際に記録します。例えば、温度センサーのデータを記録する場合、温度の値を指定してこのブロックにセットします。これにより、センサーデータがリアルタイムで記録され、後で解析することが可能になります。 - on log full
データ記憶領域がいっぱいになったとき、どう動作させるかを設定します。マイクロビットのデータ記憶領域は30kByteとあまり大きくないので、大量のデータをロギングするといっぱいになってしまいます。
このブロックを使って、記憶領域がいっぱいになったときの対策を講じることができます。例えば、データを一時的に停止したりすることができます。
実際のプログラム
使用する変数
- log: データロギングを行うかどうかのフラグ。今回はロギングのON/OFFを真偽で表現します。この変数を使って、ロギングを開始するか停止するかを制御します。例えば、特定の条件が満たされたときにロギングを開始し、条件が変わったときに停止するなど、柔軟な制御が可能です。
プログラムの内容
- 最初だけブロックの中
log
は偽に設定。これにより、初期状態ではデータロギングが行われないようにします。- アイコンは×。これはユーザーに対して、ロギングが停止している状態を視覚的に示します。
set columns
は”temp”を設定。これにより、記録するデータが温度であることを指定します。
- ボタンAが押されたとき
log
は真に設定。ボタンAが押されると、データロギングが開始されます。- アイコンはハート。これはユーザーに対して、ロギングが開始されたことを示します。
- ボタンBが押されたとき
log
は偽に設定。ボタンBが押されると、データロギングが停止されます。- アイコンは×。これはユーザーに対して、ロギングが停止したことを示します。
- on log fullの時
log
は偽に設定。データ記憶領域がいっぱいになると、自動的にロギングが停止されます。- アイコンはドクロ。これはユーザーに対して、記憶領域がいっぱいであることを示します。
- 周期 10000ミリ秒ごとに
log data column(temp) value(温度(℃))
。これにより、10秒ごとに温度データが記録されます。
※ もしlog
ならの意味。 条件判断の 「もし~なら」ですが、ブロックに自体に、真ならという言葉が隠れています。つまり 「もしlogなら」と書いた場合「もしlogが真なら」という意味になります。
※周期は、いくつかの数字を選ぶこともできます。ただ選べる数字は、100ms 200ms 500ms 1秒 1分 1時間。。
今回作ったのは、温度測定なので、1秒間隔では早すぎだったので、手入力で10秒(10000ms)間隔を指定しました。
測定データはどこにある?どうやって見る?
マイクロビットの中に記録されたデータは、パソコンなどで簡単に見ることができます。
マイクロビットとパソコンを接続すると、マイクロビットの中のファイルを見ることができます。
マイクロビットの中にはいくつかのファイルがあるのですが、ロギングしたデータが入っているのは、「MY_DATA.html」です。
このファイルをパソコンなどにコピーして開くと、こんな感じ。
取得したデータをコピーして、エクセルなどに張り付ければ、そのまま実験データとして使うことができるのです。
まとめ
今回は、マイクロビットを使った温度ロガーの作成方法を紹介しました。これで、マイクロビット単体でデータを取得し、記録することができるようになります。次回は、このデータをどのようにしてPCに転送し、グラフ表示するかについて解説します。