小さなものづくりコンピューター「SPACEBLOCK(スペースブロック)」でさまざまな機能を作るために、プログラミングの技を磨いていきましょう。今回は、LEDパネルを使って、 プログラミングの基本技である「繰り返し」を使いますよ!
必要なもの&準備
- SPACEBLOCK通常パッケージ[SPACEBLOCK本体、USBケーブル、(電池ボックス)]
- 8×8 RGB LEDマトリックスパネル(LEDパネル)
- プログラミングをするパソコン
プログラミング画面の開き方など基本の作業の流れは、「SPACEBLOCKのプログラミング手順をチェック!」で確認してくださいね。
SPACEBLOCKにLEDパネルを接続する
LEDパネルをSPACEBLOCKに接続します。LEDパネルは、横向きピンソケットに直接つなぐか、ジャンパーワイヤでつないでください。今回は、SPACEBLOCKをパソコンにつないだままプログラムを実行して練習するので、電池ボックスをつなぐ必要はありません。
ジャンパーワイヤを接続する場合、細かい部分は以下の図を参考にしてください。
要注意マークを表示する
鮮やかなLEDパネルを、危険を知らせる電光表示パネルにします。まずは「!」マークを1秒表示してみましょう。プログラムは次の図の通りです。
「!」マークが点灯し、1秒経つと消えるプログラムができました。もっと目立たせたいので、このマークを点滅させてみましょう。
マークを点滅させるには?
点滅というのは、「点灯→消灯→点灯→消灯→点灯→消灯→点灯→消灯→点灯→消灯→点灯→消灯→点灯→消灯→」……という状態です。「点灯→消灯→」というパターンを何度も繰り返していますね。
同じパターンの命令を繰り返すのに使うのが、「繰り返し」カテゴリーの[繰り返す]ブロックです。[繰り返す]ブロックは、間にはさんだ命令ブロックをずっと繰り返して実行します。
[プログラム開始]に[繰り返す]ブロックをつなぎ、その内側に次の図の通りプログラムを作成しましょう。
動画で見てみましょう。
繰り返しは、点滅のように、同じパターンを何度も繰り返すときにとても便利です。繰り返したい最小パターンを見つけるのが効率良いプログラムのポイントです。
LEDを1個ずつ順番に点灯させるには?
次に、LEDパネルのライトを1個ずつ順番に点灯させてみましょう。LEDパネルには8×8の合計64個のLEDが並んでいて、これら1個ずつを個別に指定して点灯したり消灯したりすることができます。
ライトの位置を指定して点灯するには、「LED」カテゴリーの[8×8 RGB LED《A10》のx《1》y《1》を《色》に点灯]というブロックを使います。位置は、x座標、y座標で指定します。
横方向 8個のLEDを順番に点灯させる
まず、LEDパネルの一番上の行だけ、左から順にLEDを点灯させてみましょう。[8×8 RGB LED《A10》のx《1》y《1》を《色》に点灯]ブロックで1個ずつ位置を指定してプログラムを作ると次の図の通りになります。
このように、命令ブロックをどんどんつないでも良いのですが、数が増えるとプログラムを作るのがとても大変です。
プログラムを点検すると、同じブロックが繰り返しつながっていて、[8×8 RGB LED《A10》のx《1》y《1》を《色》に点灯]ブロックのx座標の値だけが違います。x座標の値は、順番に1から8まで1ずつ増えていますね。このように、ある値が規則的に変化しながら繰り返しをしている場合、「変数(へんすう)」を使うと効率よくプログラムを作ることができます。
「変数」と繰り返しで効率アップ!
「変数(へんすう)」は、値を入れておくことができる入れ物で、自分で好きな名前をつけられます。変数に入れておく値は、プログラムの途中で入れ替えることができます。
まず、次の図の手順通り新しい変数を作りましょう、名前は「X」とします。
次に、今作った変数「X」に、最初の値として「1」を入れます。次の図の通り、[プログラム開始]ブロックに[数字《X》に《 》をセット]をつなぎ、1を指定してください。
続けて、繰り返しを使って、LEDパネルの一番上の行だけ左から順にLEDを点灯させるプログラムを作成します。次の図の通り、[《8》回繰り返す]ブロックの内側にプログラムを作成してください。
<プログラムの説明>
❶[8×8 RGB LED《A10》のx《1》y《1》を《色》に点灯]ブロックのx座標の値を変数「X」にします。プログラム実行時に変数「X」に入っている値がx座標になります。
❷変数「X」に、変数「X」に1を足した値を入れます。繰り返すたびに変数「X」に入る値が1ずつ増えます。
変数「X」に入れる値が変化する仕組みを次の図でイメージしてください。
プログラムを実行すると、1行目の左から順にLEDが8個点灯します。
動画でご覧ください。
全てのLEDを順番に点灯する
さらに、縦方向に次の行も点灯を続けて全てのLEDを順番に点灯させてみましょう。横方向はx座標が1ずつ増えましたが、縦方向はy座標が1ずつ増えます。次の図で、点灯させるLEDの順番とx座標、y座標をイメージしてみてください。
先ほど作った、最初の行だけ左から順にLEDを点灯させるプログラムをアレンジします。新たに変数「Y」を追加して、次の図の通りプログラムを作りましょう。[《8》回繰り返す]ブロックの内側にさらに[《8》回繰り返す]ブロックを入れます。
<プログラムの説明>
❶横方向に8個順にLEDを点灯させるプログラムです。x座標に変数「X」入れ、y座標に新たに作った変数「Y」を指定しています。繰り返すたびに、変数「X」が1ずつ増えます。
❷次に指定するLEDの座標を1行下の左端にするためのプログラムです。繰り返すたびに、変数「X」が1にリセットされ、変数「Y」が1ずつ増えます。
プログラムを実行すると、LEDパネルの左上から順に点灯し右端まで8個点灯すると、次の行の左端からまた順番に点灯します。8行目の右端で終わります。
動画でご覧ください。
繰り返しの技は、点滅のように全く同じ命令を繰り返すのにはもちろん、変数を使って値を変えながら効率よく繰り返す命令にも使えます。プログラミングの基本技として覚えておいてくださいね!
狩野 さやか
Studio947のデザイナー・ライター。デザイン・ウェブ制作全般を担当する一方、技術書籍の執筆や、教育のICT活用・子ども向けプログラミングについての取材・執筆をしている。著書に『ひらめき!プログラミングワールド』『見た目にこだわるJimdo入門』『ふたりは同時に親になる 産後の「ずれ」の処方箋』。
コメント