2024年12月19日
014-1.WeDo2.0スクラッチ入門-第2回「モーションセンサーの使い方」
この連載では「レゴ WeDo 2.0(以下、WeDo 2.0)」と「Scratch(スクラッチ)」を使ってプログラミングの方法を紹介します。なお、「WeDo 2.0 ソフトウェア」を使ったプログラミングの方法については、すでに「WeDo 2.0入門」で紹介していますので、そちらをご覧ください。(文/松原拓也)
◆ モーションセンサーとは

今回はWeDo 2.0に付属する「モーションセンサー」を使ったプログラムについて紹介します。
これがモーションセンサーです。赤外線LEDから赤外線を放ち、その反射を赤外線センサー(おそらくフォトトランジスタかフォトダイオード)で受け取るという仕組みです。
モーションセンサーはその名のとおり「動き(モーション)」のセンサーです。しかし、スクラッチで使う場合は動きではなく「距離」のセンサーとして使います。この機能の違いについては後で詳しく紹介します。

モーションセンサーをWeDoスマートハブに接続します。これでハードウェアの準備は完了です。

Webブラウザを起動してスクラッチの公式サイト(https://scratch.mit.edu/)を開きます。
そして、WeDo 2.0用の準備を行います。「スクリプト」タブの中にある「その他」をクリック→「拡張機能を追加」ボタンをクリック→「LEGO WeDo 2.0」を選択して「OK」をクリック。これでWeDo 2.0関連のブロックが使えるようになります。

モーションセンサー用のブロックはこの2つです。
ブロックには「動き」ではなく「距離」と書かれています。なので、「モーションセンサー」ではなく「距離センサー」と呼んだほうがいいかもしれません。
◆ 距離に反応させる

「距離~のとき」と書かれたブロックを使ってプログラムを作ってみました。設定は初期値の「距離<50のとき」のまま使います。

ちなみにここで作成したプログラム(ブロック)は猫のスプライトの中に存在しています。プログラムの存在する場所は自由に設定することができます。ステージの中や、他のスプライトの中にもプログラムを置けます。

「デバイスマネージャ」を起動します。 ボタンが2つ表示されますが、前回でペアリングを済ませていると思いますので、下の「Yes,skip to Scratch」を選択します。

デバイスマネージャの「Connect」のボタンをクリックしてから、WeDoスマートハブの電源を入れます。Bluetoothによる接続が成功すると、WeDoスマートハブのライトが青色になります。もし、ライトが消えてしまった場合は電源を入れ直して、接続を再開させましょう。

Bluetoothの接続をした時点でプログラムはすでに動いています。
モーションセンサーに手を近付けてみましょう。 写真のように手とセンサーの距離が10cmくらいになったあたりで「Hello!」の文字が表示されました。2秒ほど経つと文字は消えます。

レゴ エデュケーションが提供している純正アプリ「WeDo 2.0ソフトウェア」と見比べてみましょう。WeDo 2.0ソフトウェアは「近付く」や「遠くなる」など、動きを検出しています。それに対してスクラッチでは距離の比較を行っています。これでソフトによる機能の違いが理解できたと思います。
◆ 距離を測定する

今度は「距離」ブロックを使って、モーションセンサーの測定値をはっきり見てみましょう。
プログラムを実行するには画面上の「緑色の旗」のアイコンか「(緑の旗)がクリックされたとき」ブロックをクリックします。

モーションセンサーの測定値が表示されます。
距離が一番遠い状態では値が「100」と表示されます。距離が15cmくらいになったあたりで値が「90」と表示されました。この値の単位はセンチメートルというわけではありません。

手をかざして距離を短くしていくと、「100」「90」「80」「70」と値が10ずつ減っていきます。その中間の値は表示されません。最も小さい値は「0」です。
純正アプリの「WeDo 2.0ソフトウェア」の場合、モーションセンサーの距離の測定範囲は0~10でしたが、スクラッチの場合、測定範囲は0~100のようです。ただし、値は10きざみのため性能は同じです。この仕様の違いも理解しておきましょう。
次回はチルトセンサーを使ってみたいと思います。
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。