こんにちは、ナナです。
「micro:bit」には方角を知ることができる機能が搭載されており、この機能を「地磁気センサー」と呼びます。
それでは、方角を使ったプログラミングをしてみましょう!
この記事では、次のことを学習できます。
では、makecodeを使った、「地磁気センサー」の使い方を学んでいきましょう。
「方角」をどうやって知ることができるの?

師範!「micro:bit」では、何やら方角を知ることができるということを聞きましたよ。ここだけの話ですが、わたくしは忍者なのに方向音痴なんです…。
「micro:bit」があればわたくしの弱点がひとつ克服できると思うのです。「方角」はどうやって知ることができるんですか? どうなんですか?ドンッ!

弱点を克服したい気持ちの真剣さが伝わってくるよ!
micro:bitでは「地磁気センサー」と呼ばれる部品が付いていて、このセンサーを利用すると「東西南北」の方角がわかるんですよ。それでは、使ってみましょう!
方角とは「東西南北」の方向のことですね。micro:bitでプログラミングをすることで、方角を知ることができるのです。
コンパスで方角を知る方法
みなさんが「方角」を知るための一番簡単な方法は「コンパス」を使うことです。

赤い針が向いている方向が「北」の方角を示します。
地球は巨大な磁石でできている
コンパスを使うと、どうして方角がわかるでしょうか?
地球は巨大な磁石でできており、北極にS極、南極にN極があります。これを地磁気と呼びます。

コンパスの赤い針は「S極」に引き付けられるため、赤い針は「北」を示すことになるのです。
micro:bitに付いている地磁気センサー
地磁気を検出し、方角を知ることができる機器を「地磁気センサー」と呼びます。micro:bitには、この「地磁気センサー」が付いているため方角を調べることができるのです。
「方角」ブロックの使い方

師範!これで私はいつでも「方角」を知ることができるのですね。早くっ、早くっ、プログラミングの方法を教えてくださいっ!
一刻も早く、方向音痴という呪いを解くんですよ~。はやく~

早くしないと僕が呪われそうだから、教えようね。ブロックの中に「方角」を調べるものがあるから、そのブロックを使うんだよ!
「方角」ブロックで方角を数字で表示しよう!
「方角」ブロックは入力ブロック一覧の中に含まれています。

「ずっと」ブロックと「数字を表示」ブロックと組み合わせてみましょう!

方角は「0°」~「360°」の角度で表現されます。
シミュレータの角度の変え方
シミュレータにおいて「micro:bit」の方角を変えるためには、次のようにアイコンを回転させることで行います。

このようにマイクロビットの顔をマウスを使って回すことができるのです。角度の数字も表示されていますね。

この操作は「方角」ブロックを使用したときにだけ、できるようになっています。普段はできませんよ。
角度と「東・西・南・北」の関係性
「方角」ブロックが示す角度「0°~360°」とはいったい何の角度なのかを説明します。
この角度は「北を0°とした時に、mciro:bitの頭が向いている右回りの角度」のことです。

例えば、「micro:bit」の頭を『東』に向けると角度は「90°」となります。
micro:bit機器で「方角」を表示してみよう!

ちょ、ちょ、ちょ、ちょ、ちょ、師範!「micro:bit」が壊れちゃいました!
わたくし、早く方角が知りたいと思って、プログラムをmicro:bit機器に書き込んでみたんです。そしたら何か文字が表示されてLEDが点滅してるんです。
これです。早く、修理してください!

あっ、それね。それは壊れてないから大丈夫だよ。使い方を説明しようね!
実際のmicro:bit機器に「方角」ブロックを使ったプログラムを書き込む場合は、最初に特別な手順が必要となります。それを解説しましょう。
micro:bit機器に地磁気センサーのプログラムを書き込むと・・・
地磁気センサーのプログラムを「micro:bit」に書き込むと、最初は「TILT TO FILL SCREEN」という英語がスクロールしながら表示されます。

この英語は「micro:bitを傾けて全てのLEDを点灯で埋めてください」という意味です。

LEDを全て光らせると、地磁気センサーがようやく方角を検知できるようになります。

この作業はmicro:bitのプログラムを書き換えたときには毎回最初に必要となります。プログラムを書き換えずに電源を入れ直しただけなら、2回目以降はやらなくていいんですよ!
「方角」ブロックを使ったプログラムを作ってみよう!

師範!「方角」の数字って2ケタや3ケタの場合もあるので、数字がスクロールしちゃいますね。
これだとすぐに方角がわからないので、ちょっと不便です。

そうだね。LEDで表示できる幅は5×5個しかないからね。数字の表現ではスクロールしちゃうんだね。
それじゃあ、数字以外の方法で「方角」を示してみようっ!
それでは、「方角」をアルファベットで表示してみましょう。
「東西南北」の方角をアルファベットで表す
「東・西・南・北」の方角は英語では、次のようにアルファベット1文字でも表現します。
方角 | アルファベット | 英語表記 |
北 | N | North(ノース) |
東 | E | East(イースト) |
南 | S | South(サウス) |
西 | W | West(ウェスト) |
アルファベットであれば、LEDに簡単に表示することができます。さらに、1文字のためスクロールもしませんね。

