【micro:bit 傾き】加速度センサーで機器の姿勢を知ろう!

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

こんにちは、ナナです。

「micro:bit」には「加速度かそくどセンサー」が搭載とうさいされています。「加速度センサー」を使うことで本体ほんたいかたむきや落下状態らっかじょうたいなどを知ることができます。

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

この記事で学習できること
  • 「加速度センサー」を使うとできることって何?
  • 「加速度センサー」って何に使われているの?
  • 「加速度イベント」ブロックの使い方
  • 「加速度状態」ブロックの使い方と使う時の注意点

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

スポンサー

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

師範しはん!「micro:bit」には姿勢しせいることができる機能きのうそなわわっていると聞いたことがあります。それはいったいどんなものなのでしょうか?

ナナ
ナナ

「加速度センサー」のことだね。「加速度センサー」を利用りようすることで、micro:bit本体ほんたいななめにかたむいていることや、れているなどをることができるんですよ!

「加速度センサー」を使うと、3つのじくに対して本体の姿勢しせい状態じょうたいを知ることができます。

加速度センサー

「加速度センサー」が使われているモノ

「加速度センサー」はみんなの一番身近いちばんみじかなもので言うと、スマートフォンに搭載とうさいされています。

加速度センサーが使われている機器

その他にも、ドローンなど様々さまざま機器きき搭載とうさいされています。

ナナ
ナナ

このような「センサー」が、みんなの生活せいかつ便利べんりにしているんですよ!

スポンサー

「加速度イベント」ブロックを使ってみよう!

師範!「加速度センサー」を使ったプログラムはいったいどのようなことができるのでしょうか?

わたくしがこのように「高速移動こうそくいどう」したこともわかってしまうのですか?シュシュッ!

ナナ
ナナ

「加速度センサー」を利用りようできるブロックが用意よういされているよ。君が高速移動したのであれば、「3G」や「6G」などのイベントを使えば検知けんちできるかもね!

「加速度イベント」ブロックとは

「加速度イベント」ブロックは、入力ブロック一覧いちらんの中にふくまれています。

加速度イベントブロックの選択

イベントを選択せんたくすることで、かたむいたときなどに特定とくていのプログラムを動かすことができます。

「加速度イベント」ブロックのイベントの種類とは?

「加速度イベント」ブロックの種類しゅるいは、次の中から選択せんたくすることができます。

加速度イベントブロックの種類
動きの種類説明
ゆさぶられた揺らしたとき
ロゴが上になったロゴを上向きとして垂直に立てたとき
ロゴが下になったロゴを下向きとして垂直に立てたとき
画面が上になったLEDの面が天井を向いているとき
画面が下になったLEDの面が床を向いているとき
左に傾けた左に傾けたとき
右に傾けた右に傾けたとき
落とした落としたとき。(1Gのとき)
3G落とすよりも3倍の重力が掛かったとき
6G落とすよりも6倍の重力が掛かったとき
8G落とすよりも8倍の重力が掛かったとき

「ゆさぶられた」ときのイベントでLEDを光らせてみよう!

それでは、「加速度イベント」を使って実際じっさいにプログラムをうごかしてみましょう。

ゆさぶられたときのプログラム

シミュレータ上ではマウスを画面がめんの上でうごかすことで、らすことができます。「SHAKEシェーク」ボタンをすことでも同様どうよう効果こうかがあります。

スポンサー

「加速度イベント」ブロックを使ったプログラムを作ってみよう!

師範!「加速度イベント」ブロックにはこんなに種類しゅるいがあるのですか?実際じっさいに動かして、どんなことができるのかをためしてみたいです。

ナナ
ナナ

そうだね。じゃあ、イベントの種類を変えながら、どんなことができるのかを確認してみようね!

奥・手前・右・左に傾けて矢印を表示しよう!

それでは、「奥側」「手前側」「右側」「左側」にmicrobitを傾けたときに、傾けた方向に向けて矢印を表示してみましょう!

4方向に傾けたときに矢印を表示するプログラム
  • 「奥」「手前」「右」「左」にかたむけたときに、次の図のように矢印やじるしを表示すること
  • 「A」スイッチを押したときはLEDの表示をすこと
上下左右に矢印
ナナ
ナナ

つまり、かたむけることによって、つね床側ゆかがわに矢印が向くことになります。イベントブロックを使ってプログラミングしてみてね!

プログラムができたら「練習問題の答え」を開いてみよう。

「ロゴが上/下になった」と「右/左に傾けた」イベントを利用することでプログラミングしましょう。

上下左右の矢印プログラム

矢印の方向に注意ちゅういしてくださいね。動かしたときにつね床側ゆかがわに矢印が向けば正解せいかいです!

ナナ
ナナ

