使用する機材
・マイクロビット
・プログラミング列車
(位置センサー有)
目的
スイッチを「入」にすると
3秒後にゆっくり前進する
ドッグレールに来たら(1回目)
速いスピードになる
ドッグレールに来たら(2回目)
停車する
プログラム
(ドッグレールで加速する:1回目で加速、2回目で停車)
解説
① 今回はLEDを使わないので「偽」 にします。
② スイッチを入れた時、勝手に前進しないようにします。
(P13=前進)
③ スイッチを入れた時、勝手に後進しないようにします。
(P14=後進)
④ 変数の箱の名前を「センサー」にして、箱の中に「 0 」を入れます。
(ドッグレールの上に来たのかどうかを判断するのに使います)
(変数ブロックの作り方は、YouTube「Lesson5 変数」を見てね)
⑤ 50ミリ秒ごとに、【位置センサーのプログラム】をくり返します。
(50ミリ秒=0.05秒)
⑥ もし、ドッグレールの上に来たら=「 1 」
そうでない時(来ていない)は=「 0 」
デジタルなので「 1 」か「 0 」を使います。
(P16=位置センサー)
⑦ ドッグレールに来ると、変数の箱「センサー」に、「 1 」を足していきます。
1回目に通る時は、変数の箱「センサー」に1を足すので0+1=1(箱の中は1)
2回目に通る時は、変数の箱「センサー」に1を足すので1+1=2(箱の中は2)
⑧ チャタリングを防ぐために、1秒間待ちます。
(※くわしい説明を見てね)
⑨ 変数の箱「センサー」の値(箱の中の数値)が
もし、「 0 」であれば、⑩→⑪のプログラムを実行します。
⑩ 3秒間待ちます。
⑪ 600のスピードで前進します。
そうでなければ、⑫のプログラムに進みます。
⑫ 変数の箱「センサー」の値(箱の中の数値)が
もし、「 1 」であれば、⑬のプログラムを実行します。
⑬ 1023のスピードで前進します。
そうでなければ、⑭のプログラムに進みます。
⑭ 変数の箱「センサー」の値(箱の中の数値)が
もし、「 2 」であれば、⑮のプログラムを実行します。
⑮ 停車します。
そうでなければ、⑨のプログラムに戻ります。
※くわしい説明
チャタリングとは
プログラミング列車が「ドッグレール」の上を通過する時間は、見た目では一瞬ですが
実は「センサー」は、 ON→OFF→ON→OFFと繰り返しています。(数ミリ秒~数秒)
それでエラーを起こしてしまう事があるので、あえて「1秒間待つ」のプログラムを入れます。
※ワンポイント
位置センサーのプログラム(⑤⑥⑦⑧)と、列車のプログラム(⑨➉⑪⑫⑬⑭⑮)は同時進行します。