フィジカルプログラミング入門はLチカから。

フィジカルプログラミングの入門の定番は、Lチカ(LEDを点滅させる)です。なぜ、Lチカが入門に向いているのかは、次の授業記録で分かると思います。

ユーレカブロックの中には、「白LED」のブロックがあります。これは、使いやすいように特別に作っています。

これを使って、LEDの点灯の仕方は

LEDの消灯の仕方は、

と学習しました。

LEDを点滅するプログラムを作ろうとすると、プログラム上は「LEDを点灯する」「LEDを消す」という二つを組み合わせ、繰り返されることになります。

子どもたちは、この点灯・消灯のブロックの働きを知って、組み合わせることで点灯プログラムが組めると思ったのですが、LEDは点滅しませんでした。

ここで、子どもたちの思考には二つあります。プログラムが間違っているか、機器が壊れていのか・・・さってどっちなのでしょう。

ここで、コンピューターのよさである「命令通り実行する」が役立ちます。ブロックを別々に実行すると、しっかりLEDは点灯・消灯するのですから、子どもたちの思考の前提として、「プログラムは間違えていないようだ」という教師からの声がけが大切と思います。「もう一度LEDを観察してみよう」ということから、次のことに気づきました。

「LEDは消えているのではなく、暗く光っている」そして、「なんかすごく速くついたり消えたりしているようだ」という子どもの一言で、プログラムはうまく動いていてLEDは高速に輝いていることに気づきました。

その後話し合い、間に時間を空ける必要があるとなり、次のようなプログラムになりました。

このプログラムを確かめた後、、「一時停止」ブロックの時間を調整すると、点滅の速度をコントロールできることに気づきました。

今回が初めてプログラミング学習に臨む子どもたちでしたが、この学習から多くのことに気づいたようです。

フィジカルプログラムを使ったプログラムは、グラフィカルプログラミングと大きな違いがあります。実物を使う使わないだけでなく、実際の機器を使うということは、プログラム上正しくても、想定通りに実際の機器が動かないということが起こるのです。これがフィジカルプログラミングの面白いところであり、難しいところでもあります。より思考を働かせないと、想定通りに結果を得られない場面が出てくるのです。今回の場合は、コンピューターと人の違いや、想定した通りに動かすためには「時間」という考えを入れて解決しました。

このLEDの点灯・消灯と、LEDの消灯・点灯間隔を制御する「時間」を取り入れて、後半は信号機プログラムに挑戦しました。

この内容は、また次の機会に紹介しようと思います。

参考資料

高速で点滅するLEDのスローモーション(ユーレカ工房制作)

(※高速で点滅するので、子どもには見せないでください)

※micro:bitにあるマトリックスLEDでは、このような高速のLED点滅は基本ブロックを使う限り起こりません。高速に点灯・消灯されないよう工夫されているためです。マトリックスLEDを高速に点滅させるには、直接LEDを制御するブロックを使うか、テキスト型の命令が必要です。

コメントする

必須フィールドには、* がマークされています。あなたのメールアドレスが公開されることはありません。