どれ使う?プログラミング教育ツール

「Scratch」とmicro:bitで作品作り ~パンチの動作で画面の中のキャラを動かす!

 子ども向けのプログラミングツールとしては有名でどちらも人気が高い「Scratch(スクラッチ)」とmicro:bitを組み合わせてプログラミングをすることができます。前回の記事では、プログラミングをするまでの下準備を解説しました。今回はその合わせ技を使って作品を作ってみましょう。まずは前回記事の通りに、PCと「Scratch」、micro:bitの準備をしてください。準備ができたら早速作品を作ってみましょう。

micro:bitを振って画面の中のドーナッツを大きくする!

 まずは、「Scratch」で好きなスプライトを作成します。ここでは、ドーナッツのスプライトにしました。

自分が好きなものの絵をスプライトにすると楽しさがアップ

 スプライトを選んで次の図の通りのプログラムを作成します。3つのブロックと、2つのブロックだけの簡単なプログラムです。micro:bitには加速度センサーが内蔵されているので[動いたとき]ブロックを使うとmicro:bitの動きに応じたプログラムを作ることができます。ここでは、[動いたとき]だと反応しすぎるのでドロップダウンリストから“振られた”を選んで[振られたとき]とします。

❶緑の旗を押してプログラムを実行したときに、スプライトのサイズと位置を初期化。❷micro:bitを振ったらスプライトが10ずつ大きくなるように設定

 プログラムを実行して、micro:bitを振ってみましょう。振れば振るほどドーナッツを大きくすることができます。動画で実際の動きをご覧ください。動画ではバングルモジュールで給電して手にはめています。micro:bit用拡張ブロックの[振られたとき]は、それなりのスピードが出ないと反応しないので、無駄に振って空振りになっていることが多いのがわかります。

「Scratch」とmicro:bitを連携させて作った振れば振るほどドーナッツが大きくなるプログラム

 例えば魔法の杖のような工作をしてmicro:bitを持ち手に納めておけば、杖を振れば魔法のようにドーナッツが大きくなるという演出ができます。なお、スプライトがステージをはみ出してある程度まで大きくなると、「Scratch」の仕様でそれ以上は大きくなりません。緑の旗を押してスプライトを最初のサイズに戻して、また挑戦してください。

演出を加えて反応に変化をつける

 これだけでも楽しいのですが、達成感を出すためにもう少し演出を加えましょう。micro:bitを振るとスプライトがだんだん大きくなるプログラムは同じです。そのままどんどん大きくなって限界を越えたら破裂するという演出にします。

 新たに別のプロジェクトを作成して、オリジナルのスプライトを作成します。ここでは次の図のように1個のスプライトに複数のコスチュームを作成して、丸い顔のいくつかの表情と破裂した演出の絵を用意しました。

“MARU”という名前で新しいスプライトを作成したところ。全部で5個のコスチュームを用意した

 スプライトを選んで次の図の通りのプログラムを作成します。スプライトのサイズと位置を初期化してコスチュームを1個目に指定したら、[ずっと]ブロックで囲った範囲に、サイズに応じてコスチュームを切り替えるプログラムを作ります。最後はスプライトをいったん非表示にして、もう一度はじめのサイズと位置で表示します。

“MARU”というスプライトのプログラム全体像
プログラムの詳細説明。❶micro:bitを振ったときの反応。音も入れた。❷プログラムを実行したときの初期化部分。❸“大きさが350より大きい”、“400より大きい”、“410より大きい”の3段階で表示されるコスチュームが変わる

 このプログラムを動かした動画をご覧ください。動画ではバングルモジュールで給電して手にはめています。動作はパンチをしているような感じにしました。[振られたとき]を反応させるにはけっこうなパンチ力が必要なので、運動になります

「Scratch」とmicro:bitを連携させて作ったパンチングゲーム

 ちょっとパンチではかわいそうな感じがするので、例えば、本物の空気入れの持ち手にmicro:bitを貼り付けて、猛スピードで空気を入れる動作をして反応させて、まるで空気をいれて破裂させているみたいな演出をしても良いかもしれませんね。

 2020年度から小学校でプログラミング教育が実施されています。これに伴い家庭でも手軽にプログラミングを学習できるツールが多数登場していますが、どんなツールを使えばいいのか迷ってしまう方も多いのではないでしょうか? そこで本連載では家庭でのプログラミング教育にピッタリなお勧めツールを紹介していきたいと思います。