M5StackとM5UI.Flowで子供のプログラミング教室#1
嫁さんの要望により、子供にプログラミングを教えてということで、どんなコンテンツがいいかなと。
いきなりコードを書くのはハードルが高いので、Scratchみたいなブロックで勉強ができるのがいいと思いました。 けど、PC上だけで動くのはあまり面白くないと思い、デバイスと連携したものとなると結構高い。
そこで見つけたのが、M5Stackをデバイスとして使えるM5UI.Flow。 M5GOという専用のキットもあるみたいですが、手元に普通のM5Stackがあったので、それを使って始めることに。
M5Stackのページから、UI.Flowを使えるようにするために必要なソフトウエアがあるので、これらをダウンロードして環境を整えます。
- M5Burner
- UI.Flowで作ったアプリを実行するためのファームウエア
- ファームウエアを焼いた後に起動すると、セットアップメニューが選べるので、USB接続を選ぶ
- UIFlow-Desktop-IDE
- Web版のIDEもありますが、PCにインストールする版のほうが子供には使いやすそうなので、そちらを使いました
- CP210X Driver
- M5StackとUSBシリアルで繋ぐときに必要なドライバ
IDEの初期設定
IDEを開くとどのデバイスにつなぐか聞いてくるので、指定してあげます。
ここで、ThemeでIDEの色を指定できるので、子供に好きな色を選ばせると、それだけでも自分のもの感が出るのでやる気がでてきます。
このようなUIとなっていて、真ん中のグループから使いたいブロックを選んで、右側のエディタに配置します。
課題1 背景色を変えてみる
ブロックのグループから、「グラフィック」を選ぶといろいろな操作ができるブロックが表示されます。 この中から、画面を塗りつぶす物をドラッグして、エディタに置きます
切込みと、山の部分が接続可能な部分なので、ドラッグしてカチッとハマるようにドラッグして動かします
最後に表示したい色を選びます
これで背景が指定した色で塗りつぶされる動きをします。画面右上にある実行ボタンみたいのをクリックするとM5Stack側に転送され、実行されます
M5Stack側の表示もちゃんと変わりました!
IDEの上の部分でブロックとソースコードの表示切り替えも出来るので、ステップが終わるごとに、子供に実際はこんな感じのコードが書かれてて、こっちをいじっても動くんだよみたいな説明をしてます
最初の手順はIDEの使い方を教えつつ、簡単な処理を実現して、すぐに結果を見れるようにすると、子供も興味を持って集中して作業してくれます。 デバイスがある方が大人も子供もテンションが上がるので、とりあえず最初の一歩は成功したかなと。
課題2 音を鳴らす
M5Stackは音も鳴らせられるので、次はこれにチャレンジします。
「ハードウエア」->「スピーカー」と選ぶと、音を鳴らすためのブロックが見つかるので、「LowAの音を1拍鳴らす」を使います
これで、実行ボタンを押すとM5Stackから1拍の時間だけ音が鳴ります。すごい簡単ですね。「LowA」の部分を変えるといろいろな音に変わるので、子供には実際に色々と試してもらいます。
課題3 曲みたいに音を鳴らしてみましょう
今までの手順だと、1つのことしかさせていないので、ここからは複数のことをやらせる方法について教えていきます。 例として、チューリップの花のを音がずれてもいいので、リズムだけ合うように組み上げること一緒に進めます。
まずは最初のステップとして、音をつなぎ合わせて雰囲気は伝わる感じに仕上がりました。 「さいたー」みたいな音にしたいので、「た」の部分は2拍にします。
曲の詩は「さいたー」が2回繰り返しているので、そこをプログラムで変えてみましょうとします
この課題では、繰り返し音を変えながら試すことを通して、「実際に自分が思う通りに動くように、繰り返し修正をする(デバッグ)」と、同じことを繰り返す場合は、「繰り返し(ループ)」という仕組みがあることを勉強してもらいました。
デバイスを使った勉強は、画面だけで見るよりも、実際にアクションとリアクションを楽しめるので、子供も楽しんで触ってます。
課題4 ボタンを押したら、音が流れるように
M4Stackにはボタンが3つ付いているので、この課題ではボタンを押したら、曲が流れるようにします。
「イベント」->「ボタンAがawsPressed」のブロックをエディタにドラッグします
次に、先程作ったものを、「Setup」の方から、ボタンのイベントに移動します。
これで、実行ボタンを押してM5Stackの一番左のボタンを押すと、音楽が流れてきます。 ボタンをBやCに変更して、動きが変わるのも試してみます。
最後に、実際のコードはどのような形になっているか見て、どんな風に動いているかを一緒に調べます。
この課題では、イベントを元になにかの処理をすることを知ってもらいました。
応用編 押すボタンによって、動きをを変えてみましょう
押すボタンによって、画面の色と音を変えるように、本人たちにやってもらいます。
まとめ
小学校2〜3年の子供向けにやってみたけど、結構興味を持ってくれました。 前にLegoでプログラミングみたいな教材を試してみたことがあったけど 、人数分揃えるには高すぎるし、Legoで遊んでしまう問題もあり集中できない問題がありました。M5Stackを使った自作教材だと、やりたいことを自由に組めるし、デバイスはやっぱり面白いし、今後はセンサーモジュールも買って拡張し放題なので、勉強に丁度いいと思いました。