この記事では、MakeCode for micro:bitのチュートリアル「ネコのおひるね(Cat Napping)」を解説します。
「ネコのおひるね(Cat Napping)」では、拡張機能のdataloggerを使って、明るさと温度を記録するプログラムを作ります。
ネコのライチのために、おひるねスポットを探してあげましょう!
拡張機能「datalogger」とは
今回使用する拡張機能「datalogger」では、マイクロビットをデータロガーとして使うことができるようになります。
新しいバージョン(V2.0~)のマイクロビットのみ使用可能です。
データロギングは、時間の経過にともなうデータの記録のこと。
センサーで測定された値をフラッシュメモリへ記録することができ、マイクロビットの電源を切っても記録されたデータは保持されます。
記録したデータをWebブラウザで開くと、画像のような表が表示されます。
チュートリアルを開始する
MakeCode for micro:bitのホーム画面を開きます。
チュートリアル「Cat Napping」を選択し、ブロックの「チュートリアルを開始」をクリックしましょう。
不要なブロックを消す
「ずっと」ブロックは今回使わないので消しましょう。
変数「logging」を作成する
変数カテゴリを選んで「変数を追加する…」をクリックし、loggingという名前の変数を作りましょう。
変数とは、プログラムで使う数字や文字のようなデータを一時的に保存するための場所のこと。
よく数字や文字を入れておく箱と言われたりします。
くわしくは「変数とは?スクラッチ(Scratch)を使ってわかりやすく解説」で解説しています。
変数「logging」はデータを記録しているかどうか表す
変数「logging」は、マイクロビットがデータを「記録しているか」または「記録していないか」表す役割があります。
- 記録している場合は「真(しん)」を保存
- 記録していない場合は「偽(ぎ)」を保存
真(しん)と偽(ぎ)とは、かんたんにいうと、
- 真はそうだよ
- 偽はちがうよ
という意味。コインの表と裏のような関係です。
英語で、真はtrue、偽はfalseと表現されます。
真偽値については「【子ども向け】論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
変数「logging」の初期値を設定する
変数「logging」を作成したら、変数カテゴリから「変数 logging を 0 にする」ブロックを出し、「最初だけ」ブロックの中に配置します。
最初は「記録していない」状態にしたいので、論理カテゴリから「偽」ブロックを出し、「変数 logging を 0 にする」ブロックの 0 の部分に配置しましょう。
Aボタンをスイッチにする
Aボタンを記録の開始/停止のスイッチにします。
入力カテゴリから「ボタンAが押されたとき」ブロックを出し、プログラミングエリアに配置します。
変数カテゴリから「変数 logging を 0 にする」ブロックを出し、「ボタンAが押されたとき」ブロックの中に配置しましょう。
論理カテゴリから「ではない」ブロックを出し、「変数 logging を 0 にする」ブロックの 0 の部分に配置します。
変数カテゴリから変数「logging」ブロックを出し、「ではない」ブロックの空いている部分に配置しましょう。
これでAボタンをおすたびに、変数「logging」が逆の値(真⇔偽)に変わります。
インジケータを作る
人間が見てデータを記録中であることが分かった方が便利ですよね。
LED画面とスピーカーを使ってインジケータを作りましょう。インジケータとは、動作状態を表す装置や機能のことです。
もし記録中なら/でなければ
論理カテゴリから「もし<真>なら/でなければ」ブロックを出し、「変数 logging を loggingではない にする」の下に配置しましょう。
変数カテゴリの変数「logging」を出し、「もし<真>なら/でなければ」ブロックの<真>の部分に配置します。
「もし logging なら」という条件は、「変数「logging」が真なら」と同じ意味です。
「もし<真>なら/でなければ」は、もし条件が正しい(真)場合「なら」の下にある命令を実行し、正しくない(偽)場合は「でなければ」の下にある命令を実行するブロック。
なので変数「logging」の値が真の場合、「なら」の下にある命令が実行されます。
記録中はLED画面にアイコンを表示する
記録中は、LED画面にアイコンを表示します。
基本カテゴリから「アイコンを表示」ブロックを出し、「もし logging なら/でなければ」ブロックの「もし logging なら」の下に配置します。
アイコンは太陽に似ている「まと」を選びましょう。
記録を開始した時音を鳴らす
記録を開始した時、音を鳴らしてお知らせしましょう。
音楽カテゴリから「play sound くすくす笑う until done」ブロックを出し、「アイコンを表示」ブロックの下に配置します。
鳴らす音は「くすくす笑う」から「ハロー」に変更します。
記録をしていない時は表示を消す
記録をしていない時は、LED表示を消しましょう。
基本カテゴリから「表示を消す」ブロックを出し、「もし logging なら/でなければ」ブロックの「でなければ」の下に配置します。
1分ごとにデータを記録する
フラッシュストレージ(保存する場所)がいっぱいにならないように、1分ごとにデータを記録するようにします。
ループカテゴリから「every 500 ms」ブロックを出し、プログラミングエリアに配置しましょう。
待ち時間は「500」ms から「60000」msに変えます。1minute(1分)を選ぶと自動的に60000に変更されます。
指定した時間(ミリ秒)ごとに、中に配置したプログラムを実行します。
1ミリ秒は1,000分の1秒です。
記録中(loggingが真)のときだけ記録したいです。
論理カテゴリから「もし<真>なら」ブロックを「every 60000 ms」の中に配置し、変数「logging」を「もし<真>なら」ブロックの<真>の部分に配置します。
温度と明るさを記録する
Data Loggerカテゴリから「log data colmn ” ” value 0」ブロックを出し「もし logging なら」ブロックの中に配置します。
columnの後ろの””をクリックして、”temp”と入力します。tempは温度という意味。
入力カテゴリから「温度(℃)」ブロックを出し、valueの後ろの0の部分に配置します。
同じように、明るさも記録しましょう。
「log data colmn “temp” value 温度(℃)」ブロックの右側にある「+」をクリックすると、新しい行が追加されます。
columnの後ろの””をクリックして、”light”と入力します。lightは光という意味。
入力カテゴリから「明るさ」ブロックを出し、valueの後ろの0の部分に配置します。
フフラッシュストレージにデータを記録する。
・column:列の見出しになる文字列
・value:記録する値
シミュレーターで確認する
シミュレーターで作ったプログラムを試してみましょう。
Aボタンをおして、データの記録を開始してみてください。
「Show data シミュレーター」ボタンをクリックすると、記録したデータを見られます。
timeは電源が入ってから経過した時間(秒)を表していて、tempとlightはcolumnで指定した文字列です。温度と明るさが記録されています。
「←戻る」ボタンでプログラミングの画面にもどります。
マイクロビットにプログラムを転送する
シミュレーターで正しく動くことを確認できたら、マイクロビットに転送して動かしてみましょう。
マイクロビットにプログラムを転送する方法は「【マイクロビット】パソコンとのつなぎ方・外し方、プログラムの転送方法」でくわしく紹介しています。
Aボタンをおして、データの記録を開始してみてください。
1時間ぐらい放置した後、もう一度Aボタンをおしてデータの記録を停止します。
記録したデータを確認する
記録したデータを見てみましょう。
USBケーブルでマイクロビットとパソコンをつなぐと、「MICROBIT」ドライブが表示されます。
その中に、MY_DATAというファイルができているはずです。
MY_DATAをダブルクリックしてウェブブラウザ(ChromeやEgeなど)で開くと、データの入った表が表示されます。
- Downloadボタン:データを CSV (カンマ区切り値) ファイルとしてダウンロードする。
- Copyボタン:データをコピーする。スプレッドシート(Excel、Google Sheets、Apple Numbers など)に直接貼り付けることができる。
まとめ
チュートリアル「ネコのおひるね(Cat Napping)」について紹介しました。
家の中で一番日当たりがよくて、一番暖かい場所を探して、ライチの日向ぼっこスポットを探してみてくださいね。
今回使用したブロック
- 「every 500 ms」ブロック
指定した時間(ミリ秒)ごとに、中に配置したプログラムを実行します。
1ミリ秒は1,000分の1秒です。
- 「log data colmn ” ” value 0」ブロック
フラッシュストレージにデータを記録する。
column:列の見出しになる文字列
value:記録する値
拡張機能「datalogger」
拡張機能「datalogger」は、マイクロビットをデータロガーとして使うことができるようになります。
ツールボックスにある「+拡張機能」をクリックし「datalogger」を選択。
ツールボックスに「Data Logger」カテゴリが追加されます。
- 「set columns ” “」ブロック
今後のデータロギングに必要な列の見出しを設定します。
- 「delete log」ブロック
列の見出しをふくめて、記録をすべて消します。
- 「on log full」ブロック
データログがいっぱいになったとき、中にあるプログラムを実行します。
マイクロビットから記録したデータを消したい場合は、プログラム上で「delete log」ブロックを使って消すか、プログラムをもう一度ダウンロードすることで消せます。
データログがいっぱいになった時の対処方法もプログラムすることができますよ。
マイクロビット公式「micro:bitによるデータロギング」