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

今回はWeDo 2.0に付属する「パワーモーターM」を使ったプログラムについて紹介します。
これがパワーモーターMです。写真の状態ではすでにモーターをスマートハブに接続しています。接続するポートは2つありますが、どちらのポートでも構いません。

モーターの制御に関するブロックです。全部で5種類あります。
画面下にあるWeDo 2.0ソフトウェアのブロックと見比べてみましょう。WeDo 2.0ソフトウェアではモーターの回転方向別にブロックが存在していますが、スクラッチでは共通のブロックで回転方向を制御しています。
さらにモーターのパワーの範囲が違います。WeDo 2.0ソフトウェアのモーターのパワーは0~10ですが、スクラッチのモーターのパワーは0~100です。

モーターを回転させるプログラムです(motor1.sb2)。
モーターを回転させるには「motorをオンにする」ブロックか「motorを1秒オンにする」ブロックのどちらかを使います。「1」秒の部分は自由に変更可能です。

モーター関連のブロックには「motor」というコンボボックスがあります。ここをクリックすると、次の4種類の設定を選択可能です。
・「motor」:モーター。
・「motor A」:モーターA。
・「motor B」:モーターB。
・「all motors」:全部のモーター。
このうち「motor A」「motor B」「all motors」はスマートハブにモーターを2つ接続した場合に使用します。
スマートハブのLEDを上にして見たとき、右側が「A」、左側が「B」です。 モーターを1つだけ接続している場合は、どちらに接続しても「A」になりますので、「motor」と「motor A」は同じ意味になります。

スクラッチ用の機能拡張ブロックではモーターの回転方向(direction)を「こちら向き」「あちら向き」という言葉で表現しています。回転軸を正面から見た場合、「こちら向き」が時計回り、「あちら向き」が反時計回りになります。

プログラムを実行すると、このようにモーターの回転軸が時計方向に1秒だけ回ります。
◆ 画面のクリックとモーターを連動させる

時計回りだけではなく、反時計回りにもモーターを回転させます。
写真上の赤ワクで囲んだアイコン(スプライトをライブラリーから選択)をクリックします。このアイコンをクリックすると、すでに登録されている図の中からスプライトを作成することができます。
ここでは「矢印」の図を選択します。

矢印のスプライトを追加すると、このように猫のスプライトの上に表示されます。
同時に右側の画面にあるブロックがすべて消えてしまいます。 プログラムは実際に消えたわけではなく、猫のスプライトSprite1の中に存在します。ここでは矢印のスプライトが選択されて、矢印のスプライトの中身(空白)が表示されています。
スクラッチではスプライトの中にプログラムを搭載することができるので、この機能を覚えておきましょう。

スプライトは「Arrow1」と「Arrow2」の2つを追加します。 このままスプライトが重なっていると扱いずらいので、スプライトをこのように移動します。移動するには画面下にあるスプライトをクリックして1つずつ選択する必要があります。

猫のスプライトSprite1は不要なので削除します。

スプライトのArrow2だけ向きを180度回転させます。向きを変えるには、「~度に向ける」ブロックを使います。Arrow2を選択した状態で、このようなプログラムを作成して一度だけ実行します。この場合、「90度」で矢印は右を向き、「-90度」で矢印は左を向きます。
実行すると、矢印の角度が-90度に設定されて、左を向きます。

スプライトをこのように配置します。

プログラムがこちらです(motor2.sb2)。 2つのスプライトのプログラムはそれぞれ違います。 Arrow1はモーターの回転方向を時計回り(こちら向き)、Arrow2はモーターの回転方向を反時計回り(あちら向き)に設定します。回転時間は1秒に設定します。
プログラムは「このスプライトがクリックされたとき」ブロックをきっかけに実行します。
Arrow2側のプログラムにある「-90度に向ける」ブロックは矢印を左に向けるためのものです。すでに矢印が左に向いている場合には不要ですが、念のため置いてあります。

プログラムを実行中の様子です。 矢印のスプライトをクリックすると、モーターが回転します。
「→」をクリックするとモーターが時計方向に1秒ほど回転します。 「←」をクリックするとモーターが反時計方向に1秒ほど回転します。
今回作成したプログラム(スクラッチ2.0用)
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。