こんにちは!今回は、micro:bitを使ったプログラミングの第3回目です。
前回はプログラムの書き方を学びましたが、今回は「条件分岐(もし~でなければ)」に挑戦します。そして、micro:bitに搭載されている明るさセンサー(照度センサー)を使って、LEDをコントロールするプログラムを作成します。
これにより、周囲の明るさに応じてmicro:bitのLEDがどのように反応するかを学ぶことができます。
必要なもの
- PC(Makecode for Micro:bit)が動作する環境
- Micro:bit(マイクロビット)本体
- USBケーブル(USB-A — MicroUSB)
- インターネット接続(Makecodeはインターネットにつながっていないと動きません)
条件分岐とは?どのように使うの?
条件分岐とは、「もし~だったら」という条件に基づいてプログラムの動作を変える仕組みです。
これを使うことで、プログラムは異なる状況に応じて異なる動作をすることができます。
例えば、「もし明るさが30より大きいなら、LEDに明るさの数字を表示する」「それ以外(明るさが30以下なら)は、全てのLEDを点灯する」といった具合です。
条件分岐は、プログラムに柔軟性を持たせるために非常に重要です。
もし何か特定の条件が満たされた場合にだけ特定のアクションを実行させることができます。
これにより、よりインタラクティブで応答性の高いプログラムを作成することができます。
例えば、ゲームのプログラムでは、スコアが一定の値を超えたときに特別な効果を表示するなど、さまざまな用途があります。
明るさセンサーって何?LEDがどうしてセンサーになるの?
micro:bitには明るさセンサーが搭載されています。このセンサーは、基板表面にある25個のLEDを使って光の強さを測定します。
センサーが測定する明るさの値は0から255までの範囲で、0が最も暗い状態を意味します。
LEDが明るさセンサーとして機能する理由は、LEDが光を放射するだけでなく、光を受け取る能力も持っているからです。ただ、なぜLEDで明るさが測れるかは正直なところよくわかりません。。。
まあ細かいところは後回しにして使い方の話を。。明るさセンサーが周囲の環境の明るさを感知し、その情報を基にプログラムを動作させることができます。
この機能を使うことで、環境に応じたインタラクティブなデバイスを作ることができます。
たとえば、夜間は明るく光るランプを作成し、日中は自動的に消灯するなどの応用が考えられます。
プログラムの目的は?どうやってLEDをコントロールするの?
今回のプログラムでは、以下の動作を実現します:
- 明るさが30より大きい場合:LEDに明るさの数字を表示します。
- 明るさが30以下の場合:25個すべてのLEDが点灯します。
このプログラムを作ることで、条件に応じた異なる動作を実装する方法を学ぶことができます。
これにより、プログラムがどのように環境に応じて動作を変えるかを理解することができます。
また、明るさセンサーの使い方を学ぶことで、他のセンサーを使ったプロジェクトにも応用できるスキルを身につけることができます。
プログラムを作成しよう!
それでは、実際にプログラムを作成してみましょう。
今回は、MakeCodeのブロックエディタを使用します。
このエディタは、視覚的にブロックを組み合わせることでプログラムを作成できるため、初心者にも非常に使いやすいです。以下の手順で進めていきます。
1. MakeCodeエディタにアクセス
まずMakecode for microbitのサイトにアクセスし、MakeCodeのオンラインエディタを開きます。
MakeCodeエディタは、ドラッグアンドドロップでブロックを組み合わせるだけで簡単にプログラムを作成できるため、プログラミング初心者でも直感的に操作できます。
2. コードを入力
以下のブロックをエディタに配置してみましょう。このコードは、条件分岐を使ってLEDの動作を制御します。
- 「論理」の「もし でなければ」ブロックを「ずっと」ブロックの中にドラッグします。
- 「論理」をクリックして、くらべるから比較ブロックをドラッグします。「明るさ > 自分で決めた値【30】」を設定します。
- 「もし でなければ」ブロックの「もし」部分に「基本 > 表示する > 数値を表示」をドラッグし、「光センサー > 光レベル」を設定します。
- 「でなければ」部分に「基本 > 表示する > LED画面に表示」ブロックをドラッグし、「すべてのLEDを点灯状態に変更します。」を選択します。
※すべてのLEDをクリックして白くしてください。
以下はブロックエディタでの完成図です:
3. コードの説明
- 光レベル > 30:この条件が真である場合、つまり明るさが30より大きい場合の処理です。
- 数値を表示(光レベル):明るさの値をLEDに表示します。
- 完全な四角形:明るさが30以下の場合に全てのLEDを点灯させるアイコンを表示します。
4. プログラムをmicro:bit(マイクロビット)にダウンロード
プログラムが完成したら、micro:bitにダウンロードして動作を確認しましょう!
※ プログラムを micro:bitに転送するためには、micro:bitをパソコンに接続しなくてはいけません!パソコンとmicro:bitの接続方法を忘れてしまった!という人は、【入門編3】MakeCodeでmicro:bit (マイクロビット)とPCを接続する方法!USBケーブルで簡単に接続する手順とは?をご覧ください。
- プログラムが完成したら、画面下部の「ダウンロード」ボタンをクリックします。
- micro:bitとパソコンが正常に接続されている場合、ダウンロードボタンを押すことで作成したプログラムが micro:bitに転送されます
暗い場所と明るい場所で実際に試してみると、LEDの動作が確認できるはずです。
私が明るい室内で実験をしたところ、電気スタンド直下は120~140ぐらいの値を表示し、LEDにてをかざすとLEDが全点灯しました。
同じように周囲が暗くなるとLEDがすべて点灯し、明るくなると明るさの数字が表示されることを確認してみましょう。
※ 実験する部屋が暗すぎて、どうしても30を超えないという場合は、明るさの基準として決めた30という数字をもう少し小さくして再度実験してみてください
照度が十分にある場合※数字は右から左に流れるため、一度に全体は表示できません。
照度が低く、LEDが全点灯しました。
本来は動画で撮った方がわかりやすいとも思うのですが、Micro:bitのLEDは人間の目には見えない速さで点滅しているので、動画と相性が悪いのです。
まとめ
今回は、micro:bitを使って条件分岐と明るさセンサーを活用する方法を学びました。
条件分岐を使うことで、プログラムは異なる状況に応じて異なる動作をすることができます。
さらに、明るさセンサーを使うことで、周囲の環境に応じたインタラクティブなデバイスを作成することができるようになります。
次回もお楽しみに!次回は、さらに進んだプログラミングのテクニックや、他のセンサーを使ったプロジェクトについて学びます。お楽しみに!