「micro:bit」機器ききを持っているみんなは、プログラムをダウンロードして実際じっさいの機器で動かしてみてね!

本当にかたむきが検知けんちできる様子ようすを見ることができるよ!

スポンサー

「加速度状態」ブロックを使ってみよう!

師範!「加速度イベント」ブロックは、かたむきを検知けんちした瞬間しゅんかんに1度だけプログラムが実施じっしされるものですよね。

「右にかたむいているあいだはずっとうごかしたい!」みたいなことってできないのですか?

ナナ
ナナ

よく考察こうさつしているね。そのとおり、「加速度イベント」ブロックは『イベント』というものが、発生はっせいしたときに動くブロックなんですよ。

だから、「右にかたむいた!」という瞬間しゅんかんに1度だけ発生はっせいするイベントなので、「右に傾いている」という状態じょうたいのままでは、プログラムは動かないんですよ。

これを解決かいけつするのが「加速度状態かそくどじょうたい」ブロックですね。

「加速度イベント」ブロックは継続的けいぞくてきなものではなく、「かたむいた!」といったポイントにたいして動作どうさするプログラムです。

加速度イベントブロックの動き

「加速度状態」ブロックを使おう!

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

加速度状態ブロックの選択

この形は「もし」ブロックなどの条件式じょうけんしき利用りようする形となっていますね。

ナナ
ナナ

「加速度状態」ブロックで選択せんたくできる項目こうもくは、「加速度イベント」ブロックと同じものですよ。▽をすとえらぶことができます。

「加速度状態」ブロックによる状態継続のプログラムを作ってみよう!

「ずっと」ブロックの中でブロックを組み合わせてみましょう。

右に傾けると動き続けるプログラム

右に傾けることで、右に傾いた状態じょうたいであればつねにアイコンを切り替えるプログラムが動き続けます。

「加速度状態」ブロックを利用するときの注意

「加速度状態」ブロックを使う時に、すごく大事だいじ注意事項ちゅういじこうがあります。

すごく大事な注意事項

「加速度状態」ブロックで状態じょうたい判定はんていするときは、必ず「加速度イベント」ブロックを1つ以上プログラムエリアに配置はいちしてください。

理由りゆうは、シミュレータ上では問題もんだいなく動きますが、「micro:bit」機器でプログラムを動かしたときに正しく状態じょうたいを判定することができないためです。

加速度イベントの処理内容しょりないようからっぽでもよいので、必ず1つ配置しましょう!

注意として加速度イベントブロックを配置する
ナナ
ナナ

「micro:bit」機器ききでプログラムを動かす時には、「加速度イベント」ブロックが配置はいちされていないと「加速度状態」ブロックが状態を判断はんだんできません。

スポンサー

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

ナナ
ナナ

それじゃあ「加速度イベント」ブロックを使ったプログラムを作ってみよう!

修行その1:「加速度イベント」ブロックを使ったプログラム

修行内容:サイコロを振る演出のプログラムを作ってみよう!

師範!わたくし、忍猫にんねこちゃんと一緒いっしょにボードゲームをしようと思って、はこけてみたんです。そしたら、サイコロが見つからないんですっ!

ちゃんと片付かたづけたはずなのに、サイコロがなくなっちゃいました。エーン(泣)。サイコロをってください。

ナナ
ナナ

サイコロなくなっちゃったの? 今の君ならサイコロをわなくても、「micro:bit」でつくっちゃえばいいんだよ!

それじゃあ、今日学んだ「ゆさぶられたとき」ブロックを使って、よりサイコロっぽくしてみようね!

micro:bitを揺らすことでサイコロを振るプログラム
  • 「ゆさぶられた」のイベントブロックを使つかうこと
  • ゆさぶられたときに、乱数らんすうを使ってサイコロの目を決定すること
  • サイコロの目は、次の図に示すものを表示ひょうじすること
  • 本体をゆさぶりつづけるとサイコロの目が変わり、止めると目が確定かくていすること
サイコロのLED
忍猫がシャカシャカ

みんな「乱数らんすう」の使い方をおぼえていますか?

わすれてしまった人は『【micro:bit 乱数】プログラムでサイコロを作ってみよう!』を見てみましょうね。

ナナ
ナナ

プログラムができて「micro:bit」機器を持っている子は、プログラムをダウンロードして書き込んでみましょう。サイコロのようになりますよ!

変数「サイコロの目」を作って、乱数らんすう設定せっていすることで作ることができますね。

「加速度イベント」ブロックの『ゆさぶられたとき』を利用りようすることで、シャカシャカしたときにサイコロの目が変わります。

ゆさぶられたときにサイコロを振る

フフフ、これで忍猫にんねこちゃんとボードゲームができるわ!プログラムがあれば何でもできちゃうわね。便利べんりだわ!