NO. t-003

使用する機材

・プログラミング列車
・ドッグレール
・マイクロビット
・信号機


目的

信号機のAボタンを押すと
信号機が、5秒ごとに「青」→「黄」→「赤」に変わる。
プログラミング列車は信号機の指示に従って走行する。
「青:速く走行」「黄:ゆっくり走行」「赤:停車」


プログラム
(プログラミング列車と信号機を無線でつなぐ)
(青→速く)(黄→ゆっくり)(赤→停車)

【信号機のプログラム】

解説(信号機のプログラム)

 今回は、マイクロビットのLEDを使わないので、「偽」 にします。

 無線(むせん)が飛ぶ距離(きょり)を7にします。
  距離:1~7(1→近く)(7→遠く)

 無線のチャンネルを「1」にします
 (信号機とプログラミング列車は、同じチャンネルにします)



「信号の色を変えるブロックグループ」

 Aボタンが押されたら

 1000回繰り返します。


  ” 青 ” を点けます
 (P13=青)

 黄を消します。
 (P15=黄)

 赤を消します。
 (P14=赤)


 変数「信号指示」に ” 青 ” を入れます。

 5秒間待ちます。-青が点いたまま-
 (5000=5秒)

 青を消します。
 (P13=青)

 黄を点けます。
 (P15=黄)

 赤を消します。
 (P14=赤)


 変数「信号指示」に ” 黄 ” を入れます。

 5秒間待ちます。-黄が点いたまま-
 (5000=5秒)

 青を消します。
 (P13=青)

 黄を消します。
 (P15=黄)

 赤を点けます。
 (P14=赤)


 変数「信号指示」に ” 赤 ” を入れます。

 5秒間待ちます。-赤が点いたまま-
 (5000=5秒)



「無線を送るブロックグループ」

 もし、変数「信号指示」に ” 青 ” が入っていたら

 無線で列車に ” 青 ” を送信します。

 もし、変数「信号指示」に ” 赤 ” が入っていたら

 無線で列車に ” 赤 ” を送信します。

 もし、変数「信号指示」に ” 黄 ” が入っていたら

 無線で列車に ” 黄 ” を送信します。



---------------------------------------------------------------------------------------------------------------------------------------------------

【プログラミング列車のプログラム】

解説(プログラミング列車のプログラム)

 今回は、マイクロビットのLEDを使わないので、「偽」 にします。

 無線のチャンネルを「1」にします
 (信号機とプログラミング列車は、同じチャンネルにします)

 変数「センサー」に ” 0 ” を入れます。
 (ドッグレールの上に来たのかどうかを判断します)

 無線で「文字列」として受信します。

 変数「信号」に無線で受信した「文字列」を入れます。

 50ミリ秒ごとに、「位置センサーのプログラム」をくり返します。
 (50ミリ秒=0.05秒)

 もし、ドッグレールの上に来たら= ” 1 ” 。
  そうでない時(ドッグレールの上に来ていない時)= ” 0 ”
  (P16=位置センサー)

 変数「センサー」を ” 1 ” にします。

 チャタリングを防ぐために1秒間待ちます。
 (1000=1秒)


 もし、変数「信号」が ” 青 ” なら

 1023のスピードで走行します。
 (P13=前進)(1023=最高速度)

 もし、変数「信号」が ” 黄 ” なら

 550のスピードで走行します。
 (P13=前進)(550=ゆっくり速度)

 もし、変数「信号」が ” 赤 ” なら (アンド) 変数「センサー」が ” 1 ” なら

 停車します。

 変数「センサー」を ” 0 ” にします。


※くわしく説明

・④ チャタリングとは
プログラミング列車が「ドッグレール」の上を通過(つうか)する時間は、見た目では一瞬(いっしゅん)ですが実は「センサー」は、 ON→OFF→ON→OFFと繰り返しています。(数ミリ秒~数秒)
それでエラーを起こしてしまう事があるので、あえて「1秒間待つ」のプログラムを入れます。

・⑯ ここで、変数「センサー」が ” 0 ” にすることで、一旦(いったん)リセットしています。