Edited at

冬休みにmicro:bitで遊ぶなら ~オススメのアクティビティ~

Qiitaでの初記事です。お手柔らかにお願いします!

Markdownでなんて書くのはじめてです。バックスラッシュ使ったのもはじめてです。笑

バックスラッシュの入力のしかたをググった34歳。

さて、教員の私が実践して、子どもたちにウケたものを紹介します。


子どもが一瞬でハマったアクティビティ

12月8日に、TFabworksさんによるmicro:bit研修に参加させていただきました。

最後に教わったアクティビティが、子どもたちを虜にしたので、ご報告致します。


振ってハートを飛ばす(だけ)

2学期最後のコンピュータークラブで行いました。

自分と相手のmicro:bit同士で通信を行います。

自分のmicro:bitを振ると、表示されていたハートが消える(ハートが飛んだように見える)

数字を受信するとハートが表示される(ハートが飛んできたように見える)

というだけのアクティビティなのですが、とても簡単なのに、子どもたちはmicro:bitを振り続けて笑ってます。

image.png

MakeCode - 振ってハートを飛ばそう

QiitaっぽくJavaScriptで置いておきましょう。

input.onGesture(Gesture.Shake, function () {

radio.sendNumber(0)
basic.clearScreen()
})
radio.onReceivedNumber(function (receivedNumber) {
music.beginMelody(music.builtInMelody(Melodies.PowerUp), MelodyOptions.Once)
basic.showIcon(IconNames.Heart)
})
radio.setGroup(1)
radio.setTransmitPower(7)
basic.showIcon(IconNames.Heart)
basic.forever(function () {

})

はい。


こうしたい!発生

さて。ここで問題が発生します。

どういうことかと言えば、子どもたちは特定の相手と通信することを楽しみたいようで、要らんメッセージは受け取りたくないと。

ということで、第1次改良策。

送信チャンネルを子どもたち同士で話し合って設定。

先ほどの中身で言うと、この行です。

radio.setGroup(1)

radio.setTransmitPower(7)

radio.setGrpup(1)が送信チャンネルの設定なので、0から255までの好きな数字に変えさせます。

さすがに子どもたちはJavaScriptのエディタで操作しません。MakeCodeのブロックモードでも柔軟に変えられます。素敵です。

radio.setTransmitPower(7)は、送信強度の設定なのですが、研修では1がオススメされていました。7にすると教室くらいなら端から端まで普通に届くみたいです。チャンネルを統一して取り組むときは1にするのが無難な気がします。


こうしたい!発生(2回目)

誰からメッセージが来たのか、知りたい!とのこと。

確かに、受信したら表示されるアイコンも、自分でプログラミングしてますからね。

相手によって柔軟に変える方法については(もちろん出来ますけど)、子どもたちはすぐには思いつきません。

じゃあ根本的に変えてしまいましょう。

送信する内容を、番号ではなく、文字列にしてしまいましょう。

そして、変数に入っているその文字列を表示させれば、良いはずです。

こんな感じに。

image.png

MakeCode - 振って文字を飛ばそう

input.onGesture(Gesture.Shake, function () {

radio.sendString("I love you.")
basic.clearScreen()
basic.pause(10000)
basic.showIcon(IconNames.Heart)
})
radio.onReceivedString(function (receivedString) {
music.beginMelody(music.builtInMelody(Melodies.PowerUp), MelodyOptions.Once)
basic.showString(receivedString)
basic.pause(1000)
basic.showIcon(IconNames.Heart)
})
radio.setGroup(1)
radio.setTransmitPower(7)
basic.showIcon(IconNames.Heart)

これで文字列を自由に入れ替えて遊べるようになりました。

一時停止は、振りすぎて送りすぎるので休憩時間です。

こうなるともう、子どもたちの遊び場です。

文字列に何を入れるか。送信側で制御が出来るので、ローマ字での送り合いが始まります。

「ユー・エヌ・ケー・オー?(UNKO)って送ったの誰だよー!」

(苦笑)

micro:bitは(何もしなければ)日本語の文字列は送れませんので、子どもたちはローマ字を駆使しようと必死になります。得てしてローマ字の学習を勝手にやっている状態。

送るためにもローマ字が必要だし、送られたものを読むためにもローマ字が必要。

あら。これって、ローマ字の学習で使えるじゃないか。

あ、すみません、書きながら今、ローマ字の学習にmicro:bit使ったらいいじゃんと思いつきました。笑


試行錯誤・改造・創意工夫の余地をあげること

子どもたちはこうやって、少し余白のある状態で渡してあげると、好きに遊び始めます。

でも、遊んでいるように見えて、頭はフル回転。何でも吸収していきます。

この前のクラブでも、「先生、サッカー盤の得点表示をmicro:bitにさせたいんだけど…」って相談され、「どうやってカウントするの?(工作的に)」と聞いたら、「P0に電流が流れたときにカウントしたい。(プログラムの中身的に)」と返答されました。どうやら、工作の素案はとっくに出来ているようです。

私はP0がタッチされたら変数に1を足していくプログラムを教えるだけで用済みに。

(本当はここも考えさせれば良いのかも知れませんが)


まとまっていないけどまとめ

こんな感じで、子どもたちは楽しみながら学習します。

初回は楽しいアクティビティをして虜にしちゃいましょう。

あなたなら、どんなメッセージを送りますか?