2024年12月13日
011-1.WeDo2.0入門-第3回 「チルトセンサーの使い方」
この連載では「レゴ WeDo 2.0(以下、WeDo 2.0)」の活用方法について紹介していきたいと思います。 この記事で使用するものは「レゴ WeDo 2.0 for home by アフレル」とBluetooth搭載のタブレットまたはパソコンです。なお、スマートハブ用として単三型乾電池2本または専用バッテリーを使用します。(文/松原拓也)
◆ チルトセンサーについて

今回は基本セットに付属するセンサーの1つ「チルトセンサー」を紹介します。
チルトセンサーは傾きを検出するセンサーです。チルト(tilt)は英語で「傾き」という意味です。
写真はチルトセンサーをスマートハブに接続した様子です。

レゴ WeDo 2.0ソフトウェア(アプリ)を実行して、スマートハブと接続するとチルトセンサーの状態がわかります。
チルトセンサーを傾けると赤い丸の部分が変化します。 ちょっと表示の文字が小さいです。

大きい文字で傾きを見るには、このようなプログラムを作ります。
ループの中に表示ブロックを置きます。 表示ブロックにはチルトセンサーのブロックを組み合わせます。

プログラムの実行結果です。ウインドウに数値が表示されました。これが傾きです。

数値と傾きの関係は写真のとおりです。
「0」「3」「5」「7」「9」の5種類です。 水平だと値は「0」です。なぜか数値は飛び飛びになっています。「1」「2」などは存在しません。
◆ 傾きを検出する

チルトセンサーのブロックは待機ブロックと組み合わせて使うこともできます。
写真は例として作成したプログラムです。待機ブロックに付いているブロックが待機を終了するための条件となります。 チルトセンサーのブロックは全部で6種類ありますが、ここでは「その他の傾き」というブロックを使っています。

実行中の様子です。
チルトセンサーを傾けるとライトが1秒間だけピンク色になります。
「その他の傾き」ブロックは傾きが今よりも変化したら待機を終了させることができます。スタート時が水平と決められているわけではないので、水平→傾きではなく、傾き→水平でも反応します。
◆ ロボットとチルトセンサー

チルトセンサーを使ったロボットを作ってみましょう。
ここでは「マイロ」というロボットを使うことにします。組み立て方法はソフトウェアのアクティビティに書かれています。

完成しました。

チルトセンサーにはレバーが付いていて、前と後ろに倒すことができます。

プログラムを作ります。
待機ブロックを使ってチルトセンサーが前に倒れるまで待ちます。センサーが倒れたらモーターを右回転(前進)させるようにしています。それからセンサーが後ろに倒れたらモーターを停止します。
チルトセンサーのブロックをタッチすると種類を切り替えることができます。チルトセンサーのブロックは全部で6種類です。 「~方向のかたむき」などの名前が付いているのですが、名前と傾いている向きのイメージがつかみにくいです。上下と前後が混同してしまって、「上方向のかたむき」は後ろに傾いているようにも思えてしまいます。ややこしいので、センサーの見た目で考えたほうがいいでしょう。

プログラムを実行した結果がこちらです。
チルトセンサーが前に傾くとロボットが前進します。
チルトセンサーが後ろに傾くとロボットが停止します。
◆ 後退もできるようにする

先のプログラムではロボットの前進と停止しかできなかったので、後退もできるようにしてみましょう。
こちらが改良版のプログラムです。「メッセージ送信ブロック」と「メッセージ受信スタートブロック」を使って複数のセンサーの状態に反応できるようにしてみました。
ちなみにチルトセンサーは「その他のかたむき」を使っていますが、6種類のどれを使っても問題なく動きます。

プログラムを実行中の様子です。
写真では伝わりにくいですが、センサーを傾けた方向にロボットが進んでいます。ロボットを後退させることもできるようになりました。
気になる点として、センサーを傾けたさいに一瞬だけロボットが逆方法に進んでしまいます。モーター出力ブロックでパワーを設定すると、その時のモーターの回転方向が残っていて、そののままでモーターが回ってしまうようです。
改造のアドバイスとして、センサーを左右にも傾けるようにして、メッセージ受信スタートブロックを増やせば、ロボットの機能をもう2つ追加することもできます。 ただしモーターが1つだけなので、左右に曲がることはできません。何か面白い使い道がないか考えてみましょう。

ちなみに今回作成したロボットのレバーの先端にはボールジョイントという部品を使っています。ボールジョイントは前回のモーションセンサーの時にブロックにはめ込んでいました。それでブロックから外そうとしたのですが固くて外れません。
ちょっと悩んだのですが、結局、ボールジョイントにシャフトを挿し込んだら簡単に外れました。皆さんも外すさいには参考してみてください。
[movie]「レゴ WeDo 2.0」でチルトセンサーを使う動画(Youtube)
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。