ワクチンくんで遊ぶ

はじめに

ワクチンくんは、3D (株式会社スリーディー)製のちいさなロボットです。 小さい(幅35[mm]×長さ45[mm]×高さ45[mm])のに、底面に4つ、全面に2つの 赤外線センサを持っていて、そのうえ自分でプログラムを組む (Microchip の PIC 16F84 が載っている) ことが出来ます。ここでは主にプログラミングのメモを書いています。

3D で、ワクチンくんのプログラミング コンテスト参加者を募集しています。内容はワクチンくんでダンスです。 プログラムが出来たら、HEXファイルを送りましょう。

3Dのサンプルプログラム

サンプルプログラムは、そのままでは MPASM でアセンブルできなかったので、 ちょっと変更しました(現在の3Dのサンプルは大丈夫そうです)。 ついでに直進ではなく回転させてみました。

前面センサを使う

前面センサを使うためには、赤外線LEDをオンにしてから赤外線センサの値を 読みます。赤外線センサは 1 が反応なし、0 が反応ありで、 SPDの出力を積分回路を通したものを読んでいます。そのため、通常は 赤外線LEDをオフにして赤外線が SPD に入らないようにして、 積分回路のコンデンサを充電しておきます。 赤外線LEDをオンにすると SPD が反応して光の強弱(距離に対応)に応じた 速さでコンデンサを放電します。コンデンサが十分に放電されると PIC から見た値が 0 になります。赤外線LEDをオンにしてから 0 になるまでの時間は、 センサ直前にものがある場合で約 40[us], 15[cm]ぐらい離れている場合 (この辺りが限界のよう)で約 80[us] となっていました。 赤外線LEDをオフにしてから、センサが 1 になるまでの時間は約 120[us] でした。

注: 上の充電放電の表現は逆かも(反転回路が入っているかも)しれません。

このセンサを使って、近くにものがあるとそちらに近付くプログラムを 作ってみました。

PWM 制御を行なう

ワクチン君のモータの制御はオンオフのみです。 スピードを制御したい場合には短い周期でオンオフを繰り返して、オンの 時間とオフの時間の比を変えます。

PWM 制御でモータをゆっくり回すプログラムを作ってみました。

上記の前面センサと組み合わせると、目の前の物に近付くのもゆっくりにできます。 HEXファイルのみ置いておくので、自分で考えてみて下さい。

リンク


戻る | はじめてのPICアセンブラ入門| センサとデジカメで遊ぶ電子工作入門
Copyright (c) 1999 Noriaki Mitsunaga jm3wud @ ever.sanda.gr.jp