【マイクロビット】夏休みの工作×プログラミング!冷蔵庫の見張り番の作り方

夏休みの自由研究で定番の工作に
プログラミングをかけ算してみてはいかがでしょうか。

今回、マイクロビット(micro:bit)を使って
冷蔵庫の見張り番を作ってみました。

マイクロビットとは、情報教育のために
英国放送協会(BBC)で開発された小さなコンピュータで
イギリスでは11歳と12歳の小学生全員に配布されています。
 

プログラミングが初めての方でも分かるように
なるべく簡単なプログラムにしました。

 

今回作ったプログラム

冷蔵庫の見張り番

一般的に、冷蔵庫の扉を10秒開けたままにすると
庫内の温度は3~5℃も上昇し、
元の温度に戻るまでに10分以上もかかると言われています。

そこで冷蔵庫を開けている時間を
視覚的にお知らせする装置を作ってみました。

冷蔵庫の中に置いておいて、
冷蔵庫を開けると「うれしい顔」が表示され
5秒後に「かなしい顔」、
10秒後に「おこり顔」が表示されます。

 

必要なもの

冷蔵庫の見張り番の材料

・マイクロビット

・電池ボックス&電池
マイクロビット単体で動かしたい場合、
電池ボックスが必要です。

・USBケーブル
パソコン側:USB TypeA
マイクロビット側:Micro USB TypeB

・パソコン
インターネットができて
USBポートがついているもの。

・装飾用するもの
画用紙や牛乳パック、空き箱など

\microbitV2と便利なパーツのセットです!/

 

使用する機能

明るさセンサーとLED

今回はマイクロビットの
LED明るさセンサーを使います。

LED

マイクロビットの表面の中央にある
25個(5×5)の赤色に光るLED。

ユーザーがプログラミングすることで、
文字や数字などを表示させることができます。

明るさセンサー

LEDは明るさセンサーとしても使うことができます。
まわりの明るさを計測し、0~255の値で表します。
(真っ暗だと0、明るくなるほど値が大きくなる)

冷蔵庫が閉まっている時、庫内は暗くなります。

なので冷蔵庫を開けた時につく照明の光を
明るさセンサーが感知して、開いている時間を計算。

開いている時間によってLEDに表示する
顔を変更するようにします。

 

MakeCodeエディターでプログラミング

MakeCodeエディターの画面を開いて
実際にプログラミングしてみましょう。

MakeCodeエディターの基本的な使い方は
こちらの記事をご覧ください。

 

光量計を作ってみる

まず最初に簡単な光量計を作ってみましょう。

ボタンAがおされた時、
明るさの値をLEDに表示するプログラムです。

光量計のプログラム

ツールボックスから必要なブロックを
ドラッグアンドドロップで
プログラミングエリアに持ってきて
プログラムを組み立てましょう。

「ボタンAが押されたとき」ブロックと
「明るさ」ブロックは入力のカテゴリ、
「数を表示」ブロックは基本のカテゴリにあります。

ドラッグアンドドロップで組み立てる

ドラッグアンドドロップで組み立てる2

必要なブロックをプログラミングエリアに出したら、
ドラッグアンドドロップでブロックを組み立てていきます。

ドラッグアンドドロップで組み立てる3

プログラムができたら
マイクロビットに転送して
部屋の中や外など
色々な場所の明るさを測ってみましょう。

この時、
冷蔵庫の中の明るさを測ってメモしておいてくださいね。

 

冷蔵庫の見張り番のプログラムをつくる

LEDと明るさセンサーの使い方が分かったところで
本題の冷蔵庫の見張り番をプログラムしてみましょう。

冷蔵庫の見張り番プログラム

スポンサーリンク

変数ブロック

「スタート稼働時間」「経過時間」は変数です。

変数カテゴリで「変数を追加する」ボタンを
クリックして作ってください。

変数とは、
データを一時的に覚えておくための入れ物のことです。
プログラムで人間が分かるように名前を付けます。

 

MakeCode変数の作り方

変数の値を変える「変数~を~にする」
ブロックも変数カテゴリにあります。

稼働時間を取得するブロック

「稼働時間(ミリ秒)」は入力カテゴリのその他にあります。

「稼働時間(ミリ秒)」は電源が入ってから
経過した時間(ミリ秒)を取得するブロックです。

