PR

microbit LEDマトリックス

microbit

本記事の内容はこちらに移動しました!

microbit 流れ星【チャレンジ02】
...

さらに新たにゲーム「ターゲットダッシュ」を公開しました!

【ターゲットダッシュ】ボタン操作で点を追いかけろ!
...

microbitには5×5のLEDマトリックスが内蔵されています。

このLEDを使って、数字や文字を表現することができます。

これとは別に、自分で指定したポイントの点灯制御を行うこともできます!

これを使って、

をおこないます!

姫野秀徳

組み込みエンジニアとしてメーカー勤務10年。
第二種電工事士、基本情報技術者、Code.org認定教師。
microbitを用いた電子工作&プログラミング教室を開校。
組み込み開発の実際を発信するyoutube活動も行う。

無料で学べる組み込み開発オンラインスクールはじめました!
https://kumicla.tatepro.com

姫野秀徳をフォローする

LEDマトリックス

LEDマトリックスはx方向(=左右方向)、y方向(=上下方向)に番号が割り当てられています。

マトリックスは行列(ぎょうれつ)と言って、順序立てて整理したり組み立てたりするときに使います

左上が始点でx=0, y=0です。

右上はx=4, y=0です。

左下はx=0, y=4です。

じゃあ右下のxとyはいくつですか?先生に聞いてみましょう。

確認したら次に行きましょ。

1ポイントずつ点灯させる

を、ずっとブロックの中に入れてプログラムを書きこんでみましょう。

左上だけが点灯しましたか?

では、その右のx=1, y = 0を点灯させてみましょう。

それができたら、右下のLEDを点灯させましょう。

いま、左上と、その右、あと右下の3つのLEDが点灯しているはずです。

もしうまくいかなかったら、先生に確認してもらいましょう!

完成イメージ

さきに完成イメージを見てみましょう。この動画のように点灯させるプログラムを作ります。

どういう動きをしているでしょうか、ノートに書いてみましょう。

できたら先生に確認してもらってくださいね!

OKをもらったらプログラムを実際に作ってみましょう!

やること1:上の1行を左から右に順番に点灯させる

まずは左上から右上の1行に対して、順番にLEDを点灯させていきましょう。

ずっとブロックの中に入れていきますよ。

のように、点灯ブロックの間に一時停止ブロックを入れましょう。

プログラムの動きはすごく速いので、一時停止しないと順番に光っているのが目で見て分からないのです。

さあ、がんばって!

やること2:変数+繰り返しで「やること1」を処理する

おそらくやること①で作ったあなたのプログラムはこんな感じになっているはずです。

1つずつ点灯させるのはちょっとめんどくさいです。。。ですよね?

今はyが変わるだけだからまだいいですが、このあとxも変えていくので、これじゃちょっとやってられないです。

それにプログラムは、こうした順番に繰り返す、のような処理が得意です(というかこの目的でプログラムが生まれた)。

繰り返し処理でシンプルにしましょう!

・yの数字を変数にする
・繰り返し処理で変数の値をいじって、点灯処理させる

やることはこうです。

やること2-1:変数を使って点灯する

変数の作り方を忘れた人はここで復習しよう。

作る変数は「ypos」にでもしましょうか。yの位置 = y position = yposです。

試しに、最初だけブロックに下の2つのブロックを入れてみましょう。

どこが光りました?左の真ん中が光っていればちゃんとできてます!

もしうまくいかない場合は先生に聞いてみましょう。

ここで大事なのは、変数yposには2が入っていて、

点灯 x0 y(ypos) = 点灯 x0 y2

として点灯した、ということです。

やること2-2:繰り返し処理で処理を繰り返す

さて、では繰り返しさせていきますよ。

ループ -> くりかえし4回

ずっとブロックに入れましょう。

ところでさきほど作った下のプログラムをよく見てみてください。

もしy1とかy2がy(ypos)だったらどうなりますか?

となりますよね。これって、

これを繰り返してると思いませんか?何回繰り返しているか考えて、

ループ -> くりかえし4回

の4の部分を変更してみてください。

そしてりかえしブロックの中に、下のブロックを入れてやります。

さて、どうでしょう、上から下に順番にLEDが点灯しましたか?

やること2-3:繰り返し処理の中で変数の値を変更する

やること2-2で繰り返し処理を入れましたが、LED点灯しませんね。。。

これはなぜでしょう?

理由は、変数の値が変わってないから、です。

くりかえしブロックで5回処理を繰り返すときに、yを1から5まで1ずつ増やさないといけません。

そこで変数ブロックを見てみましょう。

変数yposを1だけ増やす

のブロックがありますね。これをさっきの繰り返し処理の最初に入れてやります。

これで動作を確認してみてください、上から下に順番にLEDが点灯しましたか?

順番に点灯しましたよね!?

繰り返し処理の中で変数yposの値が0, 1, 2, 3, 4と変わっていき、そのおかげでLEDの点灯位置が変わりました!

やること3:下の行も同じように点灯させる

さて、やること2によって、左の1行を上から下に順番に点灯させる処理を、繰り返しと変数を使ったシンプルな処理にできました。

つづいて、2行目から5行目も同じように上から下に順番に点灯させる処理をさせてみてください。

上から下に、下端まで点灯したら右の行に移って、また上から下に、がんばりましょう!

ポイントは、下の行に移ったら、最初に
変数yposを0にする
ブロックを入れて、変数yposの値をリセットしてあげることです。
これをやらないとyposはどんどん数字が足されていきます。

やること4:変数+繰り返しで「やること3」を処理する

さて、どうなりましたかね。こんな感じでしょうか。

これもなんだか、やること2-2、と似た感じがしますね。

点灯ブロックのxが0から4まで増えてるだけで、これも同じ処理が繰り返されていると思いませんか。

これが何回繰り返されていますか?。。。これも5回ですよね。

だから、こうなります。

くりかえしの中にある、くりかえしを繰り返します。

このように入れ子になっている形のことをネストと言います。

ここで問題になるのは点灯ブロックのxの数です。

変数yposを作った時と同じように、変数xposを作りましょう。xの位置 = x position = xposです。

そして、これまたyposと同じようにxposも繰り返すたびに値を1だけ増やしてあげます。

下のようなプログラムになるはずです。

これで5×5の25個が全て点灯したはずです!

よくここまで頑張りました!すごい!!

やること5:これまでの知識を生かして、次は左から右へ

いったんは全部LED点灯したので、下のブロックをプログラムの1番下に追加します。

基本 -> 表示を消す

さあ、消えましたかね。

では、これまで知識を生かして、次は左上から左下に順番に、続いて右の列に移って、また左上から左下に順番にLED点灯させてみましょう!

がんばってー!

この内容が良いと思ったら、いいね💖を押して教えてください!

組みクラ – 組み込み開発を学び、未来を創るエンジニアへ
無料で学べる!組み込み開発の基礎から応用までをマスターできるオンラインスクール「組みクラ」

組み込みエンジニアは、あらゆる産業の基盤を支える重要な職業です。
私たちタテプロは、次世代の組み込みエンジニアを育成し、業界の競争力を高めるために活動しています。
あなたも、無料で学べる「組みクラ」で、組み込み開発のスキルをしっかり身につけ、キャリアを加速させましょう!
今すぐ学び始めて、将来の自分をステップアップさせる第一歩を踏み出しませんか?

\立プロとLINEで友だちになりませんか/
立プロと友だちになる
microbit
シェアしていただけると嬉しいです!

コメント

タイトルとURLをコピーしました