親子でSTEAMチャレンジ

micro:bitで実践する環境データロギング:身近な現象をデータで捉えるSTEAMアクティビティ

Tags: microbit, STEAM教育, データロギング, センサー, プログラミング, IoT, 応用力

「家庭で手軽にできるSTEAM体験」をテーマとする本サイトにおいて、今回は身近な環境の変化をデータとして捉え、分析するアクティビティをご紹介いたします。使用するのは、手のひらサイズのプログラミングボード「micro:bit」です。本アクティビティは、Science(科学)、Technology(技術)、Engineering(工学)、Mathematics(数学)の各分野を横断的に学び、プログラミングによるデータ収集、センサーの原理理解、そして収集したデータの分析を通じて、応用力と論理的思考力を高めることを目的としています。高価な専門キットに頼ることなく、身近なツールで深い学びを体験できるでしょう。

アクティビティ概要:micro:bitで環境データを収集する

このアクティビティでは、micro:bitに内蔵されている温度センサーと光センサーを活用し、一定時間ごとに室温や明るさといった環境データを自動で記録します。収集したデータはPCにシリアル通信で送信され、その後、テキストデータとして保存・分析することで、時間の経過に伴う環境の変化を数値で客観的に把握できるようになります。単にセンサーの値を読み取るだけでなく、その背景にある原理を理解し、データの意味を考察するプロセスが、このアクティビティの核心です。

必要な材料と準備

本アクティビティに必要なものは以下の通りです。

準備手順:

  1. micro:bitとPCの接続: micro:bitをUSBケーブルでPCに接続します。PCがmicro:bitをストレージデバイスとして認識することを確認してください。
  2. プログラミング環境の準備: Webブラウザで MakeCode for micro:bit にアクセスします。これはブロックベースの直感的なプログラミング環境であり、プログラミング初心者でも容易に扱えます。Pythonでの記述も可能ですが、今回はブロックエディタを中心に解説を進めます。
  3. シリアル通信ターミナルの準備: PCでシリアル通信を受信するためのターミナルソフトが必要です。Windowsでは「Tera Term」や「PuTTY」、macOSでは「CoolTerm」などが一般的です。これらのソフトウェアは無料で利用できます。

詳細なアクティビティ手順

ここでは、micro:bitを使って温度と光のデータを収集し、PCに送信する具体的な手順を説明します。

ステップ1:micro:bitのプログラミング

MakeCodeエディタを開き、「新しいプロジェクト」を作成します。以下のロジックをブロックで構築してください。

  1. 「ずっと」ブロックの配置: プログラム全体を繰り返し実行するために、「ずっと」ブロック(forever)を配置します。
  2. データ取得と表示:
    • 「入力」カテゴリから「温度(℃)」ブロックと「光レベル」ブロックを取り出し、それぞれの値を一時的に保持する変数(例:「現在の温度」、「現在の光」)に格納します。
    • シリアル通信でPCにデータを送信するため、「シリアル」カテゴリから「文字列を新しい行に書き出す」ブロック(serial write line)を配置します。
    • 送信する文字列は、温度と光の値をカンマで区切ったCSV形式にすると、後でデータ分析がしやすくなります。例えば、「${現在の温度},${現在の光}」のような形式で結合ブロックを使って作成します。
      • 例: 「結合」ブロックを使い、テキストブロックで"温度:"現在の温度変数、",光:"現在の光変数を連結します。
    • (任意)micro:bitのLEDディスプレイに取得した値をスクロール表示させると、データが正しく取得されているかを目視で確認できます。
  3. データ取得間隔の設定: データが頻繁に送られすぎるとPC側での処理が煩雑になるため、適切な取得間隔を設定します。「基本」カテゴリから「一時停止」ブロック(pause)を取り出し、例えば5000ミリ秒(5秒)に設定します。これにより、5秒ごとにデータが送信されるようになります。

ブロックコードの概念的な表現:

