【micro:bit 温度】 温度センサーを使って温度計を作ってみよう!

micro:bitでプログラミング
この記事は約8分で読めます。

こんにちは、ナナです。

「micro:bit」には温度おんど調しらべるための「温度センサー」が搭載とうさいされています。それでは、温度を使ったプログラミングをしてみましょう!

この記事きじでは、次のことを学習がくしゅうできます。

この記事で学習できること
  • 「温度センサー」って何ができるの?
  • 「温度」ブロックの使い方とは?
  • シミュレータでの温度の変え方
  • 「棒グラフ」を使った温度の表示方法とは?

では、makecodeを使った、「温度センサー」の使い方をまなんでいきましょう。

スポンサー

「温度」をどうやって知ることができるの?

よ!悩みがあるのです!ぼくは『火遁かとんじゅつ』が得意とくいなんです。でも、『火遁の術』を使うと、僕はすっごくあついんですよ。ホントにあつくて、いつのにか火傷やけどしてるんですよっ!

なんとかなりませんか? 切実せつじつなや相談そうだんでした。

ナナ

このコーナーは『人生のおなや相談そうだんコーナー!』ではないんだけどね…。でもね、ITアイティ技術ぎじゅつはみんなのなやみやこまっていることを、解決かいけつすることで発展はってんしてきたからね。

じゃあ、君が『火遁の術』で火傷やけどする前に、温度おんど検知けんちして警告けいこくできるようにしてみようか!

「micro:bit」には温度おんど計測けいそくする機器ききいています。それを「温度センサー」とびます。

みんなの身近にある温度センサー

みんなのまわりにある「温度を調しらべるもの」と言えば、そう『体温計たいおんけい』ですね!

このような機器ききの中には「温度おんどセンサー」が搭載とうさいされており、温度を計測けいそくすることができるようになっています。

「micro:bit」にも、この温度センサーが搭載されているのです。

スポンサー

「温度」ブロックの使い方を知ろう!

温度おんどがわかる…だと…。そんな「忍術にんじゅつ」がこのにはあるのか…。世界は広いな、まだらぬ「忍術にんじゅつ」があるものだ!

よ!それはっ!どのようにすればよいのかっ?

ナナ

makecodeには温度を計測けいそくするためのブロックが用意よういされているよ。これを使えば簡単かんたんに温度を調しらべることができるよ!

「温度」ブロックを使って温度を表示してみよう!

「温度」ブロックは、入力ブロック一覧いちらんの中にふくまれています。

「ずっと」と「数を表示」ブロックと組み合わせてみましょう。温度が表示されます。

ナナ

シミュレーション画面では、温度のゲージをえることができ、表示ひょうじする温度おんど変更へんこうすることもできます。

シミュレータを使って温度を上げ下げしてみよう!

シミュレータでは疑似的ぎじてき外部がいぶ温度おんどを上げ下げすることができます。

マウスを使って上げ下げしてみましょう!

スポンサー

「温度」ブロックを使ったプログラムを作ってみよう!

おおぉ、これを使えば火傷やけどをする前に『火遁かとんじゅつ』をめることができそうだ!これで火傷やけどをせずにむぞ。だが、表示が数字でというのが物足ものたりないな…。

よ!もう少し表示方法ひょうじほうほう工夫くふうできないだろうか?

ナナ

そうだね~、じゃあLEDの表示をぼうグラフで表現ひょうげんしてみようか!「棒グラフ」ブロックを使ってみよう。

みんなは「ぼうグラフ」を知っていますか? 数字すうじの大きさを棒状ぼうじょうせん表現ひょうげんしたものですね。

温度を「棒グラフ」で表してみよう!

棒グラフの表示は「棒グラフ」ブロックを利用りようすることで簡単かんたんに表示できます。

「棒グラフ」ブロックでは、「表示ひょうじするあたい」と「最大値さいだいち」の2つの数字でぼうグラフを表現ひょうげんします。

「温度」を具体的に「棒グラフ」ブロックを使って表示すると次のようになります。

ナナ

「棒グラフ」の最大値さいだいちは、みんなが好きに指定していできますよ。今回こんかい温度おんど最大さいだいを「50℃」として表現ひょうげんしてみました!

温度を「棒グラフ」ブロックで表示したときのプログラムを改善しよう!

さきほどのプログラムを動かしたときに、シミュレータで「-5℃~50℃」の範囲はんいで温度を変更へんこうすることができましたね。

この時にマイナスの温度おんどである「ー1℃~ー5℃」とした場合ばあいに、棒グラフが上に少しびていることに気づきましたか?

マイナス温度おんど場合ばあいもグラフが伸びてしまうとわかりづらいため、ばさないようにプログラムを改善かいぜんしてみましょう。

0℃以下の温度では棒グラフを表示しないプログラム
  • 「温度」ブロックの温度が「0℃以下いか」の場合ばあいは、ぼうグラフには何も表示しないこと
  • 温度が1℃以上いじょうの場合は、最大値さいだいちの温度を「50℃」として棒グラフに表示すること

