2014年12月25日木曜日

3 条件分岐と制御

センサから得られた数値を使ってカメ太を制御する。

【プログラム例3-1】(センサの数値で「歩く」歩数を設定してカメ太を歩かせる。
1   システム! “arduino”使う
2   a=arduino! 作る。
3   a!(システム! シリアルポート選択)ひらけごま。

5   赤外線センサ=a! 0 アナログ入力。
6   カメ太=タートル!作る。
7   「カメ太!((赤外線センサ!読む)×0.01) 歩く」!1000 繰り返す。

9   a! とじろごま。

説明
0番ポートにつないだセンサ(赤外線センサ)から数値を読み込んで使う。
5行目で 0番ポートをアナログ入力 用に設定。
7行目では、(赤外線センサ!読む)でセンサから0~255の数値を得て、その数値をそのまま使ってしまうと、カメ太があっという間に画面から飛び出してしまうので、0.01を掛けて動きを100分の1にしています。


【プログラム例3-2】
1   システム! “arduino”使う。
2   a=arduino! 作る。
3   a!(システム! シリアルポート選択)ひらけごま。

5   赤外線センサ=a! 0 アナログ入力。
6   表示=ラベル!(赤外線センサ!読む)作る。
7   カメ太=タートル!作る。
8   「
9      「(赤外線センサ!読む)>120」! なら
10         「カメ太!((赤外線センサ!読む)×0.01 歩く」実行。
11   」!1000 繰り返す。
12
13   a! とじろごま。

説明
3-1とほとんど同じなのですが、条件分岐で、赤外線センサから読み込んだ数値が小さい(120未満)ならば動かず、120以上であればカメ太が歩くというプログラムです。





【プログラム例3-3】
1   システム! “arduino”使う。
2   a=arduino! 作る。
3   a!(システム! シリアルポート選択)ひらけごま。

5   赤外線センサ=a! 0 アナログ入力。
6   表示=ラベル!(赤外線センサ!読む)作る。
7   カメ太=タートル!作る。
8   「
9      「(赤外線センサ!読む)>120」! なら
10         「カメ太!((赤外線センサ!読む)×0.01 歩く」
11      そうでなければ
12         「カメ太!((赤外線センサ!読む)×0.01 戻る」実行
13    」!1000 繰り返す。
14
15   a! とじろごま。


説明
3-2 のプログラムでは、読み込んだ数値が小さければ動かないのですが、このプログラムでは数値が120未満の場合、逆方向に「戻る」を実行します。


【プログラム例3-4】
1   システム! “arduino”使う。
2   a=arduino! 作る。
3   a!(システム! シリアルポート選択)ひらけごま。

5   赤外線センサ=a! 0 アナログ入力。
6   表示=ラベル!(赤外線センサ!読む)作る。
7   カメ太=タートル!作る。
8   「
9      「(赤外線センサ!読む)>120」! なら
10         「カメ太!((赤外線センサ!読む)×0.01 歩く。カメ太!10 左回り」
11      そうでなければ
12         「カメ太!((赤外線センサ!読む)×0.01 戻る。カメ太!10 右回り」実行
13   」!1000 繰り返す。
14
15   a! とじろごま。

説明
 3-3のプログラムの後ろに10度左回り、10度右回りの命令をつけたして、カメ太が画面上のあちこちにうろつきまわるようにしています。
 句読点(。)で区切って複数の命令を実行できることを示しています。

0 件のコメント:

コメントを投稿