// MakeCode ブロックエディタの概念的な表現
// 「ずっと」ブロック
ずっと:
    // 温度センサーの値を読み取り、「現在の温度」変数に格納
    現在の温度 を 温度(℃) に設定する

    // 光センサーの値を読み取り、「現在の光」変数に格納
    現在の光 を 光レベル に設定する

    // シリアル通信でデータをPCに送信
    // 例: "25,128" (温度25度、光レベル128)
    シリアルに新しい行として書き出す:結合(""+現在の温度+","+現在の光)

    // 5秒待つ
    一時停止 (5000ミリ秒)

ステップ2:プログラムの書き込み

MakeCodeエディタの画面左下にある「ダウンロード」ボタンをクリックし、作成したプログラム(.hexファイル)をmicro:bitのドライブにドラッグアンドドロップします。書き込みが完了すると、micro:bitは自動的に再起動し、プログラムの実行を開始します。

ステップ3:PCでのデータ受信と記録

  1. ターミナルソフトの起動: 事前に準備したターミナルソフトを起動します。
  2. シリアルポートの設定: ターミナルソフトでmicro:bitが接続されているシリアルポート(COMポート番号や/dev/tty.usbなどで表示されるもの)を選択し、通信速度(ボーレート)を115200に設定します。これはMakeCodeのデフォルト設定です。
  3. データ受信の開始: ターミナルソフトでデータの受信を開始すると、micro:bitから5秒ごとに温度と光のデータが画面に表示され続けます。
  4. データの記録: 表示されるデータをコピー&ペーストするか、ターミナルソフトのログ記録機能(ファイルに保存)を利用して、テキストファイル(例: environment_data.txt)として保存します。

注意点

科学的・工学的原理の解説

本アクティビティの背景には、様々な科学的・工学的な原理が隠されています。

1. センサーの原理

2. データロギングの概念

データロギングとは、物理的な現象を一定の間隔で自動的に計測し、記録するプロセスです。 * 時系列データ: 本アクティビティで得られるデータは、時間の経過とともに変化する「時系列データ」です。時系列データは、トレンド(傾向)、周期性、季節性、異常値などを分析する上で非常に重要です。例えば、一日の温度変化を記録すれば、日中の最高気温や夜間の最低気温、その変化のパターンを把握できます。 * サンプリングレート: データを取得する間隔(例: 5秒ごと)は「サンプリングレート」と呼ばれます。サンプリングレートが低いと細かな変化を見落とす可能性があり、高すぎるとデータ量が膨大になるというトレードオフがあります。適切なサンプリングレートの設定は、効率的かつ正確なデータ収集において重要な工学的判断です。

3. プログラミングとシリアル通信

応用・発展の提案

本アクティビティは、より高度なSTEAM学習への入口です。以下のアイデアを参考に、さらなる探究を進めてみてください。

1. データの可視化と分析

収集したテキストデータは、そのままでは全体像を把握しにくいものです。

2. 外部センサーの活用

micro:bitには、外部センサーを接続するためのピン(GPIOピン)が用意されています。

3. IoTプラットフォームとの連携

収集したデータをインターネット経由でクラウドに送信し、リアルタイムで監視・分析する「IoTシステム」の構築に挑戦できます。

4. 問題解決への応用

収集したデータを単に眺めるだけでなく、具体的な問題解決に活用する視点を持つことが重要です。

次のステップへ繋がる情報源

まとめ

micro:bitを使った環境データロギングは、身近な材料と手軽なツールで、STEAM教育の核となる「原理原則の理解」「論理的思考」「問題解決能力」を育む優れたアクティビティです。センサーの仕組みからプログラミング、データ分析の基礎までを体験し、「なぜそうなるのか」という問いを追求することで、お子様の知的好奇心を深く刺激し、応用力のある学びへと繋がるでしょう。今回紹介した発展的な提案を参考に、継続的な学習を通じて、ご家庭でSTEAMの可能性を広げていくことをお勧めいたします。