2024年12月23日

015-1.EV3で楽しむスクラッチ3.0-第5回「ペンを使って画面を描く」

ここでは「スクラッチ(Scratch)」を使ってレゴ マインドストームEV3のプログラミングを行う方法を紹介します。スクラッチとはMITメディアラボという研究施設のライフロングキンダーガーテングループによって開発されているプログラムのツールです。スクラッチの特徴としては、教育向けに作られていて親しみやすいこと、無償で使えること、Webブラウザでも動作すること、直観的にプログラムが作れることなどがあります。(文/松原拓也)

◆ 拡張機能「ペン」を使う

今回はスクラッチの拡張機能を使って、ロボットのプログラムを作ってみたいと思います。
用意するものは前回と同じくロボットです。このロボットは2つのLモータを使っていて、「移動」したり「せん回」したりすることができます。

拡張機能を使うには、スクラッチのエディタ画面の左下にある「拡張機能を追加」ボタンを押します。
ボタンを押すと、このような画面が表示されます。 たくさんの拡張機能が並んでいますが、今回は「ペン」を選択してみることにします。このペンというのは、画面に線を描くことができる機能です。

ペンのブロックが追加されました。ペンのブロックは全部で9種類あります。ペンを上げ下げしたり、ペンの色を変更することができます。
このペンというブロックは前バージョンのスクラッチ2.0では標準で使うことができました。このスクラッチ3.0からは拡張機能として追加するように、使い方が変更されました。

たとえば、「猫」のスプライトの中にペンのブロックを置いた場合、猫が動けば、その動きが線として画面に描かれます。なので、猫がペンを持っていると考えることができます。

ペンを使ったプログラムです(pen1.sb3)。猫のスプライトがジグザグに移動して、その動きをペンで描きます。
線を描くには最初に「ペンを下げる」ブロックを使います。 その後、スプライトを動かすと、線を描くことができます。 スプライトを動かすには「~歩動かす」ブロックを使います。 スプライトを回転させるには「~度回す」ブロックを使います。「~度回す」ブロックは回転方向が時計回りと反時計回りの2種類があります。ここでは時計回りのものを使います。
プログラムを何度実行しても同じ結果になるように、最初に画面を消しています。さらにスプライトの位置を座標(0,0)にしています。

プログラムの実行結果です。見事にジグザグが描かれました。
スプライトは角度という設定値を持っています。この右を向いている状態が「90度」です。角度が増えると、スプライトは時計回りに回転します。逆に角度が減ると、スプライトは反時計回りに回転します。

◆ ロボットにペンの機能を追加する

こちらは前回に作成したプログラムです。キーボードのキーを押すと、ロボットを「前進」させたり「せん回」させることができます。
このプログラムにペンの機能を追加してみたいと思います。

ペンの機能を追加すると、こうなります。
「forward」ブロックに「~歩動かす」ブロックを追加します。「turn」ブロックの中に「~度回す」ブロックを追加します。これでロボットの動きに合わせてスプライトも動くようになります。 「ペンを下げる」ブロックも忘れずに、処理の最初に入れておきます。

ロボットを机に置きます。ここが出発地点です。

ここでは例として、次の順番にキーボードのキーを押してみます。
・「↑」キー(前進)
・「→」キー(右せん回)
・「↑」キー(前進)
・「←」キー(左せん回)
・「↑」キー(前進)
ここを到着地点とします。

出発時と到着時のロボットの写真を合成すると、こうなります。
このロボットの動きを、画面にペンで描かれた線と見比べてみましょう。180度向きが違っていますが、同じ形の線が描かれています。つまり、ロボットの動きを記録に残すことができたというわけです。
ここでは、ロボットが90度単位でせん回していますが、値を調節することによって、45度単位でせん回させることもできると思います。プログラムを改造してみましょう。

今回作成したプログラム(スクラッチ3.0用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。