宇都宮大学工学部平田研究室のホームページです。

Hirata Laboratory

PICマイコンカーを用いたオープンキャンパスプロジェクト2007 #5

江田のページ

目次

はじめに
全体構造
開発環境
回路
距離センサ
モータドライバIC
PIC
プログラム
動作結果

はじめに

オープンキャンパスにむけて距離センサユニットを用いてゴール(2m)地点で停止する車を製作しました。

全体構造

hontai sensaup

ミニカーの先端に取り付けられた距離センサで障害物までの距離を測定し、モータの回転方向、回転速度を制御し、停止するものになっています。

開発環境

CコンパイラPIC C liteではPIC16F88のコンパイルは行えないため、新しい開発環境として、mikroCをインストールを使用しました。
mikroCはマイクロエレクトロニカ(mikroElektronika)社製のPIC用のCコンパイラです。
試用版をダウンロードできます。試用版での制限はプログラムの出力が2Kワードです。

回路

kairo
回路図
センサからの電圧は端子からPICに入力され、その電圧からPICはモータドライバICにモータの回転制御の信号を出力し、モータの制御しています。

距離センサ

今回、使用した距離センサはシャープ製GP2D12を用いました。

sensahontai sensagenri

このセンサはLED,PSD(光位置)センサ,制御回路がいったいとなったもので、LEDが光を発し、戻って来る反射光がPSDセンサの入射する位置でPSDサンサの両端に流れる電流の量が変化する。電流は反射光がPSDに当たった位置と反比例した量になります。その電流の割合により電圧を出力し、その電圧から距離を推定するものになっています。また測定には50msほど要します。

モータドライバIC

モータドライバICはDCモータの回転方向を制御する。モータドライバICを使うと、DCモータの正転、逆転、ブレーキ、停止、モータの電源電圧の制御を行うことができます。
モータにPICから以下の表のようなIN1,2の入力があると、モータドライバICはOUT1,2の出力がモータに加わり、DCモータの回転を制御することができます。

入力出力モード
IN1IN2OUT1OUT2
00停止
10HL正転
01LH逆転
11LLブレーキ

PIC

今回使用した距離センサはアナログ電圧を出力するため、A/D変換を行わなければならない。そのため、A/Dコンバータ機能を内蔵した、PIC16F88を使用しました。
16F88は5つのアナログ入力ポートを持っています。A/Dコンバータ機能はアナログ入力信号をデジタル情報に変換する機能です。アナログ信号を10ビットのデジタル情報に変換します。これは1/1024の精度で測定することができ、今回、測定範囲を0V~5Vとしているので訳5mV単位で測定を行っています。
また、16F88は発振器を内蔵しているため、それを使用しました。

プログラム

目標地点でミニカーを停止させるため、ゴール(2m)地点20cm後方に置かれた障害物までの距離を60ms周期で測定し、障害物20cm前で停止する。また、惰性などで行き過ぎてしまった場合を考慮し、行き過ぎた場合、後退し、ゴール地点に停止するプログラムになっている。また、測定周期はセンサの出力までの時間、PIC内でのA/D変換の時間も考慮し、設定しました。
フローチャート
プログラム

動作結果

実際に動作させた結果を以下に示す。
動作結果
16.7MB

リンク

PICマイコンカープロジェクトTOP
・各個人のページ
 ∟大沼 /坂田 /武田 /橋本 /江田

△Page Top