30数年前に購入し屋根裏の物置きにしまったままにしてあったラジコン自動車を今回自動で走るように改造しました。 このラジコン自動車、今でもヤフオクに出品されることもあるようで、以外と人気があるのかも知れません。 ただし、箱絵の説明に反してラジコン性能は全く持ってプアです。基本の前進、停止、後退の動作がまともに出来ません。前進はしますが、ラジコン操作ではなく電源スィッチを入れると勝手にモーターが廻ります。 コントローラには釦が一つだけあり、この釦を押すと左折します。ただこれだけです。右折は出来ません。速度はトップ、セカンドの選択が出来ますが、これもスィッチ操作です。 ラジコンで停止、後退、右折が出来ないのですから面白くも無く、すぐに飽きてしまって物置で眠っていたという次第です。
2.PICで自動走行する車に改造する 自動走行の仕様は次のようなものにしました。以下の動作を繰り返します。
(2) 正面に取り付けた測距センサーで、前方に壁や障害物を検出すると後退を始めます。 (3) 1秒間後退した後、障害物回避のために左折を始めます。 (4) 左折は1秒間行います。 (5) 左折中にも前方の障害物検知機能は働いていて、障害物を検出すると後退を始め(3)に戻ります。 (6) 左折中に障害物が検出されなかった場合には、前進し(2)に戻ります。 この単純な繰り返しで部屋の中をずっと走り続けます。 上記仕様を実現するための電子パーツです。 モーターを正転、逆転するためにモータードライバIC「TA7291P」を使います。前方の障害物検知の測距センサーには手持ち部品の関係からSHARPの「GP2Y0A21YK」を使いました。このセンサーの出力はアナログ出力となります。 マイコンには8ピンのPIC12F675を採用しました。このマイコンは、A/D変換モジュールが内蔵されていますので、アナログ出力の「GP2Y0A21YK」を無理なく接続できます。 左折用のリレーを動作させるために、リレードライバーとしてトランジスタを使いました。電源ランプとして赤のLEDを付けました。 回路電源には006Pの+9Vをそのまま使いますので、マイコンや測距センサーの電源+5Vを生成するために3端子レギュレータを使っています。モータ電源は単3乾電池2本の+3Vをモータドライバーに直結しました。 3.ファームウエアの作成 PICのプログラムはMPASMで作りました。走行仕様に従ってプログラムを書いてみました。 測距センサー「GP2Y0A21YK」は、障害物との距離が近くなると出力電圧が高くなります。取説によれば、距離15cmで1.6Vとあります。そこでA/D変換の結果がこれ以上の電圧であれば障害物ありと判定するようにしました。 こちらが出来上がったプログラム(main.asm)です。
|