こんにちは、ナナです。
「micro:bit」には「加速度センサー」が搭載されています。「加速度センサー」を使うことで本体の傾きや落下状態などを知ることができます。
この記事では、次のことを学習できます。
では、makecodeを使った、「加速度センサー」の使い方を学んでいきましょう。
「傾き」をどうやって知ることができるの?
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
師範!「micro:bit」には姿勢を知ることができる機能が備わっていると聞いたことがあります。それはいったいどんなものなのでしょうか?
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
「加速度センサー」のことだね。「加速度センサー」を利用することで、micro:bit本体が斜めに傾いていることや、揺れているなどを知ることができるんですよ!
「加速度センサー」を使うと、3つの軸に対して本体の姿勢の状態を知ることができます。
![加速度センサー](https://monozukuri-c.com/wp-content/uploads/2019/09/a4cbba2ccadb037ac77312914dd80565-1.png)
「加速度センサー」が使われているモノ
「加速度センサー」はみんなの一番身近なもので言うと、スマートフォンに搭載されています。
![加速度センサーが使われている機器](https://monozukuri-c.com/wp-content/uploads/2019/09/ffa6c6fa74fd6a86ad8d53b1147b6b23-1.png)
その他にも、ドローンなど様々な機器に搭載されています。
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
このような「センサー」が、みんなの生活を便利にしているんですよ!
「加速度イベント」ブロックを使ってみよう!
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
師範!「加速度センサー」を使ったプログラムはいったいどのようなことができるのでしょうか?
わたくしがこのように「高速移動」したこともわかってしまうのですか?シュシュッ!
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
「加速度センサー」を利用できるブロックが用意されているよ。君が高速移動したのであれば、「3G」や「6G」などのイベントを使えば検知できるかもね!
「加速度イベント」ブロックとは
「加速度イベント」ブロックは、入力ブロック一覧の中に含まれています。
![加速度イベントブロックの選択](https://monozukuri-c.com/wp-content/uploads/2019/09/10a1eda181517d2341ad58423a9e8956-1.png)
イベントを選択することで、傾いたときなどに特定のプログラムを動かすことができます。
「加速度イベント」ブロックのイベントの種類とは?
「加速度イベント」ブロックの種類は、次の中から選択することができます。
![加速度イベントブロックの種類](https://monozukuri-c.com/wp-content/uploads/2019/09/e993d63eca562eaa48dda6a3ff45657c-1.png)
動きの種類 | 説明 |
---|---|
ゆさぶられた | 揺らしたとき |
ロゴが上になった | ロゴを上向きとして垂直に立てたとき |
ロゴが下になった | ロゴを下向きとして垂直に立てたとき |
画面が上になった | LEDの面が天井を向いているとき |
画面が下になった | LEDの面が床を向いているとき |
左に傾けた | 左に傾けたとき |
右に傾けた | 右に傾けたとき |
落とした | 落としたとき。(1Gのとき) |
3G | 落とすよりも3倍の重力が掛かったとき |
6G | 落とすよりも6倍の重力が掛かったとき |
8G | 落とすよりも8倍の重力が掛かったとき |
「ゆさぶられた」ときのイベントでLEDを光らせてみよう!
それでは、「加速度イベント」を使って実際にプログラムを動かしてみましょう。
![ゆさぶられたときのプログラム](https://monozukuri-c.com/wp-content/uploads/2019/09/43311342e451a682251f399a45120146-1.png)
シミュレータ上ではマウスを画面の上で動かすことで、揺らすことができます。「SHAKE」ボタンを押すことでも同様の効果があります。
「加速度イベント」ブロックを使ったプログラムを作ってみよう!
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
師範!「加速度イベント」ブロックにはこんなに種類があるのですか?実際に動かして、どんなことができるのかを試してみたいです。
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
そうだね。じゃあ、イベントの種類を変えながら、どんなことができるのかを確認してみようね!
奥・手前・右・左に傾けて矢印を表示しよう!
それでは、「奥側」「手前側」「右側」「左側」にmicrobitを傾けたときに、傾けた方向に向けて矢印を表示してみましょう!
![上下左右に矢印](https://monozukuri-c.com/wp-content/uploads/2019/09/4aa29673d04681ff49610127502d5bc6-1.png)
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
つまり、傾けることによって、常に床側に矢印が向くことになります。イベントブロックを使ってプログラミングしてみてね!
プログラムができたら「練習問題の答え」を開いてみよう。
「ロゴが上/下になった」と「右/左に傾けた」イベントを利用することでプログラミングしましょう。
![上下左右の矢印プログラム](https://monozukuri-c.com/wp-content/uploads/2019/09/2dcfa43afd668f33e23f3e24fca50f9a-1.png)
矢印の方向に注意してくださいね。動かしたときに常に床側に矢印が向けば正解です!
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
「micro:bit」機器を持っているみんなは、プログラムをダウンロードして実際の機器で動かしてみてね!
本当に傾きが検知できる様子を見ることができるよ!
「加速度状態」ブロックを使ってみよう!
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
師範!「加速度イベント」ブロックは、傾きを検知した瞬間に1度だけプログラムが実施されるものですよね。
「右に傾いている間はずっと動かしたい!」みたいなことってできないのですか?
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
よく考察しているね。そのとおり、「加速度イベント」ブロックは『イベント』というものが、発生したときに動くブロックなんですよ。
だから、「右に傾いた!」という瞬間に1度だけ発生するイベントなので、「右に傾いている」という状態のままでは、プログラムは動かないんですよ。
これを解決するのが「加速度状態」ブロックですね。
「加速度イベント」ブロックは継続的なものではなく、「傾いた!」といったポイントに対して動作するプログラムです。
![加速度イベントブロックの動き](https://monozukuri-c.com/wp-content/uploads/2019/09/1304ad2100053d37c7d168335aade35e-1.png)
「加速度状態」ブロックを使おう!
「加速度状態」ブロックは、入力ブロック一覧の中に含まれています。
![加速度状態ブロックの選択](https://monozukuri-c.com/wp-content/uploads/2019/09/a947a39f0b067abd920e0ea0717dc955-1.png)
この形は「もし」ブロックなどの条件式で利用する形となっていますね。
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
「加速度状態」ブロックで選択できる項目は、「加速度イベント」ブロックと同じものですよ。▽を押すと選ぶことができます。
「加速度状態」ブロックによる状態継続のプログラムを作ってみよう!
「ずっと」ブロックの中でブロックを組み合わせてみましょう。
![右に傾けると動き続けるプログラム](https://monozukuri-c.com/wp-content/uploads/2019/09/e73749154a2dd568b891e6c2a6b234c0-1.png)
右に傾けることで、右に傾いた状態であれば常にアイコンを切り替えるプログラムが動き続けます。
「加速度状態」ブロックを利用するときの注意
「加速度状態」ブロックを使う時に、すごく大事な注意事項があります。
「加速度状態」ブロックで状態を判定するときは、必ず「加速度イベント」ブロックを1つ以上プログラムエリアに配置してください。
理由は、シミュレータ上では問題なく動きますが、「micro:bit」機器でプログラムを動かしたときに正しく状態を判定することができないためです。
加速度イベントの処理内容は空っぽでもよいので、必ず1つ配置しましょう!
![注意として加速度イベントブロックを配置する](https://monozukuri-c.com/wp-content/uploads/2019/09/c66d75128b96a374bead438353244e53-1.png)
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
「micro:bit」機器でプログラムを動かす時には、「加速度イベント」ブロックが配置されていないと「加速度状態」ブロックが状態を判断できません。
やってみようコーナー:「加速度」を使ったプログラミングの巻
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
それじゃあ「加速度イベント」ブロックを使ったプログラムを作ってみよう!
修行その1:「加速度イベント」ブロックを使ったプログラム
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
師範!わたくし、忍猫ちゃんと一緒にボードゲームをしようと思って、箱を開けてみたんです。そしたら、サイコロが見つからないんですっ!
ちゃんと片付けたはずなのに、サイコロがなくなっちゃいました。エーン(泣)。サイコロを買ってください。
![](https://monozukuri-c.com/wp-content/uploads/2019/09/c614cc0a0f02235577ac8d68c54bf4a6.png)
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
サイコロなくなっちゃったの? 今の君ならサイコロを買わなくても、「micro:bit」で作っちゃえばいいんだよ!
それじゃあ、今日学んだ「ゆさぶられたとき」ブロックを使って、よりサイコロっぽくしてみようね!
![サイコロのLED](https://monozukuri-c.com/wp-content/uploads/2019/09/a80a58c4067a5ff430ee7b1a69ffea48-1.png)
![忍猫がシャカシャカ](https://monozukuri-c.com/wp-content/uploads/2019/09/1acf6881020991eb4b4c4d91b22816a4-1.png)
みんな「乱数」の使い方を覚えていますか?
忘れてしまった人は『【micro:bit 乱数】プログラムでサイコロを作ってみよう!』を見てみましょうね。
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/274ac86909c1a78190c701cdec501e0d-1.png)
プログラムができて「micro:bit」機器を持っている子は、プログラムをダウンロードして書き込んでみましょう。サイコロのようになりますよ!
変数「サイコロの目」を作って、乱数を設定することで作ることができますね。
「加速度イベント」ブロックの『ゆさぶられたとき』を利用することで、シャカシャカしたときにサイコロの目が変わります。
![ゆさぶられたときにサイコロを振る](https://monozukuri-c.com/wp-content/uploads/2019/09/694514545691b6b86f33d408ae36607b-1.png)
![](https://monozukuri-c.com/wp-content/uploads/2019/07/88c0a382ed2194932102ef5a18874664.png)
フフフ、これで忍猫ちゃんとボードゲームができるわ!プログラムがあれば何でもできちゃうわね。便利だわ!
![ナナ](https://monozukuri-c.com/wp-content/uploads/2019/06/bfc1cf65d1130f875793b49176917183-1.png)
micro:bitのプログラムを最初から学びたい子は、ここから始めよう!