ミリ秒は1,000分の1秒、
マイクロ秒は1,000,000分の1秒です。

もし~ならブロック

「もし~なら」ブロックと
「○○>□□」ブロックなど
値をくらべるブロックは論理のカテゴリにあります。

 

プログラム解説

今回のプログラムをフローチャートにしてみました。

フローチャート(流れ図)とは、
 仕事の流れや処理の手順を図式化したもので、
 プログラムの設計に使われています。

冷蔵庫の見張り番フローチャート

最初だけ・ずっと

「最初だけ」のブロックの中には
プログラムの起動時に1回だけ実行する内容が入ります。

「スタート稼働時間」「稼働時間(ミリ秒)」にする命令で
「スタート稼働時間」冷蔵庫を開けた時点の稼働時間を記憶しておきます。

以降は「ずっと」のブロックの中の内容をくり返します。

もし冷蔵庫が開いていたらの判定

・もし「明るさ」> 5 なら
 冷蔵庫が開いている状態で
 経過時間の判定を行います。

・でなければ
 冷蔵庫が閉まっている状態です。
 「スタート稼働時間」
 リセット(稼働時間(ミリ秒)にする)して
 LEDの表示を消します。

明るさセンサーはマイクロビットのLEDの
明るさも測定してしまうので
0だとうまく動きません。

また最初に作った光量計で測った
冷蔵庫の中の明るさの値より
大きな値にしてしまうと、
冷蔵庫を開けても反応しなくなってしまいます。

うまく動かなかった場合は5の値を調整してみてください。

経過時間の判定

「経過時間」「稼働時間(ミリ秒)」「スタート稼働時間」にする命令で、
冷蔵庫を開けてから何秒たったか計算しています。

・もし「経過時間」< 5000 なら
 「冷蔵庫を開けてから5秒未満なら」の判定です。
 「うれしい顔」を表示します。

・でなければもし「経過時間」<= 10000 なら
 「冷蔵庫を開けてから5秒~10秒」ならの判定です。
 「かなしい顔」を表示します。

・でなければ
 「10秒より長く冷蔵庫を開けている状態」なので
 「おこり顔」を表示します。

 

シミュレーターで確認

プログラムが完成したら
シミュレーターで思った通りに動くかテストしましょう。

「明るさ」を使っていると、
マイクロビットの左上にコントローラーが
出てくるので丸の中をドラッグして
明るさの値を変えてみてください。

シミュレーターで確認

5より大きい場合と5以下の場合で動きが変わったでしょうか。

 

実機でテストしてみよう

シミュレーターで確認できたら
マイクロビットにプログラムを転送して
実際に動かしてみましょう。
明るい場所に置いたとき、真っ暗な場所に置いたときで

動きが変わったでしょうか。

ずっと冷蔵庫を開けたり閉めたりしていると怒られるので
冷蔵庫の中に置くテストは一番最後にやりましょうね。

 

マイクロビットを装飾しよう(工作)

マイクロビットをそのまま冷蔵庫に置くのも
さみしいので装飾してみましょう。

冷蔵庫の見張り番工作

青い画用紙で
マイクロビットと電池ボックスを
収納するケースを作ってみました。

牛乳パックや空き箱を利用したり、
画用紙でオリジナルのケースを作って
絵や色をつけるのもいいですね。

 

もっとスゴイのを作りたい人向け

LEDだけだと気が付かない場合もあるので
音でもお知らせできたらいいですよね。

マイクロビットで音を鳴らしたい場合、
マイクロビット本体と別にスピーカー
ワニ口クリップが必要になります。

電池ボックスとスピーカーが一体になったセットがありました。
コードがないのでコンパクトです。

なお、最新バージョン(v2.0)の場合は
スピーカーが内蔵されているので
新たに用意する必要はありません

 

まとめ

マイクロビットは
夏休みの工作の材料としては、
少し金額が高いように感じるかもしれません。

しかし、マイクロビットは
くり返し使うことができますし、
新しくプログラムを作って
まったく違う作品を作ることができます。

1回きりの工作キットよりは
長く使えるのではないでしょうか。

次の年にもっと複雑なプログラムに
チャレンジするのもオススメです。

 

\microbitV2と便利なパーツのセットです!/

 

 

タイトルとURLをコピーしました