今回は、mBotプログラミングシリーズの第6回です。
ここでは「変数」の作成方法とその活用方法について学びます。
変数は、プログラム内でデータを一時的に保存し、再利用するための「入れ物」のようなものです。
特にmBotのセンサー値を取り入れたプログラミングでは、変数が非常に役立ちます。
全講座の一覧はこちら
目標
- 変数の基本的な役割と使い方を理解する。
- mBlockでの変数の作成方法を学ぶ。
変数とは
変数は、プログラムの中で値を一時的に保存するための仕組みです。
値を入れておく『箱』とイメージすると分かりやすいです。
次ような場面で役立ちます。
- センサー値の保存:
センサーが取得したデータを変数に保存し、複数回利用できるようにする。 - 計算や比較のための値:
演算や条件分岐で使う値を保持する。プログラムの可読性が上がる。 - 動作のパラメータ調整:
mBotの速度やLEDの色など、プログラム内の設定値を柔軟に変更できるようにする。
必要なブロック
『変数』パレット
変数とリストを作るブロックが入っています。
今回は『変数』を作ります。
『変数』の作り方
まず、変数パレットにある『変数を作る』ブロックを押します。
『新しい変数』パネルが表示されます。
分かりやすい変数名を入力します。ここでは変数名を「test」とします。
変数「test」を全てのスプライトで使うか、このスプライトのみで使うかを選択します。
「OK」を押すと、変数「test」に関するブロックが生成されます。
変数『test』ブロック
変数そのものを表し、参照する際に使用します。
変数に値を入れます。
この場合は『test』という箱に『0』という値を入れておくイメージです。
変数に値に加算(または減算)します。
この場合は『test』という箱に入っている値に『1』を加算します。
変数の値をステージ上に表示、非表示にします。
この表示はブロックパレットの変数『test』の横に表示されているチェックボックスでも切替可能です。
簡単な動作プログラム作成
変数は、ただの『値』に名前を付けて使うことで、プログラムを分かりやすくすることができます。
以下は、『変数を使ってドレミファソラシ』を鳴らすプログラムです。
ドレミファソラシそれぞれの変数を作成し、対応する周波数の値を変数にセットしています。
第2回で勉強したブザーを鳴らすブロックは、音階を国際式表記(C4、D4など)や周波数で設定する必要があり、直感的に理解しづらいプログラムでした。
変数を用いて、『ド』や『レ』といった変数を作っておくことで、直感的にプログラミングを進めることができます。
上記のプログラムは第2回で作成したものより、可読性(プログラムの読みやすさ)、汎用性(様々なプログラムに利用、応用できること)が向上しています。
【例題】変数を作ってみよう
例題1:値に応じて処理を別ける
- 例題
- 解答例
『1~5の乱数を発生させて、その値に応じてLEDライトの色を5種類に変更する』プログラムを作ってみましょう。
1~5の乱数を発生させ、それを変数『乱数』にセットします。
以降の条件分岐ブロックで、変数『乱数』と1~5の比較をしてLEDライトの色を切り替えます。
例題2:論理演算で用いる
- 例題
- 解答例
『1~10の乱数を発生させて、4以上7以下の時にLEDライトを点灯させ、それ以外の時はブザーを鳴らす』プログラムを作ってみましょう。
生成した乱数を、変数『乱数』に格納します。
『4以上7以下』は『(乱数>3)かつ(乱数<8)』で表し、条件分岐ブロックで処理をわけます。
例題3:カウンターを作る
- 例題
- 解答例
『1~5の乱数を10回発生させて、5が生成された回数だけブザーを鳴らす』プログラムを作ってみましょう。
変数『カウンター』を作成し、最初に0で初期化します。
生成した乱数が5なら、カウンターを1足す処理を10回繰り返すことで、カウンターには生成した乱数が5であったときの回数が入ります。
最後に、カウンターの回数分、ブザーを鳴らす繰り返し処理を作って完成です。
まとめ
変数を活用することで、より高度なプログラムを作成できるようになります。
センサー値を記録し、分析することで、mBotの動きをさらに細かく制御できるようになるでしょう。
次回は、いよいよ『センサー値』を取り込んだ制御について学んでいきます。
mBlockを使ったmBotのプログラミング方法を丁寧に解説していておススメです。
mBotを使用した拡張的な遊びは『mBotでものづくりをはじめよう』が参考になります。mBotのパーツを段ボールと組み合わせてオリジナルのロボットを作るといったような拡張的な遊びが楽しめます。
コメント