シミュレータで温度を「ー5℃~0℃」にしたときに、LEDに何も表示されなければOKですよ。

ナナ

「0℃以下」の「以下」の意味いみは「0℃もふくめて小さい」ことになります。
つまり「ー5℃~0℃」の場合ばあいは、棒グラフを表示しないということですよ!

「1℃以上」も同様どうように「1℃も含めて大きい」を意味いみしますよ。

みんな、できたかい? 「もし」ブロックを使って温度が「0℃以下」を判断はんだんすればできるね。

ぼくは「もし」ブロックを完全かんぜんに使いこなしているよ!みんなもけずに使いこなそうぜっ!

ナナ

「もし」ブロックは分岐を作るためのブロックでしたね。プログラムでは、よく出てきますよ!

スポンサー

やってみようコーナー:「温度」を使ったプログラミングの巻

ナナ

それじゃあ「温度」ブロックを使ったプログラムを作ってみよう!

修行その1:「温度」ブロックと「スイッチ」ブロックを使ったプログラム

修行内容:2つの表示を切り替えるプログラムを作ってみよう!

みんな、「ぼうグラフ」はざっくりと温度が高いか・低いかをるにはいいのだけれど、場合ばあいによっては正確せいかくな温度の数字を知りたいときもあるんだ。

ざっくりの「棒グラフ」と、正確な「温度の数字」の表示方法ひょうじほうほうえられるプログラムを作ってはくれないか?

「棒グラフ」と「温度の数字」を切り替えるプログラム
  • ぼうグラフ」の表示は練習問題れんしゅうもんだいで行ったようにマイナス温度おんどは表示なしとする
  • 温度おんどの数字」の表示は「数字を表示」ブロックを使つかうものとする
  • 「A」スイッチをすと「棒グラフ」の表示になるものとする
  • 「B」スイッチをすと「温度の数字」の表示になるものとする
  • プログラム開始直後かいしちょくごは「棒グラフ」を表示するものとする
ナナ

2つの表示方法ひょうじほうほうがあるということは、2つのモードがあるということですね。このモードをスイッチでえて、モードによって表示を変えればいいんですよ!

ナナ

みなさんできましたか? 今回は変数「表示モード」を作って、2つの表示を切り替えてみました。

表示モードが「0」のときは「棒グラフ」、「1」のときは「温度を数字」として切り替えていますよ。

みんな、たすかったよ。これでいつでも温度がわかるよ。修行しゅぎょうめそうだ!

修行その2:「温度」ブロックと「メロディ」ブロックを使ったプログラム

修行内容:温度が高いことをメロディで音を鳴らそう!

みんな、大変たいへんだ。温度おんどがわかるようになったのはいのだけど、「火遁かとんじゅつ」を発動はつどうしている最中さいちゅうに、「microbit」のLEDを見ている余裕よゆうがないことにが付いたんだよ!

LEDの見た目だけじゃなくて、べつの方法で危険きけん温度おんどらせてもらえないかな?

温度が高くなったらメロディを鳴らすプログラム
  • 温度が45℃をえたら、メロディ「ちゃんちゃん♪」をらす
  • 鳴り終わったときに、まだ45℃を超えているなら、再度さいどメロディを鳴らす
ナナ

またまた、ごめんね。みんな彼のねがいを聞いてあげてよ。こまっている人をたすけてあげるのが、プログラミングなんだよ。

プログラムは前のプログラムに追加ついかしてあげてね!

師範しはん!「ずっと」ブロックの中でメロディ「ちゃんちゃん♪」をらそうとしたのですが、なぜか「ビービービー」という音が鳴り続けるのです。プログラムがおかしいのでしょうか?

ナナ

「メロディ」ブロックの「ちゃんちゃん♪」は鳴らし終えるまで約3秒ほどの時間が必要です。

ただし、「メロディ」ブロックは鳴らし始めると、次のプログラムの実行に進んでしまいます。そのせいで「ビービービー」と鳴ってしまうんですね。

「メロディ」ブロックで音を鳴らし始めると、ループによって再度「メロディ」ブロックを鳴らそうとします。正しくメロディが再生さいせいできないのは、それが原因げんいんです。

「メロディ」ブロックを使う時は、気を付けなければなりません。ばやくメロディを鳴らすのであれば、鳴らしてから3秒間の「一時停止いちじていし」ブロックを入れるとメロディが鳴ります。

ナナ

ほかにも、いろいろ方法ほうほうがあるんですよ。問題もんだいの答えであたらしいプログラム方法を紹介しょうかいしましょう!

次の赤枠部分あかわくぶぶんが、メロディを鳴らすための追加ついかプログラムです。

特徴的とくちょうてきなのは変数「メロディ中」を作成し、メロディがっている状態じょうたい管理かんりしていることです。

変数「メロディ中」が「0」のときだけ、メロディを再度さいどらします。

おぉ、これで『火遁かとんじゅつ』を発動はつどうしたときに、火傷やけどをせずにみそうだ。みんな、助かったよ!