3D で、ワクチンくんのプログラミング コンテスト参加者を募集しています。内容はワクチンくんでダンスです。 プログラムが出来たら、HEXファイルを送りましょう。
前面センサを使うためには、赤外線LEDをオンにしてから赤外線センサの値を 読みます。赤外線センサは 1 が反応なし、0 が反応ありで、 SPDの出力を積分回路を通したものを読んでいます。そのため、通常は 赤外線LEDをオフにして赤外線が SPD に入らないようにして、 積分回路のコンデンサを充電しておきます。 赤外線LEDをオンにすると SPD が反応して光の強弱(距離に対応)に応じた 速さでコンデンサを放電します。コンデンサが十分に放電されると PIC から見た値が 0 になります。赤外線LEDをオンにしてから 0 になるまでの時間は、 センサ直前にものがある場合で約 40[us], 15[cm]ぐらい離れている場合 (この辺りが限界のよう)で約 80[us] となっていました。 赤外線LEDをオフにしてから、センサが 1 になるまでの時間は約 120[us] でした。
注: 上の充電放電の表現は逆かも(反転回路が入っているかも)しれません。
このセンサを使って、近くにものがあるとそちらに近付くプログラムを 作ってみました。
ワクチン君のモータの制御はオンオフのみです。 スピードを制御したい場合には短い周期でオンオフを繰り返して、オンの 時間とオフの時間の比を変えます。
PWM 制御でモータをゆっくり回すプログラムを作ってみました。
上記の前面センサと組み合わせると、目の前の物に近付くのもゆっくりにできます。 HEXファイルのみ置いておくので、自分で考えてみて下さい。