カリキュラム
レベル1
対象年齢 10歳〜12歳
レッスン4
プログラミングってなに?/Blocklyduinoの使い方
次のページよりこのレッスンで使うスライドが1ページずつ表示され、
下にはそのスライドを説明する文章が入ります。
【第4回 目次(全66ページ)】
こんにちは。ロボット動物園4回目の授業をはじめます。
よろしくお願いします。
まずは前回の復習です。
前回の授業では、箱型ロボットにいろいろな素材をつけて、動物をデザインしてもらいました。
みんなイメージ通りにできたかな?
☆ こどもたちに問いかけ
* 前回の授業の写真など挿入
今日は第4回。
今日は前半にロボットを動かすための「プログラミングの考え方」について学び、後半にいよいよロボットに指示を送るための「プログラミングの練習」をしたいと思います。
みんなは「プログラミング」って知っていますか?聞いたことありますか?
☆ こどもたちに問いかけ
この授業で学ぶプログラミングとは、「ロボットにどんなときにどんな順番で何をしてほしいか、コンピュータを通してロボットに指令を送ること」です。
指令とは具体的にどんなことを指すのか、これから考えていきましょう。今から映像を見てもらいます。このロボットにはどんな指令が送られているのでしょうか。
このシート(A5)を使って、映像に出てくるロボットが何をしているか、順番に書き出してください。
★ シート③配布
それでは、流します。
★ 映像を見て、どんな指令が送られているかこどもたちに考えてもらう。
☆ 1回では書き出せないケースが多いので、2回目流す
みんな書けたかな?
映像のロボットには…こんな指令が送られていました(黒字部分)。
そして、もっと詳しく言うと、こんな指令もありました(青字部分)
どうかな?思ったより詳しく指令が送られていませんでしたか?
人間同士であれば、言葉やジェスチャー、表情などから、指令を読み取ることができるかもしれません。
たとえば、みんなが一列で並んでいたときに、前の子が進むと、その後ろの子も前に進みますよね。
でも、ロボットはそのようには動けません。
ロボットにさせたい動きを、「●秒たったら」、「距離が〇㎝離れたら」、など具体的に指令を送ってあげないといけないのです。
その時の方法として使われるのが、プログラミングです。
みんなが作ったロボットを、思った通りに動かせるように、今日はロボットにしっかりと指令をおくる練習をしましょう。
プログラミングをする上での大切なルールがあります。
それは、「どんな順番で、なにをするか、指令を送る」こと。
どんな指示を送ると、思った通りに動くのか。ここからの時間はゲームをしながら、その方法を学んでいきたいと思います。
ルールを説明します。ちょっと複雑なのでみんなよく聞いてくださいね。
このゲームは2人1組で行います。
2人にはそれぞれ別の役があります。
片方の人が指令をつくる人、つまりプログラミングをするプログラマーになります。
もう片方の人が絵を描くロボット役、今日はアーティストロボと呼びます。
プログラマーとアーティストロボの2つの役です。
これから1つの絵を見せます。
最初はプログラマーからはじめます。
プログラマーはお題の絵を見ながら、「どんな順番で、何を書いたらよいか」を考えます。
そして、それを書き出して、リストにします。
この時、アーティストロボはお題を見てはいけません。
次はアーティストロボの番です。
アーティストロボはそのリストだけを見て、そのリスト通りに、絵をかきます。
プログラマーとアーティストロボは話をすることはできません。
ですから、わからないことがあっても、アーティストロボはプログラマーに質問してはいけません。
こうかなと予測せずに、リストに書かれているとおりにかきます。
頼りになるのはリストだけです。
書くべき内容とその順番がきちんとあっていれば、お題通りに絵が描けてクリアというゲームです。
★ 全員理解できているか、確認する
ゲームのルール説明が難しかったかもしれませんが、まずは練習をしてみましょう。
みんなには、はじめアーティストロボ役になってもらいます。
私がプログラマー役になり、みんなに今からリストをみせます。リストに従って、白い紙に絵を描いてみてください。
★シート④配布
☆ A4用紙・マジックを配布する
では…この指示通りに紙に絵を描いてみてください。
どんな絵になったかな?
実は私が書いて欲しかった絵はこんな絵でした!
☆ 書き終わったらこどもたちに問いかけ
フランスの国旗でした。
(☆ 受け方は子どもたちの状況にあわせて)
みんなが書いてくれた絵は正解と違うものだったり、全員が違う絵になりましたね。
なぜそうなったかというと、それは、私が書いたリストが完全ではなかったからです。プログラマー失格です。
本物のプログラマーはどんなロボットがかいても同じような結果になるよう指令を作らないといけません。
そのためのポイントとはなんでしょうか。さきほどのリストを元に振り返ってみましょう。
青色で書かれていることがポイントです。
やること① まず紙の向きです。
これはできていますね。
やること②と③
ここは紙の中の位置です。
これもできているかな?だいたいあっていますが、紙の右って紙の端の方なのかな?それとも右側あたりなのかな?
こうして考えてみると「右」と一言で言っても、イメージした「右」はいろいろですね。
右について具体的に書いておくとよかったですね。
そして線の種類。
みんなが書いてくれた絵を見てみると、いろいろな種類の線がありますね。
色はちゃんと指示リストに入っていました。
でも、線の長さや太さ、…そして線の形。まっすぐなのか、くねくねしているか。
線についても具体的な指令が必要でした。
単純なマークを書くだけでもこれだけ考えないといけないことがありました。
みんなちょっと驚いたかな?
練習問題の「フランスの国旗」はこのような指令だと書けますね。
これは一つの例です。
他に、もっと的確な指令があるかもしれません。正解は1つではないので、みんなも考えてみてください。
今学んだことをいかして、ロボットに伝わる指令を作るためにはどうしたらいいか?を考えて、次の問題をやりましょう。
ここからは2人1組になって、ひとりはプログラマー役、もう一人は続けてロボット役になってゲームをしてもらいたいと思います。
まず2人組になってそれぞれ役を決めてください!
☆ 2人組をつくり、ロボット役、プログラマー役をきめてもらう
プログラマーのみなさん。ここからは声をだしてはいけません。準備はOKですか?OKだったら手をあげてください。
では、プログラマーのみなさんに問題を発表します。
では、ロボット役の子は机に伏せてください!合図をするまで顔をあげてはいけません。
問題はこれです!
★ シート④を配る
制限時間は5分です。
それでは、ロボットの皆さん、起きてください。
プログラマーから指令リストを受け取って、その通りに絵を描いてみましょう。
周りと相談したり、質問するのはダメですよ。
☆ 書けた頃を見計らって、問いかけ
プログラマーのみなさん、ロボットは思った通りに絵を描いてくれているかな?
それでは正解を発表したいと思います。
正解は…ジャマイカの国旗でした。
どうだったかな?
解答例と答え合わせをしていきましょう。
では、役割を交代します。
ロボット役の子は机に伏せてください。
☆ ロボット役の子が伏せたら
プログラマーのみなさん。ここからは声をだしてはいけません。準備はOKですか?OKだったら手をあげてください。
では、プログラマーのみなさんに問題を発表します。
ロボット役の子はしばらく顔をあげちゃダメですよ。
問題はこれです。
制限時間は5分です。
それでは、ロボットのみなさん、起きてください。
ではプログラマーさんから指令リストを受け取ってその通りに絵を描いてみてください。
☆ こどもたちに問いかけ、かけたところ見計らって
プログラマーさん、ロボットは思った通りに絵を描いてくれていましたか。
そろそろ正解を発表したいと思います。
正解はこれです。
この通りの絵になったかな?
☆ 時間があればチャレンジしてみる
解答例を読んでいくので、このリストにそって絵を描いてみてください。
このゲームから、どんなことがわかりましたか?
どのロボットも同じようにできるための、伝え方(=指令の出し方)は何でしょうか。
それは、指令の中に「どんな順番で、何をするか」が含まれていることです。
☆ 休み時間にパソコンをあける
☆ プリントを配布する
みんな。5時間目の授業でプログラミングで大切なことはわかったかな?
これからいよいよ自分が作ったロボットにプログラミングをしていきます。
ロボット動物園のプログラミングでは、今、画面に映っている「Blocklyduino」というソフトを使います。
みんなが使うパソコンにも同じものが入っています。
★ シート②配布
プログラミングの進め方を説明します。
最初に、ロボットにどんな指令を送りたいか考えます。
次に、その指令をBlocklyduinoを使ってプログラミングをします。
最後に、パソコンとロボットをつなげて指令を送ります。
みんなのパソコン画面に映し出されている「Blockly duino」は、ブロックを使って簡単にプログラミングできるように作られたものです。
ブロックの内容は、実際にはこのような内容になっているのです。
でも、いきなり作るのは難しいので、この授業ではBlocklyduinoを使います。
「Blocklyduino」で作られた指令は、先程の画面アルデュイーノに変換されます。
そしてパソコンとロボットをつないで、ロボットに指令を送ります。
では、ロボットを動かしていきましょう!
まずみんなにはこのロボットと同じ動きのプログラムを作ってもらいたいと思います
☆ あらかじめロボットに一番初めに教える動きのプログラムをしておいて、見せる
このロボットはこのような順番で指令を受けていました。
では、どのようにしたら、この動きができるか、一緒にやっていきましょう。
今開いている画面が基本画面です。
☆ 「BlocklyDuino」用のプリント配布
①②③の順で使います。
まず指令を決めたら
①その指令に使うボタンを選びます。
②次にそれを組み合わせて、指令を作ります。
③最後に、指令をロボットに送るために保存します。
このソフトで使う指令のブロックです。
たくさんのブロックがあるように思えますが、すぐに慣れると思うので大丈夫です。
ここからは1つ1つ確認しながら進みます。
やり方がわかった子は、困っている子がいないか周りを見て教えてあげてください。
でははじめに「動き」の指令です。
ロボットを進めて、止める、というプログラミングをします。
みんなも一緒にパソコンで操作してください。
★ 画面を映しながら操作
☆動かす
次は「光」の指令です。
ロボットの目の部分を、好きな色に光らせましょう。
ロボットの目の色を決めるのに使う「光の表現」について説明します。
ロボットの目についているLEDは、RGBという色の表現で何色になるかが決まります。RGBは今みているようなコンピュータやテレビの映像表示に使われている表現方法です。
この3つの色「R(レッド)」「G(グリーン)」「B(ブルー)」が
どのくらいの割合で混ざっているかによって、色が決まります。
このソフトでは、色を数字の組み合わせで指定できるようになっています。
この表を見ながら、今度は光の指令をつくってみましょう。
★ 画面を映しながら操作
☆ 光の指令を作る
3つ目は、「音」、つまりロボットの鳴き声の指令です。
このソフトでは、音程と音が出る時間の指令をつくることができます。
0から24までの数字で音程を表します。
低い音を出したい時は小さい数字を、高い音を出したい時は大きい数字を入力してみましょう。
音の長さは、「なく」ブロックの「じかん」に数字(ミリ秒)を入力します。
ロボットから音が出るように設定してみましょう。
★ 画面を映しながら操作
☆音の指令を作る
今みんなが作っている指令は、スイッチを入れて、指定した時間が経つと、ロボットが動きだす指令になっていました。
次は、ものとの距離を感知してロボットが動きだす指令を作りたいと思います。
つまり、
よくできました!
みんなよくできているので、ここで少しレベルアップ!
今みんなが作っている指令は、スイッチを入れて、指定した時間が経つと、ロボットが動きだす指令になっていました。
次は、ものとの距離を感知してロボットが動きだす指令を作りたいと思います。
つまり、
スイッチを入れて、ロボットに〇㎝、物が近づくとロボットが進む、というプログラミングをしてみましょう。
この指令の時に使うパーツが「距離センサー」です。1回目の授業を覚えているかな?
距離センサーを使った代表的なもの。みんなが見たことがある「自動ドア」です。
人が一定の距離に近づくと開きますね。
この仕組みでみんなのロボットも動くようにプログラムしていきましょう。
距離の数値は5~25までの数字を入力します。
距離センサーにはいろいろ種類があり、今回使っているものはmm単位まで細かく測れるものではありませんが、だいだいの感覚をつかんでみましょう。
☆ 画面を映す
☆ 画面を映し出して操作
よくできました!
この授業で学んできたように、電子部品の中には「センサー」という種類があります。
このセンサーは「ある対象の状態を、見張ったり、数値で計測したりするための装置」です。
今日は、距離センサーで物と物との距離を測りましたが、センサーの種類によって、光や温度、圧力など、監視できるものはさまざまです。
たとえば
火事になりそうになると、コンロが自動で止まるのは「温度センサー」の働き。
テレビやエアコンのリモコンを動かしているのは「赤外線センサー」の働き、
スマートフォンに指が触れたことを認識する「静電容量センサー」、
など、日常の生活の中にたくさん使われています。
このようなセンサーは、中学校のプログラミングの授業で使うので、みんな楽しみにしていてください。
今日の授業はここまでです。
今日みんなが学んだことは3つあります。
1つ目は、・プログラミングとは「どんなときに、どんな順番で、何をするのか、ロボットに伝わるように指令を送る」こと
2つ目は、ロボット動物園では、BlocklyDuinoというソフトを使ってプログラミングをするということ
3つ目は、センサーを使うことで、対象(もの)の状態を検知(知る)・監視(見張る)できるということ
次回はいよいよ最終回です。
どんな風に自分のロボットを動かしたいか考えて、プログラミングしましょう。