スクラッチでロボットを動かそう!LEDの点滅と「繰り返し」をマスターする
プログラミング学習用ロボット「クムクム」を使ったスクラッチチュートリアル、第2弾へようこそ! 今回のテーマは、ロボット制御の基本中の基本である**「LEDのコントロール」**です。
単に光らせるだけでなく、プログラミングの三大要素の一つである**「繰り返し処理(ループ)」**を使って、効率よくプログラムを組む方法を学びます。信号機やイルミネーションのような光のパターンを作ることで、楽しみながら論理的思考を身につけましょう。
今回の学習目標
-
LEDを自在に点灯・消灯させる
-
プログラムのコピー&ペースト(複製)を覚える
-
「繰り返し」ブロックを使ってコードを短くする
-
「ずっと」ブロックで動作を継続させる
-
秒数を指定して点滅のリズムを変える
ステップ1:基本の点滅(ONとOFF)
まずは、プログラミングの基礎である「命令を順番に実行する(順次処理)」を確認しながら、赤いLEDを光らせてみましょう。
LEDを点灯させる
スクラッチのブロックパレットから、LEDを制御するブロックを探します。 まずはシンプルに**「赤色LEDをONにする」**ブロックをスクリプトエリアに配置し、クリックして動作確認します。ロボットの胸にあるLEDが赤く光れば成功です。
LEDを消灯させる
光らせっぱなしでは電池がもったいないですし、コントロールできているとは言えません。次に、**「赤色LEDをOFFにする」**ブロックを用意します。これをクリックするとLEDが消えます。
点滅プログラムを作る
この2つのブロック(ONとOFF)をくっつけて、連続して実行させるとどうなるでしょうか? 実は、コンピュータの処理速度が速すぎて、一瞬でONになってすぐにOFFになるため、人間の目には光ったことが認識できない場合があります(あるいは一瞬だけ光って見えます)。
ここで重要なのが**「待つ」**という動作です。今回は手動でクリックして確認していますが、プログラムとして組む際は、ONとOFFの間に時間を置くことで、きれいな点滅を作ることができます。
ステップ2:色の変更とプログラムの複製
赤色がうまくいったら、次は緑と青にも挑戦です。ここで、プログラミングを効率化するテクニック**「複製(コピー)」**を使います。
右クリックで簡単コピー
いちいち左側のメニューから新しいブロックを探して持ってくるのは大変です。 すでに配置した「赤色LEDをON/OFFするブロック」の上で右クリックし、**「複製」**を選びましょう。すると、同じブロックのセットがもう一つ作れます。
ドロップダウンで色を変更
複製したブロックの「赤」と書かれている部分(プルダウンメニュー)をクリックし、「緑」に変更します。これで、プログラムを書き直さなくても、緑色のLED制御ができるようになりました。同様にして「青」も作ります。
-
赤色LEDのブロックを作成
-
複製して緑色に変更
-
複製して青色に変更
これで、信号機のように3色のLEDを順番に制御する準備が整いました。3つのブロックの塊を縦につなげてクリックすると、赤 → 緑 → 青の順に点滅するプログラムの完成です。
ステップ3:プログラミングの醍醐味「繰り返し処理」
赤・緑・青の点滅を何度も行いたい場合、ブロックを何個も何個も縦に長くつなげるのは大変です。プログラムが見にくくなり、修正も難しくなります。 そこで登場するのが、制御カテゴリーにある**「繰り返し」ブロック**です。
「10回繰り返す」ブロックの活用
「制御」パレットから「10回繰り返す」という「コ」の字型のブロックを持ってきます。 先ほど作った「赤・緑・青の点滅プログラム」全体を、この「コ」の字の中にカポッとはめ込みます。
回数を「3回」に書き換えて実行してみましょう。 たった1つの枠で囲むだけで、ロボットは忠実に3回分の動作を行ってくれます。これがプログラミングにおける**ループ処理(Loop)**の威力です。
ネスト(入れ子)構造に挑戦
さらに高度な制御に挑戦しましょう。全体を繰り返すのではなく、色ごとの繰り返しを作ります。
-
赤の点滅ブロックを「3回繰り返す」で囲む
-
緑の点滅ブロックを「3回繰り返す」で囲む
-
青の点滅ブロックを「3回繰り返す」で囲む
これを縦につなげると、「赤赤赤、緑緑緑、青青青」というリズムで光るようになります。 このように、繰り返しのブロックの中にさらに命令を入れる構造を理解すると、複雑なダンスや動作も簡単に作れるようになります。
ステップ4:時間制御と無限ループ
最後に、光る長さ(リズム)の調整と、プログラムを止めない限り動き続ける設定を行います。
待ち時間を変えてリズムを作る
LEDをONにした後の「待ち時間(秒数)」を変えてみましょう。
-
赤:1秒待つ
-
緑:2秒待つ
-
青:3秒待つ
数字を変えるだけで、光っている時間が変化します。音楽に合わせて光らせたい時などは、この秒数調整が非常に重要になります。「0.5秒」のように小数点を使うと、より速い点滅も表現できます。
「ずっと」ブロックで永続化
イルミネーションのように、電池がある限りずっと光らせ続けたい場合は、「制御」パレットにある**「ずっと」ブロック**を使います。
今まで作ったプログラム全体を「ずっと」ブロックで囲んでみましょう。 これを実行すると、プログラムは終わりがなくなり、停止ボタンを押すまでロボットは光り続けます。
注意点: 「ずっと」ブロックを使ったプログラムは自動では止まりません。ロボットの動作を終了させるには、必ずスクラッチ画面上の「赤丸(ストップ)」ボタンを押してください。
まとめ:LED制御から学ぶプログラミング思考
今回のチュートリアルでは、単にLEDを光らせるだけでなく、以下の重要な概念を学びました。
-
順次処理:命令は上から下に順番に実行される。
-
効率化:似た処理は「複製」を使うと速い。
-
反復処理:「繰り返す」を使えば、少ないブロックで多くの動作ができる。
-
パラメータ制御:秒数などの数字を変えるだけで、結果(リズム)が変わる。
これらは、LEDだけでなく、モーターを動かしてロボットを歩かせるときや、画面上のキャラクターを動かすゲーム作りでも全く同じように使う考え方です。
まずは色々な秒数や回数を試して、自分だけのオリジナルの光のパターンを作ってみてください。「どうすればもっときれいに光るかな?」と試行錯誤することこそが、プログラミング上達への近道です。
次回は、さらに複雑な動きやセンサーを使った制御に挑戦していきましょう!



コメント