それじゃあ、次は方角をアルファベットで表現するプログラムを作る練習をしようね。
方角の角度とアルファベットの関係性を決める
方角の角度である「0°」~「360°」を4つに分割して、東西南北を分けてみましょう。

例えば、角度が「46°~135°」の場合に、方角を「E(東)」として表示するとします。
「もし」ブロックと「かつ」ブロックを組み合わせよう!
方角の角度が、とある数字の範囲内であるかどうかは、「かつ」ブロックを利用して条件式を作ります。

「東」の角度を判断するためには、「もし『角度』が『46°』以上で『かつ』、『角度』が『135°』以下のとき」のように、2つの条件を組み合わせる必要があります。

そのために「かつ」ブロックを利用するのです。
「かつ」ブロックと「または」ブロックは、次のように使い分けを行います。
かつ | 条件1と条件2がどちらも「真」のときに、全体が「真」となる |
または | 条件1か条件2のどちらかが「真」のときに、全体が「真」となる |

この2つのブロックは、意味を間違えやすいんだよ。しっかりと考えて使いこなそうね!
方角の角度によって「東西南北」をLEDにするプログラムを作ろう!
それでは、ここまでの知識をもとにプログラムを作ってみましょう!

まずは、みんな自分でプログラムを考えて動かしてみよう!プログラムができたら、「練習の答え」を見てみよう!

みんな、できたかしら。「もし」ブロックで4つの条件を並べればできるのよ。「または」「かつ」ブロックを上手に使いこなす必要があるわ!

よく見ると、北である「N」を表示する条件だけは「または」ブロックを利用していることに注意が必要です。
「N」の表示条件:角度が316°以上、または角度が45°以下のとき
そのため、「N」だけは「または」ブロックを使うのです。

このように「または」と「かつ」のブロックは、よく考えないと間違えて使ってしまいます。ゆっくり声に出して条件を言ってみると間違いに気づきやすいですよ!
質問コーナー:「方角」ブロックについて気になること

何か質問がある人は聞いてね!何でもいいよ!
質問:「micro:bit」を電池で動かすためにはどうするの?

師範!わたくし、この「micro:bit」があれば迷子にならずに済みそうです。でもでも、「micro:bit」ってUSBケーブルでパソコンとつながってないと動かないじゃないですか…。
修行中にパソコンなんて持ち歩けないですよ~。何とかしてくださいっ!

「micro:bit」を動かすためには電気が必要になるからね。普段みんながプログラミングするときは、USBケーブルで電気を流しているから動いているんだね。
「micro:bit」には電池をつなげて、動かすこともできるんだよ。「microbit」の箱の中に入っているので確認してみてね。
今後、「micro:bit」を持ち歩いて動かしたいってことが出てきます。「micro:bit」は電池で動かすこともできるのです。
micro:bit機器を電池で動かすために用意するものと組み立て方
「micro:bit」を購入した箱の中に、電池ボックスが入っていることでしょう。これを使いますよ。単4電池は2本は、この電池ボックスの中にいれます。

電池ボックスにはON/OFFのスイッチが付いています。ONにすると電源が入りますよ。

「単4電池」は少し小さめの電池だよ。これは「micro:bit」の箱には入っていないから、お家にある電池を使おう。電池がなければ、お父さんやお母さんに相談してね!
電池ボックスをつなげるときに注意してほしいこと‼
電池ボックスを「micro:bit」につなげるときに注意してほしいことがあります!

電池ボックスのコネクタは『奥まで入れずに少しだけ差し込んでください』

奥まで差し込んでしまうと、なかなか外れなくなってしまうんです。だから、少しだけ差し込んだ状態にしてあげてね!
電池ボックスをONにすると「micro:bit」が動くぞ!
電池ボックスのスイッチを「ON」にしてみましょう。電源が入りますよ!

電池ボックスを使うと電池が消耗するから、普段使うときは電池ボックスを外しておこうね!

これで、外に出ても「micro:bit」を動かすことができるわ!フフフッ、方角さえわかれば、道に迷うことはないわね!
やってみようコーナー:「方角」を使ったプログラミングの巻

それじゃあ「方角」ブロックを使ったプログラムをさらに作って、使い方をマスターしようね!
修行その1:「方角」ブロックを使ったプログラム
コンパスの赤い針は、常に北の方向を指し示しています。このコンパスをプログラムで再現してみましょう。


矢印のマークは「矢印を表示」ブロックを使って表示しましょう。これを使えばLEDに8方向の矢印を簡単に点灯できます。


さぁみんな、私の方向音痴を克服するために協力してよねっ!忍者なのに、こんな弱点があったら恥ずかしいんだからねっ!

プログラムができたみんなは、答え合わせをしてみようね。「micro:bit」に書き込んで、電池で動かしてみるよいいよ!

フフフ、ようやくできたわ!8パターンの角度を「もし」ブロックを使って、分岐すればいいわよね。みんな角度の値には注意してよ。

角度に対して表示する矢印が「北」を向くように設定してください。
最初の338°~22°までは「または」ブロックを利用しますよ。

micro:bitのプログラムを最初から学びたい子は、ここから始めよう!