変数を使おう

変数ってなに?

変数と定数

プログラムを見る前に、「変数」とは何かを少しだけ理解しましょう。
変な数という意味で変数ではありません。変数とは「変わる」数のことです。英語では「Variable」といいます。
ハードウェア的な説明をすると、変数はデータを蓄えるためのコンピュータメモリにある小さな区画です。変数がなぜ便利かというと、プログラムの動作に合わせて値を変えることができるからです。値を変えることで、プログラムは柔軟に動作できるようになります。だから変わる数、変数といいます。
変数の反対は定数です。定数は英語で「Constant」といいます。ずっと変わらない数のことを指します。もしプログラムを定数だけで作ると、決まった動きしかできないつまらないものになってしまします。変数には10, 106, 1,482 のような数字を保存することができ、プログラムが計算に利用することができます。これはコンピューターがとても得意なことです。

変数の種類

エジソンは「バイト( bytes)」と「ワード( words)」の2種類の変数を持っています。「バイト」変数は0〜255の数字を格納することができます。「ワード」変数は -32,767〜+32,767の数字を格納することができます。

変数名をつけよう

また、変数には覚えやすいように名前( 変数名 )をつけることができます。これは変数にどんな値を格納しているかを覚えておく手助けになります。エドウェアでは、好きな名前を変数につけることができます。「Fred」という名前も付けることができますが、どんな値が格納されているかを思い出す手助けにはならないでしょう。「Light_Level」のような名前のつけ方が良いでしょう。このように変数に名前を付けると、変数がどんなタイプで何に使われているか覚えやすくなります。

エジソンはあなたの財産を守ります?

変数の作成方法

変数について何となく分かったところで、エドウェアでライトアラームのプログラムを作りましょう。プログラムは頭では覚えられませんので、手を動かして体で覚えましょう。エジソンの光センサーは、アラームの呼び出しに使うことができます。このプログラムをエジソンで走らせ、もし誰かが光を当てて、この仕掛けを開くと、エジソンはアラームを鳴らします。

iPadの場合は、画面右上の 「Variables」をクリックします。すると以下のようなポップアップが現れます。「New Variable」をクリックすると変数を作成することができます。
「New Variable」をクリック

変数名( Variable name )を「Light_Level」と入力し、 変数の範囲( Variable range )を +/-32767とし、初期値( Initial value )をゼロにします。( 下図 )
そしてOKをクリックすると変数表( variables table )に追加されます。
変数の作成

それぞれのアイコンのプロパティは、以下の図を参考にしてください。

各アイコンのプロパティ設定

1.「event wait」アイコン
「event wait」アイコン

2.「loop start」アイコン
「loop start」アイコン

3.「sense light」アイコン
「sense light」アイコン

4.「loop start」アイコン
「loop start」アイコン

5.「play beep」アイコン。このアイコンはプロパティ設定がありません。
「play beep」アイコン

プログラムの動き

最初のアイコンは「event wait」アイコンで、プログラムを5秒間待機させます。( プレイボタンを押して、エジソンを準備するための時間 )
次にプログラムはループに入りますが、今回はエンドレスではありません。ループの中では、「sense light」アイコンが 左の光センサーから光を測定し、それを「Light_Level」変数に代入します。ループは「Light_Level」変数の値が 20を越えた時に、終了するようにセットされています。そのループを出ると、プログラムは次のループに進みます。このループはエンドレスで、ビープアイコンを持っています。
※ご注意
エジソンは電源を入れて20時間以上放置するとバッテリーが切れてきます。そのため、残念ながら実用的なアラームシステムにはなりません。

マメ知識

エジソンは3種類のメモリーを持っています。

  1. フラッシュメモリー – 作成したプログラムはここに保存されます。これはコンピュータのハードディスクに似ています。非揮発性メモリーとも呼ばれ、電源を切ってもデータは消えません。
  2. EEPROM – Electrically Erasable Programmable Read-Only Memory には、エジソンの設定と赤外線リモコンのコードが格納されています。これも非揮発性です。
  3. RAM – Random Access Memory には、変数が格納されています。これは揮発性メモリーで、電源を切るとデータも消えます。

次はなに?