日本のプログラミング教育の背景の一つとなっている科学技術政策 Society 5.0。この中で、「Society 5.0で実現する社会は、IoT(Internet of Things)で全ての人とモノがつながり、様々な知識や情報が共有され、今までにない新たな価値を生み出すことで、これらの課題や困難を克服します。」 とされています。
授業でIoT体験を行うためは、インターネット接続されたデバイス(モノ)が必要となります。世の中には素晴らしい教育用IoTデバイスが数多くありますが、いずれもWi-Fiを使うのが一般的です。
しかしながら、日本の学校のネットワーク環境の多くは、同時接続数の問題やセキュリティの観点から、新たなWi-Fiデバイスを簡単に接続する事が出来ません。また、IoT体験だけを行うためだけに、新たな教育用IoTデバイスやWi-Fi拡張ユニットを購入する予算も難しい自治体が多いと思います。
2020年のプログラミング教育のスタートに合わせて、フィジカルコンピューティングデバイスとして、日本でもmicro:bit(マイクロビット)が広まりつつあります。micro:bitは、世界で500万台以上出荷(2020年5月現在)されている低コストな教育用デバイス(シングルボードコンピュータ。Wi-Fi非搭載。)です。
TFabConnect(ティー・ファブ・コネクト)は、このmicro:bitを使い「追加コスト不要」「追加のWi-Fi接続無し」でIoT体験が行えるようにする事を目的としています。
PCのブラウザを踏み台にしてmicro:bitのインターネット接続を実現しています。
インターネットとの通信には「クラウド変数」という概念を用います。TFabConnect用のMakeCodeの拡張機能を読み込むことで、クラウド変数への読み込みと書き込みのブロックが提供されます。自分で定義したクラウド変数に値(例えば温度)を書き込み続けると、TFabConnect Serverにデータが蓄積されます。
この蓄積されたデータは、TFabConnect Dashboardで時系列変化をグラフで確認する事ができます。
また、遠く離れた場所にあるmicro:bit同士でグループを組んで、グループ内で同じクラウド変数を読み書きする事もできます。例えば地球の裏側のmicro:bitでAボタンを押してもらうと手元のサーボモーターが動く作品が数ブロックで簡単に作れるようになります。
明るさの変化を出先からグラフで確認できる仕組みを構築します。
ダッシュボードにアクセス
ダッシュボード https://beta.tfabconnect.com/dashboard/ にアクセスしてください。初めてアクセスする場合は、このような選択画面が表示されます。
「サインアップ→一時利用」でも時系列変化グラフを描画する事ができます。
永続的に利用する場合は「サインアップ→SNSでサインアップ」もしくは「ログイン→SNSでログイン」を選択してください
ログインすると、はじめは「無名のグループ」というグループが1つ作られています。
プログラム作成(MakeCode)
ダッシュボードの左メニューにある「MakeCode」をクリックします。もしくはhttp://tfab.jp/connect-bにアクセスすると、MakeCodeのページに移動します。
「Edit Code」をクリックするとTFabConnect専用ブロックが読み込まれた状態になります。(機能拡張で https://github.com/tfabworks/pxt-tfabconnect-betaを読み込む方法もあります)
次に、「クラウド変数〜を〜にする」ブロックを「ずっと」の処理の中に入れ、「light」というクラウド変数に明るさの値を書き込むようにします。(クラウド変数名は自由に命名可能ですが、使える文字は半角英数字のみとなります)
動作確認のため、LEDの反転ブロックを使って、書く度にLEDが点灯・消灯を繰り返すようにします。
完成したらmicro:bitにダウンロード(インストール)して下さい。
micro:bitをインターネットに接続(ダッシュボードでWebUSB接続)
MakeCodeをWebUSB接続している場合は、一旦、MakeCodeのブラウザのタブを閉じて下さい。
次に、ダッシュボードでmicro:bitを「無名のグループ」にWebUSB接続します。以下の手順で操作し、micro:bitのイラストが赤くなれば「無名のグループ」に記録が開始されます。
グラフを表示
しばらく待つと「無名のグループ」のクラウド変数一覧に「light」という変数が登場しますので、右にあるグラフボタンをクリックして下さい。
グラフが表示されたら、下部中央にある「自動更新」のボタンをクリックし、手でmicro:bitを覆ってみてください。数秒遅れて、明るさのグラフが下降すればOKです。
出先からグラフを閲覧
出先からグラフを閲覧するには2つの方法があります。
出先からPCでダッシュボード https://beta.tfabconnect.com/dashboard/ にアクセスし、SNSログインを行うと現在の明るさを確認する事ができます。
micro:bitのA,Bボタンを使って遠隔地の水槽のサーボモーターを動かし、魚に餌をあげる仕組みを作ります。
プログラム作成(MakeCode)
リモコン側のプログラムを作成し、micro:bitにダウンロードします。Aボタンが押されたら、クラウド変数「switch」に1を書き込み、Bボタンが押されたら0を書き込みます。
水槽側のプログラムを作成し、micro:bitにダウンロードします。クラウド変数「switch」が1の時はサーボモータの角度を180度。それ以外(=0)の時は0度にするプログラムです。
工作
ダッシュボードで水槽側micro:bitをグループに招待
ダッシュボードにアクセスし、グループの「+」ボタンをクリックします。
グループ名入力欄に「餌やり」と入力し「作成」をクリックします。
「micro:bitをインターネットに接続」と同じ手順で「餌やり」グループにmicro:bitを接続します。A,Bボタンを押すとグラフに1もしくは0が書き込まれる事を確認します。
micro:bitがインターネットに接続されたのを確認したところで、新しいメンバーを「餌やり」のグループに招待します。「餌やり」の「メンバー」をクリックすると、メンバーの一覧表が表示されます。表の一番下にある「メンバー追加」ボタンをクリックします。
トークン(6桁の数字)が表示されるので、数字をメモします。
ダッシュボードにアクセスし、グループの「+」ボタンをクリックします。
「グループへの参加」タブをクリックし、メモをしたトークン(6桁の数字)を入力し、参加をクリックします。
しばらく待つと水槽側PCのダッシュボードに「餌やり」グループが登場します。
水槽側のmicro:bitを「micro:bitをインターネットに接続」と同じ手順で「餌やり」グループにmicro:bitを接続します。
動作確認
リモコン側のmicro:bitのA,Bボタンを押すと、数秒遅れて水槽側のサーボが動作すれば完成です。あとは餌や容器の形状にあわせて、穴の位置やサーボモーターの取り付け位置の調整をしてください。
1日の温度と明るさの変化を記録し遠隔地から参照する事ができます。
結果、このようなグラフが描けました。日没(黒いグラフ)より少し遅れて気温(青いグラフ)が下がっていく事が見て取れます。
この測定を実現するプログラムは8個のブロックで実現する事ができます。
※600,000ミリ秒=10分間隔でクラウド上のデータベースに記録
ゴールデンハムスターは夜行性の動物です。人感センサー(赤外線)を搭載したTFW-RK2を使い、ハムスターの動きをグラフで可視化してみました。
このグラフは、サンプル1の簡易百葉箱の明るさ(outside-brightness)と、ハムスターの動きを検知した回数(taro-active)を重ねた物です。暗い時間帯の方が活動している事が判ります。
この測定は、このようなプログラムで実現する事が可能です。
左の「ずっと」は、10秒毎に人感センサーの値をチェックして、動いていたらカウンターを+1しています。右の「ずっと」は、10分(600,000ミリ秒)に1回、カウンターの値をクラウド変数”taro-active”に書き込んで、カウンターをリセットしています。
給食のおかずが余っている事を距離が離れている他のクラスに伝える装置を作る事ができます。
このアイディアは、2018年につくば市立春日学園義務教育学校 藤原晴佳先生のクラス(当時3年生)の子供達が考えてくれました。当時はTFabConnectがまだ完成していなかったので、micro:bitの無線を使ったシミュレーションで終わっていました。
以下は、6年生は3クラスあり、自分のクラスが6年1組だった場合のプログラムです。
クラス名毎のクラウド変数を用意します。クラウド変数の値が1の場合に余りがある事を伝える物とします。ボタン操作としては、給食の余りが出たらAボタンを押します。その後、給食の余りが無くなったらBボタンを押します。
チュートリアルに登場するプログラムや、設置場所やセンサーを差し替える事により、様々な私達の身の回りの問題解決に活かす事ができます。